Title
On the unification of data and program abstraction in Ada
Abstract
Ada is rich in the variety of its abstraction mechanisms. It has both a data abstraction mechanism (packages with private data types) that supports a functional programming style and a program abstraction mechanism (generic program units) that supports an object-oriented program style. Tradeoffs between data and program abstraction are examined and it is pointed out that Ada discourages program abstraction because program units are not first-class objects. It is shown how program units could be made into first-class objects by introducing closures as values for functions and records with function components as values for packages. Further unification by allowing types to be first-class objects conflicts with the requirement of compile-time type invariance. The relaxation of this requirement in a manner that preserves type consistency is examined and leads to a notion of value for types as tuples of operations. It is suggested in the conclusion that our 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.
Year
DOI
Venue
1983
10.1145/567067.567091
POPL
Keywords
Field
DocType
generic program unit,data abstraction mechanism,program abstraction mechanism,object-oriented program style,abstraction mechanism,program unit,first-class object,program abstraction,first-class objects conflict,private data type,object oriented language,data type,generic programming,combinators,object oriented programming,functional programming
Programming language,Abstraction,Functional programming,Computer science,Tuple,Data type,High-level programming language,Abstraction inversion,Abstraction principle,Low-level programming language
Conference
ISBN
Citations 
PageRank 
0-89791-090-7
6
5.06
References 
Authors
1
1
Name
Order
Citations
PageRank
Peter Wegner12049473.19