Abstract
Implementation of a strongly typed language such as Ada95 requires range checks in the presence of array index expressions and assignment statements. Range checks that cannot be eliminated by the compiler must be executed at run-time, inducing execution time and code size overhead. In this work we propose a new approach for eliminating range checks that is based on symbolic evaluation. Type information provided by the underlying programming language is heavily exploited.
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
ISO/IEC 8652. Ada Reference Manual, 1995.
J. Blieberger and B. Burgstaller. Symbolic Reaching Definitions Analysis of Ada Programs. In Proc. of the Ada-Europe International Conference on Reliable Software Technologies, pages 238–250, Uppsala, Sweden, June 1998.
J. Blieberger, B. Burgstaller, and B. Scholz. Interprocedural Symbolic Evaluation of Ada Programs with Aliases. In Proc. of the Ada-Europe International Conference on Reliable Software Technologies, pages 136–145, Santander, Spain, June 1999.
J. Blieberger, T. Fahringer, and B. Scholz. Symbolic Cache Analysis for Real-Time Systems. Real-Time Systems, Special Issue on Worst-Case Execution Time Analysis, 18(2/3):181–215, 2000.
J. Blieberger. Data-Flow Frameworks for Worst-Case Execution Time Analysis. Real-Time Systems, 22(3):183–227, May 2002.
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.
T. Fahringer and B. Scholz. Symbolic Evaluation for Parallelizing Compilers. In Proc. of the ACM International Conference on Supercomputing, July 1997.
M.R. Haghighat. Symbolic Analysis for Parallelizing Compilers. Kluwer Academic, 1995.
R. Maeder. Programming in Mathematica. Addison-Wesley, Reading, MA, USA, 1990.
V. Maslov and W. Pugh. Simplifying Polynomial Constraints Over Integers to Make Dependence Analysis More Precise. In Proc. of the International Conference on Parallel and Vector Processing, pages 737–748, Linz, Austria, 1994.
W. Pugh. The Omega Test: A Fast and Practical Integer Programming Algorithm for Dependence Analysis. Communications of the ACM, 35(8):102–114, August 1992.
H. Rogers Jr. Theory of Recursive Functions and Effective Computability. MIT Press, Cambridge, MA, 1987.
B. G. Ryder and M.C. Paull. Elimination Algorithms for Data Flow Analysis. ACM Computing Surveys (CSUR), 18(3):277–316, 1986.
R. Rugina and M. Rinard. Symbolic Bounds Analysis of Pointers, Array Indices, and Accessed Memory Regions. In Proc. of PLDI, pages 182–195, 2000.
E. Schonberg and B. Banner. The GNAT Project: A GNU-Ada 9X Compiler. In Proc. of the Conference on TRI-Ada’ 94, pages 48–57. ACM Press, 1994.
B. Scholz, J. Blieberger, and T. Fahringer. Symbolic Pointer Analysis for Detecting Memory Leaks. In ACM SIGPLAN Workshop on “Partial Evaluation and Semantics-Based Program Manipulation”, Boston, January 2000.
R. Sedgewick. Algorithms. Addison-Wesley, Reading, MA, USA, 2nd edition, 1988.
R. E. Shostak. A Practical Decision Procedure for Arithmetic with Function Symbols. Journal of the ACM, 26(2):351–360, April 1979.
Z. Shen, Z. Li, and P.-C. Yew. An Empirical Study of Fortran Programs for Parallelizing Compilers. IEEE Transactions on Parallel and Distributed Systems, 1(3):356–364, July 1990.
V.C. Sreedhar. Efficient Program Analysis Using DJ Graphs. PhD thesis, School of Computer Science, McGill University, Montréal, Québec, Canada, 1995.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2003 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Blieberger, J., Burgstaller, B. (2003). Eliminating Redundant Range Checks in GNAT Using Symbolic Evaluation. In: Rosen, JP., Strohmeier, A. (eds) Reliable Software Technologies — Ada-Europe 2003. Ada-Europe 2003. Lecture Notes in Computer Science, vol 2655. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44947-7_11
Download citation
DOI: https://doi.org/10.1007/3-540-44947-7_11
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-40376-0
Online ISBN: 978-3-540-44947-8
eBook Packages: Springer Book Archive