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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
O’Neil, P.: MODEL 204 architecture and performance. In: 2nd International Workshop on High Performance Transaction Systems, Pacific Grove, CA, USA (1989)
Gupta Technologies: Welcome to Team Developer 6.2, http://www.guptatechnologies.com/Products/App_Dev/TeamDeveloper/default.aspx (accessed 2014)
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)
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)
International Standards Organisation: ISE/IEC 14977:1996, http://www.cl.cam.ac.uk/~mgk25/iso-14977.pdf
Parr, T., Quong, R.: ANLTR: A Predicated-LL(k) parser generator. Software Practice and Experience 25(7), 789–810 (1995)
The ANTLR Project: About The ANTLR Parser Generator, http://www.antlr3.org/about.html (accessed 2014)
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)
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)
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)
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)
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)
Boerboom, F., Janssen, A.: Fact Extraction, Querying and Visualization of Large C++ Code Bases Design and Implementation, Eindhoven, Germany (2006)
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)
Strivastava, A.: Unreachable Procedures in Object Oriented Programs. ACM Letters on Programming Languages and Systems, 355–364 (1992)
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)
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)
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)
Allen, F.: Control flow analysis. In: Proceedings of a Symposium on Compiler Optimization (1970)
Kavi, K., Buckles, B., Bhat, U.: A Formal Definition of Data Flow Graph Models. IEEE Transactions on Computers 35(11), 940–948 (1986)
Lin, Y., Holt, R., Malton, A.: Completeness of a Fact Extractor. In: Proceedings of the 10th Working Conference on Reverse Engineering (2003)
Zhang, Y., Xu, B.: A Survey of Semantic Description Frameworks for Programming Languages. ACM SIGPLAN Notices 39(3), 14–30 (2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)