Abstraction mechanisms in CLU
@article{Liskov1977AbstractionMI, title={Abstraction mechanisms in CLU}, author={Barbara H. Liskov and Alan Snyder and Russell 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…
92 Citations
Types in Programming Languages, Between Modelling, Abstraction, and Correctness - Extended Abstract
- Computer ScienceCiE
- 2016
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.
On the unification of data and program abstraction in Ada
- Computer SciencePOPL '83
- 1983
It is suggested in the conclusion that the understanding of abstraction for object-oriented languages and of other language design, implementation, and environment issues will have progressed sufficiently by 1985 to warrant the design of a successor to Ada by the late 1980s.
Writing Larch interface language specifications
- Computer Science, LinguisticsTOPL
- 1987
This paper gives an example of writing an interface specification following the two-tiered approach to writing specifications and discusses in detail issues involved in writing interface specifications and their interaction with their Shared Language components.
The distributed programming language SR—Mechanisms, design and implementation
- Computer ScienceSoftw. Pract. Exp.
- 1982
An overview of the language mechanisms is given, some of the major design decisions are discussed and one implementation of SR is described.
Integrating library modules into Pascal programs
- Computer ScienceSoftw. Pract. Exp.
- 1984
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.
Debugging programs that use macro‐oriented data abstractions
- Computer ScienceSoftw. Pract. Exp.
- 1987
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.
A survey of systems programming languages: Concepts and facilities
- Computer ScienceSoftw. Pract. Exp.
- 1985
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.
Improving the structure of large Pascal programs
- Computer ScienceSoftw. Pract. Exp.
- 1981
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 but…
The Impact of Modelling and Abstraction Concerns on Modern Programming Languages
- Computer ScienceOn Conceptual Modelling
- 1982
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.
VLSI Simulation and Data Abstractions
- Computer ScienceIEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems
- 1986
This paper compares three methods of implementingMultilevel simulation and concludes that the use of data abstractions offers structure, hierarchy and simplicity.
25 References
Programming with abstract data types
- Computer ScienceSIGPLAN Symposium on Very High Level Languages
- 1974
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.
An introduction to the construction and verification of Alphard programs
- Computer ScienceICSE '76
- 1976
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.
Abstraction and Verification in Alphard: Introduction to Language and Methodology
- Computer Science
- 1976
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.
Abstract data types and software validation
- Computer ScienceCACM
- 1978
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.
Specification techniques for data abstractions
- Computer ScienceIEEE Transactions on Software Engineering
- 1975
The role of formal specifications both in proofs of program correctness and in programming methodologies leading to programs which are correct by construction, is explained and some criteria are established for evaluating the practical potential of specification techniques.
Information Distribution Aspects of Design Methodology
- Computer ScienceIFIP Congress
- 1971
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.
A program data flow analysis procedure
- Computer ScienceCACM
- 1976
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 can…
Programming-in-the-Large Versus Programming-in-the-Small
- Computer ScienceIEEE Transactions on Software Engineering
- 1976
The activity of writing large programs is distinguished from that of writing small ones, which means systems consisting of many small programs (modules), usually written by different people.
A note on the for statement
- Political Science
- 1972
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. It…