Towards alias-free pointers
This paper argues that pointer-induced aliasing can be avoided in many cases by means of a concept of unique pointer. The use of such pointers is expected to fortify the concept of encapsulation, to make systems easier to reason about, to provide better control over the interaction between threads, and to make storage management safer and more efficient. We show that unique pointers can be implemented by means of few minor and virtually costless modifications in conventional OO languages, such as Eiffel or C++; and that they can be used conveniently in a broad range of algorithms and data structures.
Key words and phrasespointer-induced aliasing hiding encapsulation programming with threads storage management
Unable to display preview. Download preview PDF.
- 1.H.G. Baker. Use-once variables and linear objects — storage management, reflection and multi-threading. ACM SIGPLAN Notices, January 1995.Google Scholar
- 2.L. Cardelli, J. Donahue, L. Glassman, M. Jordan, and G. Nelson. Modula-3 report (revised). Technical Report 52, Digital System Research Center, November 1989.Google Scholar
- 3.J. Y. Girard. Linear logic. Theoretical Computer Science, pages 1–102, 1987.Google Scholar
- 4.Dougles E. Harms and Bruce W. Weide. Copying and swapping: Influences on the design of reusable software components. IEEE Transactions on Software Engineering, pages 424–434, May 1991.Google Scholar
- 5.W Landi. Undecidebility of static analysis. Lett. Program. Lang. Syst., 1(4), December 1992.Google Scholar
- 6.B. Meyer. Object-Oriented Software Construction. Prentice-Hall, 1987.Google Scholar
- 7.B. Meyer. Eiffel: The Language. Prentice-Hall, 1992.Google Scholar
- 8.N.H. Minsky. On the use of tokens in programming. Technical report, Rutgers University, LCSR, October 1995.Google Scholar
- 9.D.L. Parnas. On the criteria to be used in decomposing systems into modules. Communications of the ACM, 15(12), December 1972.Google Scholar
- 10.R. Sethi. Programming Languages, Concepts and Constructions. Addison Wesley, 1989.Google Scholar
- 11.A. Tanenbaum. Modern Operating Systems. Prentice Hall, 1992.Google Scholar