COPYING, SHARING, AND ALIASING
Peter D. Grogono, Patrice Chalin · WORLD SCIENTIFIC eBooks · 1995
Study of the history of programming languages reveals a subtle interplay between semantics and implementation. Early languages, designed for maximum efficiency, provided simple abstractions of the underlying hardware. These languages were followed by languages that were "problem oriented" in that they attempted to hide the grosser details of the underlying hardware. Yet confusion between semantics and implementation persists, encouraged by the survival of low-level features that are deemed to be essential for efficiency. Copying, sharing, and aliasing are examples of concepts that render the task of the programmer more difficult by confusing semantics and implementation. For object oriented programs, the important distinction is not between values and references, but between mutable and immutable objects. This distinction is the basis for a model of computation that is untainted by implementation considerations and that provides the necessary foundation for object oriented modeling. 1 ...