Abstraction mechanisms in CLU

@article{Liskov1977AbstractionMI,
  title={Abstraction mechanisms in CLU},
  author={B. Liskov and A. Snyder and R. Atkinson and Craig Schaffert},
  journal={Communications of The ACM},
  year={1977},
  volume={20},
  pages={564-576}
}
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… Expand
Types in Programming Languages, Between Modelling, Abstraction, and Correctness - Extended Abstract
TLDR
The central part of alanguage is made by the abstraction mechanisms it provides to model its application domain(s), all issues the language theorist may well group together in the type chapter of a language definition. Expand
The distributed programming language SR—Mechanisms, design and implementation
TLDR
An overview of the language mechanisms is given, some of the major design decisions are discussed and one implementation of SR is described. Expand
Integrating library modules into Pascal programs
TLDR
The system performs the symbolic linking of source language modules producing a single Pascal text ready for compilation; performing the link phase before compilation anticipates interface consistency checks, and suggests a possible improvement of program development systems. Expand
Debugging programs that use macro‐oriented data abstractions
TLDR
Enhanced C is a set‐oriented, extensible, C‐like language that uses data abstractions to define new types, called clusters, that are macro‐like devices that perform substitution on the typed syntax tree. Expand
A survey of systems programming languages: Concepts and facilities
TLDR
In this paper, systems programming languages are surveyed to find common characteristics and individual differences and limitations of a number of current languages, including Ada, Concurrent Pascal, CLU, Pascal‐Plus, Modula‐2, Mesa, Edison, PLZ/SYS and C. Expand
Improving the structure of large Pascal programs
This paper describes an extension to Pascal in the form of an encapsulation mechanism aimed at improving the structure of large Pascal programs. It is based upon the module structure of Modula butExpand
The Impact of Modelling and Abstraction Concerns on Modern Programming Languages
  • M. Shaw
  • Computer Science
  • On Conceptual Modelling
  • 1982
TLDR
This chapter traces the important ideas of modern programming languages to their roots in the problems and languages of the past decade and shows how these modern languages respond to contemporary problems in software development. Expand
VLSI Simulation and Data Abstractions
  • J. Katzenelson, E. Weitz
  • Computer Science
  • IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
  • 1986
TLDR
This paper compares three methods of implementingMultilevel simulation and concludes that the use of data abstractions offers structure, hierarchy and simplicity. Expand
Adding classes to the C language: An exercise in language evolution
TLDR
The class concept described here has benefitted from the experience gained through a year's use, and is now in use at close to a hundred installations. Expand
Polymorphic programming I. Another language designed on semantic principles
TLDR
The potential of a thus far little explored avenue of programming language design–‐namely the employment of types and routines as values in their own right within the framework of an Algol–‐is illustrated. Expand
...
1
2
3
4
5
...

References

SHOWING 1-10 OF 26 REFERENCES
Programming with abstract data types
TLDR
An approach which allows the set of built-in abstractions to be augmented when the need for a new data abstraction is discovered and is an outgrowth of work on designing a language for structured programming. Expand
An introduction to the construction and verification of Alphard programs
TLDR
This paper introduces Alphard by developing and verifying a data structure definition and a program that uses it and shows how each language construct contributes to the development of the abstraction and discusses the way the language design and the verification methodology were tailored to each other. Expand
Abstraction and Verification in Alphard: Introduction to Language and Methodology
TLDR
This paper attempts to capture the symbiotic influence of these two goals on the design of Alphard by interleaving the language description with the presentation of a proof technique and discussion of programming methodology. Expand
Specification techniques for data abstractions
TLDR
The main purposes in writing this paper are to discuss the importance of formal specifications and to survey a number of promising specification techniques, including those used to construct specifications of data abstractions. Expand
Abstract data types and software validation
TLDR
The major thrust of the paper is shown how the use of algebraic axiomatizations can simplify the process of proving the correctness of an implementation of an abstract data type. Expand
Programming-in-the-Large Versus Programming-in-the-Small
TLDR
The activity of writing large programs from that of writing small ones is distinguished, and emphasis is placed on facilities for information hiding and for defining layers of virtual machines. Expand
Information Distribution Aspects of Design Methodology
TLDR
The role of documentation in the design and implementation of complex systems is explored, resulting in suggestions in sharp contrast with current practice, and the thesis that such information "broadcasting is harmful, that it is helpful if most system information is hidden from most programmers, is supported. Expand
An Axiomatic Definition of the Programming Language PASCAL
The axiomatic definition method proposed in reference [5] is extended and applied to define the meaning of the programming language PASCAL [1]. The whole language is covered with the exception ofExpand
A program data flow analysis procedure
The global data relationships in a program can be exposed and codified by the static analysis methods described in this paper. A procedure is given which determines all the definitions which canExpand
A note on the for statement
This note discusses methods of defining the for statement in high level languages and suggests a proof rule intended to reflect the proper role of a for statement in computer programming. ItExpand
...
1
2
3
...