Abstract
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.
Bernd Burgstaller has been supported by the ARC Discovery Project Grant “Compilation Techniques for Embedded Systems” under Contract DP 0560190, and the University of Sydney R&D Grants Scheme “Speculative Partial Redundancy Elimination” under Contract L2849 U3229.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
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.
References
SPARK Examiner, The SPARK Ravenscar Profile (2004), http://www.praxis-his.com/sparkada/pdfs/examiner_ravenscar.pdf
Arnold, K., Gosling, J., Holmes, D.: The Java Programming Language, 3rd edn. Addison-Wesley, Reading (2000)
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)
Barnes, J.: High Integrity Software - The SPARK Approach to Safety and Security. Addison-Wesley, Harlow (2003)
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)
Burns, A.: The Ravenscar Profile. Ada Lett. XIX(4), 49–52 (1999)
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)
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)
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)
Delrio, P., Mazzanti, F.: The risk of destructive run-time errors. Ada Lett. XI(1), 102–113 (1991)
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)
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)
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)
ISO/IEC 8652. Ada Reference manual (1995)
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)
Lasseter, J.H.E.F.: Toolkits for the automatic construction of data flow analyzers. Technical report, University of Oregon, Computer & Information Sci. Dept. (2005)
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)
Mazzanti, F.: Guide to erroneous executions in Ada 95. Technical report, Centre National de la Recherche Scientifique, Paris, France (1997)
Mehlhorn, K.: Graph Algorithms and NP-Completeness. Data Structures and Algorithms, vol. 2. Springer, Berlin (1984)
Paull, M.C.: Algorithm Design – A Recursion Transformation Framework. Wiley Interscience, New York (1988)
Ryder, B.G., Paull, M.C.: Elimination algorithms for data flow analysis. ACM Computing Surveys 18(3), 277–316 (1986)
Schmidt, D.A.: Denotational Semantics — A Methodology for Language Development. Allyn and Bacon (1986)
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)
Schonberg, E.: On-the-fly detection of access anomalies. SIGPLAN Not. 39(4), 313–327 (2004)
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)
Taylor, R.N.: A general-purpose algorithm for analyzing concurrent programs. Commun. ACM 26(5), 361–376 (1983)
Zhou, F.: Survey: Race Detection and Atomicity Checking, CS263 Course Project (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Burgstaller, B., Blieberger, J., Mittermayr, R. (2006). Static Detection of Access Anomalies in Ada95. In: Pinho, L.M., González Harbour, M. (eds) Reliable Software Technologies – Ada-Europe 2006. Ada-Europe 2006. Lecture Notes in Computer Science, vol 4006. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11767077_4
Download citation
DOI: https://doi.org/10.1007/11767077_4
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34663-0
Online ISBN: 978-3-540-34664-7
eBook Packages: Computer ScienceComputer Science (R0)