Abstract types defined as classes of variables

  title={Abstract types defined as classes of variables},
  author={David Lorge Parnas and John E. Shore and David M. Weiss},
  booktitle={SIGMOD 1976},
The concept of “type” has been used without a precise definition in discussions about programming languages for 20 years. Before the concept of user defined data types was introduced, a definition was not necessary for discussions of specific programming languages. The meaning of the term was implicit in the small list of possible types supported by the language. There was even enough similarity between different languages so that this form of definition allowed discussions of languages in… 

Topics from this paper

Name management in the construction of large programs. [Modular decomposition, programmed in PL/I for IBM 360/65]
A framework emphasizing the management of names during the program construction process and an implementation model defining the effect of these constructs on the naming structure of the resulting language are presented.
Where are the data?
  • J. Reich
  • Computer Science, Medicine
    Nature Structural &Molecular Biology
  • 2016
It is argued that the proposed data concept matches the concept of characteristics (Merkmale) of the automation industry and is mathematically conceptualized as typed information based on the two concepts of information and computable functionality.
GRACE TECHNICAL REPORTS Proceedings of the Sixth Asian Workshop on Foundations of Software
This talk presents an approach that can be applied to all of the problems of software development and allows designers to use the same notation throughout and to check on the correctness of the results at the end of each design phase.
Data types as values: polymorphism, type-checking, encapsulation
This paper describes a novel approach to the treatment of data types in programming languages, which allows a simple interpretation of "polymorphic" or "generic" procedures, makes a simple set of
Programming Methodology
A historical perspective is provided on issues concerning the correctness of programs. According to Webster's definition of a tutorial: "a paper and esp. a technical paper written to give practical
Definition of a type system for generic and reflective graph transformations
An extension of the graph transformation language SDM (Story Driven Modeling) is presented which supports the definition of generic rewrite rules and combines them with the reflective programming mechanisms of Java and the model repository interface standard JMI.
Design and Specification of the Minimal Subset of an Operating System Family
The motivation for the design is explained, the problems discovered in earlier approaches are explained, and a series of improvements in both the design and the specification techniques are described.
Coupling-based Testing of O-O Programs
New techniques for analyzing and testing the polymorphic relationships that are found in O-O software can result in an increased ability to find faults and overall higher quality software.
Pipeline Combinators for Gradual AutoML
Automated machine learning (AutoML) can make data scientists more productive. But if machine learning is totally automated, that leaves no room for data scientists to apply their intuition. Hence,
A Brief History of Software Engineering
  • N. Wirth
  • Computer Science
    IEEE Annals of the History of Computing
  • 2008
This personal perspective on the art of programming begins with a look at the state of programming from about 1960, and it follows programming's development through the present day. The article


The treatment of data types in EL1
The EL1 language contains a number of features specifically designed to simultaneously satisfy both natural problem-oriented notation and efficient implementation, in a context that allows efficient compiled code and compact data representation.
Programming with abstract data types
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.
Programming with abstract data types
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.
Revised report on the algorithm language ALGOL 60
a survey of the basic coustituents arid fcuturcs of the language is given, and the formal notation, by which the syntactic structure is defined, is esplaincd. The sccnnd chapter lists all the basic
Report of Algorithmic Language ALGOL 68
Working Group 2.1 on ALGOL of the International Federation for Information Processing has discussed the development of “ALGOL X”, a successor to ALGol 60 since 1963, and invited written descriptions of the language based on the previous discussions.
A technique for software module specification with examples
This paper presents an approach to writing specifications for parts of software systems sufficiently precise and complete that other pieces of software can be written to interact with the piece specified without additional information.
On the criteria to be used in decomposing systems into modules
This paper discusses modularization as a mechanism for improving the flexibility and comprehensibility of a system while allowing the shortening of its development time. The effectiveness of a
Notes on structured programming
The final author version and the galley proof are versions of the publication after peer review that features the final layout of the paper including the volume, issue and page numbers.
CS-4 Language Reference Manual
  • CS-4 Language Reference Manual
  • 1975