Skip to main content

Parameter-induced aliasing and related problems can be avoided

Towards a more abstract view of variables

  • Conference paper
  • First Online:
Reliable Software Technologies — Ada-Europe '97 (Ada-Europe 1997)

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

Included in the following conference series:

Abstract

Aliasing is an old but yet unsolved problem, being disadvantegous for most aspects of programming languages. We suggest a new model for variables which avoids aliasing by maintaining the property of always having exactly one access path to a variable. In particular, variables have no address. Based on this model, we develop language rules which can be checked in local context and we suggest programming guidelines to prevent alias effects in Ada 95 programs.

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

Access this chapter

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, February 1982.

    Google Scholar 

  2. Ada 95 Reference Manual. Intermetrics, Inc., 1995. ANSI/ISO/IEC-8652:1995.

    Google Scholar 

  3. A.L. Ambler. GYPSY: A Language for Specification and Implementation of Verifiable Programs. ACM SIGPLAN Notices, 12(3): 1–10, March 1977.

    Google Scholar 

  4. H.G. Baker. How to Steal from a Limited Private Account — Why Mode IN OUT Parameters for Limited Types must be Passed by Reference. ACM Ada Letters, XIII(3):91–95, May/June 1993.

    Google Scholar 

  5. T. Birus, C. Cipriani, and D. Sutherland. Interprocedural call optimization. In Reliable Software Technologies — Ada-Europe 1996, volume 1088 of LNCS, pages 319–329. Springer, 1996.

    Google Scholar 

  6. G. Booch. Software Engineering with Ada. The Benjamin/Cummings Publishing Co., 2 edition, 1987.

    Google Scholar 

  7. D.C. Cann. Retire Fortran? A Debate Rekindled. Technical Report UCRLJC-107018 Rev.2, Lawrence Livermore National Laboratory, 1992.

    Google Scholar 

  8. K.D. Cooper and K. Kennedy. Fast Interprocedureal Alias Analysis. In Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49–59, 1989.

    Google Scholar 

  9. 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 

  10. R. Cordy, 1994. Discussion in newsgroup comp.lang.misc.

    Google Scholar 

  11. J.E. Donahue. Locations considered unnecessary, acta informatica, 8:221–242, 1977.

    Google Scholar 

  12. R.A. Finkel. Advanced Programming Language Design. Addison Wesley, 1995.

    Google Scholar 

  13. István Forgács. Double iterative framework for flow-sensitive interprocedural data flow analysis. ACM Transactions on Software Engineering and Methodology, 3(1):29–55, 1994.

    Google Scholar 

  14. G. Goos and J. Hartmanis (eds). The Programming Language Ada Reference Manual. Springer, 1983.

    Google Scholar 

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

    Google Scholar 

  16. S.P. Harbison. Modula-3. Prentice-Hall, Englewood Cliffs, NJ, 1992.

    Google Scholar 

  17. J.J. Horning, R.W. Lampson, R.L. London, J.G. Mitchell, and G.J. Popek. Notes on the Design of Euclid. ACM SIGPLAN Notices, 12(3):1–77, March 1977.

    Google Scholar 

  18. J.J. Horning, R.W. Lampson, R.L. London, J.G. Mitchell, and G.J. Popek. Report on the Programming Language Euclid. ACM SIGPLAN Notices, 12(2):1–79, February 1977.

    Google Scholar 

  19. R.C. Holt, P.A. Matthews, J.A. Rosselet, and J.R.Cordy. The Turing Programming Language. Prentice Hall, 1988.

    Google Scholar 

  20. C.A.R. Hoare. Hints on Programming Language Design, 1973. key note address at the ACM SIGACT/SIGPLAN Conference on Principles of Programming Languages; (reprinted in [Hoa89]).

    Google Scholar 

  21. C.A.R. Hoare. Essays in Computing Science. International Series in Computer Science. Prentice Hall, 1989.

    Google Scholar 

  22. J.J. Horning. A Case Study in Language Design: Euclid. In G. Goos and J. Hartmanis, editors, Program Construction, volume 69 of Lecture Notes in Computer Science. Springer, 1979.

    Google Scholar 

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

    Google Scholar 

  24. D.J. Kuck, J.R. McGraw, and M.J. Wolfe. A debate: Retire FORTRAN? Physics Today, 37(5):66–75, May 1984.

    Google Scholar 

  25. C.H. Koelbel. The High Performance Fortran Handbook. MIT Press, 1994.

    Google Scholar 

  26. M. Marcotty and H. Ledgard. The World of Programming Languages. Springer, 1987.

    Google Scholar 

  27. M.Y. Mohd-Saman and D.J. Evans. Inter-Procedural Analysis for Parallel Computing. Parallel Computing, 21:315–338, 1995.

    Google Scholar 

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

    Google Scholar 

  29. R. Palimaradevi and R.K. Subramanian. Alias analysis for parallelization. In Proceedings of the ISCA International Conference on Parallel and Distributed Computing Systems 1996, volume I, pages 292–295. ISCA, 1996.

    Google Scholar 

  30. E. Ruf. Context-Insensitive Alias Analysis Reconsidered. In Proceedings of the SIGPLAN '95 Conference on Programming Language Design and Implementation, pages 13–22. ACM, 1995.

    Google Scholar 

  31. S.K. Skedzielewski. Sisal. In B.K. Szymanski, editor, Parallel Functional Languages and Compilers, pages 105–157. Addison-Wesley, 1991.

    Google Scholar 

  32. B. Stroustrup. Die C++-Programmiersprache. Addison-Wesley, 2. edition, 1992.

    Google Scholar 

  33. W. Wulf and M. Shaw. Global Variables considered harmful. ACM SIGPLAN Notices, 8(2):28–34, February 1973. (summarized in [ML87]).

    Google Scholar 

  34. C.K. Yuen. Which Model of Programming for Lisp: Sequential, Functional or Mixed? ACM SIGPLAN Notices, 26(10):83–92, Oktober 1991.

    Google Scholar 

  35. H. Zima and B. Chapman. Supercompilers for Parallel and Vector Computers. Addison-Wesley, 1991.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Keith Hardy Jim Briggs

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Gellerich, W., Ploedereder, E. (1997). Parameter-induced aliasing and related problems can be avoided. In: Hardy, K., Briggs, J. (eds) Reliable Software Technologies — Ada-Europe '97. Ada-Europe 1997. Lecture Notes in Computer Science, vol 1251. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-63114-3_15

Download citation

  • DOI: https://doi.org/10.1007/3-540-63114-3_15

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63114-9

  • Online ISBN: 978-3-540-69150-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics