Static Detection of Access Anomalies in Ada95

  • Bernd Burgstaller
  • Johann Blieberger
  • Robert Mittermayr
Part of the Lecture Notes in Computer Science book series (LNCS, volume 4006)


In this paper we present data flow frameworks that are able to detect access anomalies in Ada multi-tasking programs. In particular, our approach finds all possible non-sequential accesses to shared non-protected variables. The algorithms employed are very efficient. Our approach is conservative and may find false positives.


Static Detection Task Type Call Graph Task Object Package Body 
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.
    SPARK Examiner, The SPARK Ravenscar Profile (2004),
  2. 2.
    Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 3rd edn. Addison-Wesley, Reading (2000)Google Scholar
  3. 3.
    Barbasch, C., Egnor, D.: Always one more bug: Applying AdaWise to improve Ada code. In: Proceedings of the conference on TRI-Ada 1994, pp. 228–235. ACM Press, New York (1994)CrossRefGoogle Scholar
  4. 4.
    Barnes, J.: High Integrity Software - The SPARK Approach to Safety and Security. Addison-Wesley, Harlow (2003)Google Scholar
  5. 5.
    Blieberger, J., Burgstaller, B., Scholz, B.: Interprocedural Symbolic Evaluation of Ada Programs with Aliases. In: González Harbour, M., la de Puente, J.A. (eds.) Ada-Europe 1999. LNCS, vol. 1622, pp. 136–145. Springer, Heidelberg (1999)CrossRefGoogle Scholar
  6. 6.
    Burns, A.: The Ravenscar Profile. Ada Lett. XIX(4), 49–52 (1999)CrossRefGoogle Scholar
  7. 7.
    Burns, A., Dobbing, B., Vardanega, T.: Guide for the use of the Ada Ravenscar Profile in high integrity systems. Ada Lett. XXIV(2), 1–74 (2004)CrossRefGoogle Scholar
  8. 8.
    Cooper, K.D., Kennedy, K.: Interprocedural side-effect analysis in linear time. In: PLDI 1988: Proceedings of the ACM SIGPLAN 1988 conference on Programming Language design and Implementation, pp. 57–66. ACM Press, New York (1988)CrossRefGoogle Scholar
  9. 9.
    Cooper, K.D., Kennedy, K.: Fast interprocedural alias analysis. In: Conference Record of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 49–59 (1989)Google Scholar
  10. 10.
    Delrio, P., Mazzanti, F.: The risk of destructive run-time errors. Ada Lett. XI(1), 102–113 (1991)CrossRefGoogle Scholar
  11. 11.
    Dinning, A., Schonberg, E.: An empirical comparison of monitoring algorithms for access anomaly detection. In: PPOPP 1990: Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming, pp. 1–10. ACM Press, New York (1990)CrossRefGoogle Scholar
  12. 12.
    Gellerich, W., Ploedereder, E.: Parameter-induced aliasing and related problems can be avoided. In: Hardy, K., Briggs, J. (eds.) Ada-Europe 1997. LNCS, vol. 1251, pp. 161–172. Springer, Heidelberg (1997)Google Scholar
  13. 13.
    Hood, R., Kennedy, K., Mellor-Crummey, J.: Parallel program debugging with on-the-fly anomaly detection. In: Supercomputing 1990: Proceedings of the 1990 ACM/IEEE conference on Supercomputing, pp. 74–81. IEEE Computer Society, Washington, DC (1990)Google Scholar
  14. 14.
    ISO/IEC 8652. Ada Reference manual (1995)Google Scholar
  15. 15.
    Kildall, G.: A unified approach to global program optimization. In: Proc. of the First ACM Symposium on Principles of Programming Languages, New York, NY, pp. 194–206 (1973)Google Scholar
  16. 16.
    Lasseter, J.H.E.F.: Toolkits for the automatic construction of data flow analyzers. Technical report, University of Oregon, Computer & Information Sci. Dept. (2005)Google Scholar
  17. 17.
    Marzullo, C., Mazzanti, F.: Towards the static detection of erroneous executions in Ada 95. Technical report, Ninth International Software Quality Week 1996 (QW 1996), Sheraton Palace Hotel, San Francisco, California USA (1996)Google Scholar
  18. 18.
    Mazzanti, F.: Guide to erroneous executions in Ada 95. Technical report, Centre National de la Recherche Scientifique, Paris, France (1997)Google Scholar
  19. 19.
    Mehlhorn, K.: Graph Algorithms and NP-Completeness. Data Structures and Algorithms, vol. 2. Springer, Berlin (1984)zbMATHGoogle Scholar
  20. 20.
    Paull, M.C.: Algorithm Design – A Recursion Transformation Framework. Wiley Interscience, New York (1988)Google Scholar
  21. 21.
    Ryder, B.G., Paull, M.C.: Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3), 277–316 (1986)CrossRefGoogle Scholar
  22. 22.
    Schmidt, D.A.: Denotational Semantics — A Methodology for Language Development. Allyn and Bacon (1986)Google Scholar
  23. 23.
    Schonberg, E.: 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)CrossRefGoogle Scholar
  24. 24.
    Schonberg, E.: On-the-fly detection of access anomalies. SIGPLAN Not. 39(4), 313–327 (2004)CrossRefGoogle Scholar
  25. 25.
    Sreedhar, V.C., Gao, G.R., Lee, Y.-F.: A new framework for elimination-based data flow analysis using DJ graphs. ACM Trans. Program. Lang. Syst. 20(2), 388–435 (1998)CrossRefGoogle Scholar
  26. 26.
    Taylor, R.N.: A general-purpose algorithm for analyzing concurrent programs. Commun. ACM 26(5), 361–376 (1983)CrossRefGoogle Scholar
  27. 27.
    Zhou, F.: Survey: Race Detection and Atomicity Checking, CS263 Course Project (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Bernd Burgstaller
    • 1
  • Johann Blieberger
    • 2
  • Robert Mittermayr
    • 3
  1. 1.School of Information TechnologiesThe University of SydneyAustralia
  2. 2.Institute for Computer-Aided AutomationTU ViennaViennaAustria
  3. 3.ITS Softwaresysteme, ARC Seibersdorf research GmbH, TechGate ViennaViennaAustria

Personalised recommendations