Abstract
The control flow graph is the basis for many code optimisation and analysis techniques. We introduce a new framework for the construction of powerful CFG-based representations of arbitrary Ada programs. The generated data holds extensive information about the original Ada source, such as visibility, package structure and type definitions and provides means for complete interprocedural analysis. We use ASIS-for-GNAT as an interface to the Ada environment and extract the needed information in a single traversal of the provided syntax trees. In addition, further refinement of the resulting data structures is done.
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Allen, F.E.: Control flow analysis. In: Proceedings of a symposium on Compiler optimization, pp. 1–19 (1970)
Ryder, B.G., Paull, M.C.: Elimination algorithms for data flow analysis. ACM Comput. Surv. 18(3), 277–316 (1986)
Fahringer, T., Scholz, B.: A unified symbolic evaluation framework for parallelizing compilers. IEEE Trans. Parallel Distrib. Syst. 11(11), 1105–1125 (2000)
Blieberger, J.: Data-flow frameworks for worst-case execution time analysis. Real-Time Syst. 22(3), 183–227 (2002)
Allen, F.E., Cocke, J.: A program data flow analysis procedure. Commun. ACM 19(3), 137 (1976)
Sreedhar, V.C., Gao, G.R., Lee, Y.F.: A new framework for elimination-based data flow analysis using dj graphs. ACM TOPLAS 20(2), 388–435 (1998)
Aho, A.V., Sethi, R., Ullman, J.D.: Compilers. Addison-Wesley, Reading (1986)
International Organization for Standardization: ISO/IEC 15291:1999: Information technology — Programming languages — Ada Semantic Interface Specification (ASIS). ISO, Geneva, Switzerland (1999)
AdaCore: ASIS-for-GNAT User’s Guide. Revision 41863 (January 2007)
Sedgewick, R.: Algorithms, 2nd edn. Addison-Wesley, Reading (1988)
Gansner, E.R., North, S.C.: An open graph visualization system and its applications to software engineering. Software — Practice and Experience 30(11), 1203–1233 (2000)
Fechete, R., Kienesberger, G.: Generating control flow graphs for Ada programs. Technical Report 183/1-139, Institute for Computer-Aided Automation, TU Vienna, Treitlstr. 1-3, A-1040 Vienna, Austria (September 2007)
Ramalingam, G.: Identifying loops in almost linear time. ACM Trans. Program. Lang. Syst. 21(2), 175–188 (1999)
Andrews, G.R.: Concurrent programming: principles and practice. Benjamin-Cummings Publishing Co. Inc., Redwood City (1991)
Blieberger, J., Burgstaller, B., Scholz, B.: Busy wait analysis. In: Reliable Software Technologies - Ada-Europe, pp. 142–152 (2003)
Schonberg, D.: On-the-fly detection of access anomalies. In: PLDI 1989: Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, pp. 285–297. ACM Press, New York (1989)
Burgstaller, B., Blieberger, J., Mittermayr, R.: Static Detection of Access Anomalies in Ada95. In: Pinho, L.M., González Harbour, M. (eds.) Ada-Europe 2006. LNCS, vol. 4006, pp. 40–55. Springer, Heidelberg (2006)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fechete, R., Kienesberger, G., Blieberger, J. (2008). A Framework for CFG-Based Static Program Analysis of Ada Programs. In: Kordon, F., Vardanega, T. (eds) Reliable Software Technologies – Ada-Europe 2008. Ada-Europe 2008. Lecture Notes in Computer Science, vol 5026. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-68624-8_10
Download citation
DOI: https://doi.org/10.1007/978-3-540-68624-8_10
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-68621-7
Online ISBN: 978-3-540-68624-8
eBook Packages: Computer ScienceComputer Science (R0)