Skip to main content

Parameter-Induced Aliasing in Ada

  • Conference paper
  • First Online:
Reliable SoftwareTechnologies — Ada-Europe 2001 (Ada-Europe 2001)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2043))

Included in the following conference series:

  • 238 Accesses

Abstract

Parameter-induced aliasing means that overlapping areas of memory are associated with different identifiers causing assignments to one of them to have the unexpected effect of also changing the other’s value. The disadvantages of aliasing for most aspects of programming languages have been known for decades and it is reported that aliasing occurs quite often when programming in languages like C or Fortran. In contrast, our examination of 173 MB real-world Ada code with a total of 93690 subprogram calls revealed less than one alias pair per 10000 lines of code. Further code inspection showed that most alias pairs could have been avoided. The rare occurrence of aliasing may be one reason for the low error rate frequently reported for Ada programs. This paper presents the methods and results of our analysis. Further, it discusses two approaches to forbid aliasing by language rules and evaluates the usability of our alias-free “named container” model suggested earlier.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. W.B. Ackerman. Data Flow Languages. IEEE Computer, 15(2):14–25, Feb 1982.

    Google Scholar 

  2. The Programming Language Ada Reference Manual. LNCS vol. 155. Springer, 1983.

    Google Scholar 

  3. Ada and C++: A Business Case Analysis. U.S. Air Force, Jul 1991.

    Google Scholar 

  4. R. Allan and S. Johnson. Compiling C for Vectorization, Parallelization and Inline Expansion. In Proceedings of the SIGPLAN’ 88 Conference on Programming Language Design and Implementation. ACM, 1988.

    Google Scholar 

  5. A.V. Aho, R. Sethi, and J.D. Ullman. Compilers. Addison-Wesley, 1986.

    Google Scholar 

  6. H.G. Baker. How to Steal from a Limited Private Account. ACM Ada Letters, XIII(3):91–95, May 1993.

    Article  Google Scholar 

  7. G. Booch. Software Engineering with Ada. Benjamin/Cummings, 1987.

    Google Scholar 

  8. K.D. Cooper. Analyzing aliases of reference formal parameters. In Conference Record of the Twelfth Annual ACM Symposium on Principles of Programming Languages, pages 281–290. ACM, 1985.

    Google Scholar 

  9. J.R. Cordy. Compile-Time Detection of Aliasing in Euclid Programs. Software–Practice and Experience, 14(8):744–768, Aug 1984.

    Article  Google Scholar 

  10. D.K. Chen, J. Torellas, and P.C. Yew. An Efficient Algorithm for the Run-time Parallelization of DOACROSS Loops. In Proceedings of Supercomputing’94, pages 518–527. ACM and IEEE, 1994.

    Google Scholar 

  11. M. Eisenstadt. My Hairiest Bug War Stories. Comm. ACM, 40(4):30–37, Apr 1997.

    Article  Google Scholar 

  12. W. Gellerich. Ein datengesteuertes Ausführungsmodell für Programmier-sprachen mit mehrfacher Wertzuweisung (A data-driven execution model for programming languages with multiple assignment). PhD thesis, Universität Stuttgart, (available from Shaker Verlag, Postfach 1290, 52013 Aachen, Germany, http://www.shaker.de), 2000. ISBN 3-8265-7900-3 URL.

  13. J.P. Goodwin and E.F. Gehringer. Optimizing Procedure Calls in Block-structured Languages. Software Practice and Experience, 26(12):1385–1414, 1996.

    Article  Google Scholar 

  14. C. Ghezzi and M. Jazayeri. Programming Language Concepts. John Wiley and Sons, 1987.

    Google Scholar 

  15. Gnu ada translator (gnat) documentation, 1995. http://cs.nyu.edu:/pub/gnat.

  16. W. Gellerich and E. Plödereder. Parameter-induced aliasing and related problems can be avoided. In Reliable Software Technologies–Ada-Europe 1997, volume 1251 of LNCS, pages 161–172. Springer, 1997.

    Google Scholar 

  17. K. Hines. Ada Impacts On A Second Generation Project. In Proceedings TRI-Ada’ 90, pages 488–492, Dec 1990.

    Google Scholar 

  18. C.A.R. Hoare. Hints on Programming Language Design (reprint). In Essays in Computing Science. Prentice Hall, 1989.

    Google Scholar 

  19. J.J. Horning. A Case Study in Language Design: Euclid. In G. Goos and J. Hartmanis, editors, Program Construction, LNCS vol. 69. Springer, 1979.

    Google Scholar 

  20. S. Horwitz and M. Shapiro. The effects of the precision of pointer analysis. In Static Analysis 4th International Symposium. Springer, 1997.

    Google Scholar 

  21. M.O. Jokinen. The Effect of Parameter Passing and Other Implementation Dependent Mechanisms is Undecidable. ACM SIGPLAN Notices, 17(9):16–17, Sep 1982.

    Article  Google Scholar 

  22. R. Lebib. The Impact of Ada on MIS applications. In Proceedings of the 12th Ada-Europe International Conference, pages 54–63, Paris, Jun 1993.

    Google Scholar 

  23. J. Loeliger, R. Metzger, M. Seligman, and S. Stroud. Pointer target tracking. In Proceedings of Supercomputing’ 91, pages 14–23, 1991.

    Google Scholar 

  24. J.W. McCormick. Don’t Forget Ada. Comm. ACM, 40(8):30, Aug 1997.

    Google Scholar 

  25. R. Morgan. Building an Optimizing Compiler. Butterworth-Heinemann, 1998.

    Google Scholar 

  26. S.S. Muchnik. Compiler Design and Implementation. Morgan Kaufmann Publishers, 1997.

    Google Scholar 

  27. H.G. Mayer and M. Wolfe. Interprocedural Alias Analysis: Implementation and Empirical Results. Software Practice and Experience, 23(11):1202–1233, Nov 1993.

    Article  Google Scholar 

  28. K.J. Ottenstein and S.J. Ellcey. Experience Compiling Fortran to Program Dependence Graphs. Software Practice and Experience, 22:41–62, Jan 1992.

    Article  Google Scholar 

  29. http://www.informatik.uni-stuttgart.de/ifi/ps/ada-software/ada-software.html, ftp://ftp.informatik.uni-stuttgart.de, ftp://ftp.uni-stuttgart.de.

  30. D.J. Reifer. Quantifying the Debate: Ada vs. C++, 1996. http://www.stsc.hill.af.mil/crosstalk/1996/jul/quantify.html.

  31. L. Smith. Vectorizing C compilers: How good are they? In Proceedings of Supercomputing’ 91, pages 544–553, 1991.

    Google Scholar 

  32. J. Stare. Ada for DSP. Technical report, Tartan, Inc., 1994. http://www.adahome.com/Ammo/Stories/Tartan-Realtime.html.

  33. D. Syiek. C vs Ada: Arguing Performance Religion. Ada Letters, 15(6):67–69, Nov/Dec 1995.

    Article  Google Scholar 

  34. K. Tanaka. Using Ada at NTT. Ada Letters, 11(1):92–95, Jan/Feb 1991.

    Article  Google Scholar 

  35. S.T. Taft and R.A. Duff. Ada 95 Reference Manual. Springer, 1998.

    Google Scholar 

  36. D.W. Wall. Limits of instruction-level parallelism. In Proc. ASPLOS-IV, Santa Clara, CA, pages 176–188. ACM, 1991.

    Google Scholar 

  37. M.J. Wolfe. High-Performance Compilers for Parallel Computing. Addison-Wesley, 1995.

    Google Scholar 

  38. H. Zima and B. Chapman. Supercompilers for Parallel and Vector Computers. Addison-Wesley, 1992.

    Google Scholar 

  39. S.F. Zeigler. Comparing Development Costs of C and Ada, Mar 1995. http://www.rational.com/sitewide/support/whitepapers/.

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2001 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gellerich, W., Plödereder, E. (2001). Parameter-Induced Aliasing in Ada. In: Craeynest, D., Strohmeier, A. (eds) Reliable SoftwareTechnologies — Ada-Europe 2001. Ada-Europe 2001. Lecture Notes in Computer Science, vol 2043. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-45136-6_6

Download citation

  • DOI: https://doi.org/10.1007/3-540-45136-6_6

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-42123-8

  • Online ISBN: 978-3-540-45136-5

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics