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.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
W.B. Ackerman. Data Flow Languages. IEEE Computer, 15(2):14–25, February 1982.
Ada 95 Reference Manual. Intermetrics, Inc., 1995. ANSI/ISO/IEC-8652:1995.
A.L. Ambler. GYPSY: A Language for Specification and Implementation of Verifiable Programs. ACM SIGPLAN Notices, 12(3): 1–10, March 1977.
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.
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.
G. Booch. Software Engineering with Ada. The Benjamin/Cummings Publishing Co., 2 edition, 1987.
D.C. Cann. Retire Fortran? A Debate Rekindled. Technical Report UCRLJC-107018 Rev.2, Lawrence Livermore National Laboratory, 1992.
K.D. Cooper and K. Kennedy. Fast Interprocedureal Alias Analysis. In Sixteenth Annual ACM Symposium on Principles of Programming Languages, pages 49–59, 1989.
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.
R. Cordy, 1994. Discussion in newsgroup comp.lang.misc.
J.E. Donahue. Locations considered unnecessary, acta informatica, 8:221–242, 1977.
R.A. Finkel. Advanced Programming Language Design. Addison Wesley, 1995.
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.
G. Goos and J. Hartmanis (eds). The Programming Language Ada Reference Manual. Springer, 1983.
C. Ghezzi and M. Jazayeri. Programming Language Concepts. John Wiley and Sons, 1987.
S.P. Harbison. Modula-3. Prentice-Hall, Englewood Cliffs, NJ, 1992.
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.
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.
R.C. Holt, P.A. Matthews, J.A. Rosselet, and J.R.Cordy. The Turing Programming Language. Prentice Hall, 1988.
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]).
C.A.R. Hoare. Essays in Computing Science. International Series in Computer Science. Prentice Hall, 1989.
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.
M.O. Jokinen. The Effect of Parameter Passing and Other Implementation Dependent Mechanisms is Undecidable. ACM SIGPLAN Notices, 17(9): 16–17, September 1982.
D.J. Kuck, J.R. McGraw, and M.J. Wolfe. A debate: Retire FORTRAN? Physics Today, 37(5):66–75, May 1984.
C.H. Koelbel. The High Performance Fortran Handbook. MIT Press, 1994.
M. Marcotty and H. Ledgard. The World of Programming Languages. Springer, 1987.
M.Y. Mohd-Saman and D.J. Evans. Inter-Procedural Analysis for Parallel Computing. Parallel Computing, 21:315–338, 1995.
H.G. Mayer and M. Wolfe. Interprocedural Alias Analysis: Implementation and Empirical Results. Software Practice and Experience, 23(11): 1202–1233, November 1993.
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.
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.
S.K. Skedzielewski. Sisal. In B.K. Szymanski, editor, Parallel Functional Languages and Compilers, pages 105–157. Addison-Wesley, 1991.
B. Stroustrup. Die C++-Programmiersprache. Addison-Wesley, 2. edition, 1992.
W. Wulf and M. Shaw. Global Variables considered harmful. ACM SIGPLAN Notices, 8(2):28–34, February 1973. (summarized in [ML87]).
C.K. Yuen. Which Model of Programming for Lisp: Sequential, Functional or Mixed? ACM SIGPLAN Notices, 26(10):83–92, Oktober 1991.
H. Zima and B. Chapman. Supercompilers for Parallel and Vector Computers. Addison-Wesley, 1991.
Author information
Authors and Affiliations
Editor information
Rights 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