Skip to main content

Using Generic and Generated Components to Create Static Software Analysis Tools Faster

  • Conference paper
Book cover Knowledge Management and Acquisition for Smart Systems and Services (PKAW 2014)

Part of the book series: Lecture Notes in Computer Science ((LNAI,volume 8863))

Included in the following conference series:

  • 738 Accesses

Abstract

In today’s software engineering tool landscape, many sophisticated imperative static source code analysis tools exist. However the implementations of these analyses are normally tied to specific languages, so must be recreated for any new or lesser-known languages. It can be burdensome for small groups of language developers or third party tool authors to devote the necessary resources to creating an analysis tool suite specifically for their language, so a number of less popular languages lack such automated tool support to the detriment of their users. As a solution this paper argues that multiple analysis algorithms exist which are applicable to almost any high-level imperative programming language, and that support for them can be added to a language cheaply with a high degree of automation. Pursuit of these would provide a new way of gathering knowledge about application structure for languages that have not previously enjoyed strong tool support.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. O’Neil, P.: MODEL 204 architecture and performance. In: 2nd International Workshop on High Performance Transaction Systems, Pacific Grove, CA, USA (1989)

    Google Scholar 

  2. Gupta Technologies: Welcome to Team Developer 6.2, http://www.guptatechnologies.com/Products/App_Dev/TeamDeveloper/default.aspx (accessed 2014)

  3. Knight, C.: Smell the Coffee! Uncovering Java Analysis Issues. In: SCAM 2001: 1st International Workshop on Source Code Analysis and Manipulation, pp. 161–167 (2001)

    Google Scholar 

  4. Backus, J., Bauer, F., Green, J., Katz, C., McCarthy, J., Perlis, A., Rutishauser, H., Samelson, K., Vauquois, B., Wegstein, J., Wijngaarden, A., Woodger, M., Naur, P.: Report on the algorithmic language ALGOL 60, New York, NY, USA (1960)

    Google Scholar 

  5. International Standards Organisation: ISE/IEC 14977:1996, http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf

  6. Parr, T., Quong, R.: ANLTR: A Predicated-LL(k) parser generator. Software Practice and Experience 25(7), 789–810 (1995)

    Article  Google Scholar 

  7. The ANTLR Project: About The ANTLR Parser Generator, http://www.antlr3.org/about.html (accessed 2014)

  8. Gagnon, E., Hendren, L.: SableCC, an Object-Oriented Compiler Framework. In: Proceedings of the Technology of Object-Oriented Languages, TOOLS 26, Santa Barbara, CA, USA, pp. 140–154 (1998)

    Google Scholar 

  9. Collard, M., Decker, M., Maletic, J.: Lightweight Transformation and Fact Extraction with the srcML Toolkit. In: SCAM 2011 - 11th International Working Conference on Source Code Analysis and Manipulation (2011)

    Google Scholar 

  10. Mayer, P., Schroeder, A.: Cross-Language Code Analysis and Refactoring. In: SCAM 2012: IEEE 12th International Working Conference on Source Code Analysis and Manipulation, pp. 94–103 (2012)

    Google Scholar 

  11. Stein, D., Kratz, H., Lowe, W.: Cross-Language Program Analysis and Refactoring. In: SCAM 2006: Proceedings of the 6th IEEE International Workshop on Source Code Analysis and Manipulation (2006)

    Google Scholar 

  12. Linos, P., Lucas, W., Myers, S., Maier, E.: A Metrics Tool for Multi-language Software. In: 11th IASTED International Conference on Software Engineering and Applications, pp. 324–329 (2007)

    Google Scholar 

  13. Boerboom, F., Janssen, A.: Fact Extraction, Querying and Visualization of Large C++ Code Bases Design and Implementation, Eindhoven, Germany (2006)

    Google Scholar 

  14. Deruelle, L., Melab, N., Bouneffa, M., Basson, H.: Analysis and Manipulation of Distributed Multi-Language Software Code. In: SCAM 2001: First International Workshop on Source Code Analysis and Manipulation, Florence, pp. 43–54 (2001)

    Google Scholar 

  15. Strivastava, A.: Unreachable Procedures in Object Oriented Programs. ACM Letters on Programming Languages and Systems, 355–364 (1992)

    Google Scholar 

  16. Taylot, R., Osterweil, L.: Anomoly Detection in Concurrent Software by Static Data Flow Analysis. IEEE Transactions on Software Engineering SE-6(3), 265–278 (1980)

    Article  Google Scholar 

  17. Yau, S., Collofello, J., MacGregor, T.: Ripple effect analysis of software maintenance. In: COMPSAC 1978: Procedings of the IEEE Computer Society’s Second International Computer Software and Applications Conference, pp. 60–65 (1978)

    Google Scholar 

  18. Graham, S., Kessler, P., Mckusick, M.: Gprof: A call graph execution profiler. In: SIGPLAN 1982 Proceedings of the 1982 SIGPLAN Symposium on Compiler Construction (1982)

    Google Scholar 

  19. Allen, F.: Control flow analysis. In: Proceedings of a Symposium on Compiler Optimization (1970)

    Google Scholar 

  20. Kavi, K., Buckles, B., Bhat, U.: A Formal Definition of Data Flow Graph Models. IEEE Transactions on Computers 35(11), 940–948 (1986)

    Article  MATH  Google Scholar 

  21. Lin, Y., Holt, R., Malton, A.: Completeness of a Fact Extractor. In: Proceedings of the 10th Working Conference on Reverse Engineering (2003)

    Google Scholar 

  22. Zhang, Y., Xu, B.: A Survey of Semantic Description Frameworks for Programming Languages. ACM SIGPLAN Notices 39(3), 14–30 (2004)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Tippetts, E. (2014). Using Generic and Generated Components to Create Static Software Analysis Tools Faster. In: Kim, Y.S., Kang, B.H., Richards, D. (eds) Knowledge Management and Acquisition for Smart Systems and Services. PKAW 2014. Lecture Notes in Computer Science(), vol 8863. Springer, Cham. https://doi.org/10.1007/978-3-319-13332-4_22

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-13332-4_22

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-13331-7

  • Online ISBN: 978-3-319-13332-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics