Interprocedural Symbolic Evaluation of Ada Programs with Aliases

  • J. Blieberger
  • B. Burgstaller
  • B. Scholz
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1622)


Symbolic Evaluation is a technique aimed at determining dynamic properties of programs. We extend our intraprocedural data-flow framework introduced in [3] to support interprocedural symbolic evaluation. Our data-flow framework utilizes a novel approach based on an array algebra to handle aliases induced by procedure calls. It serves as as a basis for static program analysis (e.g. reaching definitions-, alias analysis, worst-case performance estimations, cache analysis). Examples for reaching definitions- as well as alias analysis are presented.


Basic Block Procedure Call Symbolic Expression Symbolic Evaluation Program Point 
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.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    A. V. Aho, R. Seti, and J. D. Ullman. Compilers: Principles, Techniques, and Tools. Addison-Wesley, Reading, MA, 1986.Google Scholar
  2. 2.
    J. Blieberger. Data-flow Frameworks for Worst-Case Execution Time Analysis. (submitted), 1997.Google Scholar
  3. 3.
    J. Blieberger and B. Burgstaller. Symbolic Reaching Definitions Analysis of Ada Programs. Proceedings of the Ada-Europe International Conference on Reliable Software Technologies, 238–250, June 1998.Google Scholar
  4. 4.
    J. Blieberger, T. Fahringer, and B. Scholz. An Accurate Cache Prediction for C-Programs with Symbolic Evaluation. (submitted), 1999.Google Scholar
  5. 5.
    T. E. Cheatham, G. H. Holloway, and J. A. Townley. Symbolic Evaluation and the Analysis of Programs. IEEE Trans. on Software Engineering, 5(4):403–417, July 1979.CrossRefGoogle Scholar
  6. 6.
    J. D. Choi, M. Burke, and P. Carini. Efficient Flow-Sensitive Interprocedural Computation of Pointer-Induced Aliases and Side Effects. ACM PoPL, 1/93:232–245, 1993.Google Scholar
  7. 7.
    M. Haghighat, C. Polychronopoulos. Symbolic Analysis for Parallelizing Compilers. ACM Trans. Prog. Lang. Sys., 18(4):477–518, July 1996.CrossRefGoogle Scholar
  8. 8.
    ISO/IEC 8652. Ada Reference manual, 1995.Google Scholar
  9. 9.
    W. Landi, and B. G. Ryder. Pointer-induced Aliasing: A Problem Classification. Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, 235–248, 1992Google Scholar
  10. 10.
    G. Ramalingam. The Undecidability of Aliasing. ACM Trans. Prog. Lang. Sys., 16(5):1467–1471, 1994.CrossRefGoogle Scholar
  11. 11.
    V. C. Sreedhar. Effcient Program Analysis Using DJ Graphs. PhD thesis, School of Computer Science, McGill University, Montréal, Québec, Canada, 1995.Google Scholar

Copyright information

© Springer-Ve lag Berlin Heidelberg 1999

Authors and Affiliations

  • J. Blieberger
    • 1
  • B. Burgstaller
    • 1
  • B. Scholz
    • 2
  1. 1.Institute for Computer-Aided Automation (183/1)Technical University ViennaViennaAustria
  2. 2.Institute for Software Technology and Parallel SystemsUniversity of ViennaViennaAustria

Personalised recommendations