Abstraction mechanisms in CLU

  title={Abstraction mechanisms in CLU},
  author={Barbara H. Liskov and Alan Snyder and Russell R. Atkinson and Craig Schaffert},
  journal={Commun. ACM},
CLU is a new programming language designed to support the use of abstractions in program construction. Work in programming methodology has led to the realization that three kinds of abstractions, procedural, control, and especially data abstractions, are useful in the programming process. Of these, only the procedural abstraction is supported well by conventional languages, through the procedure or subroutine. CLU provides, in addition to procedures, novel linguistic mechanisms that support the… 
JavaGI: a language with generalized interfaces
This dissertation presents the implementation of a JavaGI compiler and an accompanying run-time system and explores two extensions of the type system, which both have undecidable subtyping relations but for which several decidable fragments exist.
Types and programming languages
This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages, with a variety of approaches to modeling the features of object-oriented languages.
The Exbed Project -some Experiences
We report on experiences of the ExBed project, speciically on adding a rule based expression mechanism to an existing procedural programming language (C++) and on designing and implementing a
Guardians and Actions: Linguistic Support for Robust, Distributed Programs
The language addresses the writing of robust programs that survive hardware failures without loss of distributed information and that provide highly concurrent access to that information while preserving its consistency.
The development of the Emerald programming language
The origins of the Emerald group, the forces that formed the language, the influences that Emerald has had on subsequent distributed systems and programming languages, and some of Emerald's more interesting technical innovations are described.
Iterators in Chapel
The iterator concept in the Chapel parallel programming language is introduced, designed to address the problem and provide a means for factoring iteration away from computation and compares the approach with those taken in other languages.
History of the Object-Oriented Approach
The road towards an object-oriented approach is described and several object- oriented programming languages are reviewed and several methodologies have been proposed to support software development based on that paradigm.
An Analysis of Constrained Polymorphism for Generic Programming
It is argued that while object-oriented interfaces and concepts are similar in many ways, they also have subtle but important differences that make concepts more suitable for constraining polymorphism in generic programming.
Influences on the design of exception handling: ACM SIGSOFT project on the impact of software engineering research on programming language design
There is a symbiotic relationship between software engineering research and the design of exception handing in programming languages, demonstrated in a report investigates the relationship by considering features in currently used languages.
On the Multiple Implementation of Abstract Data Types Within a Computation
  • John R. White
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1983
This paper reformulates this design step to allow different refinements of the same data abstraction within a computation to allow multiple implementations of this data abstraction.