Abstract

Abstract specifications of data types have proved to be a powerful tool in the process of software development. Consequently, semantic theories for programs computing on abstractly specified data types have been studied. At least two different types of theories have emerged. Approaches of the first type view programming language constructs, such as assignment or if-then-else, as operators of algebras that contain as a sub-algebra the data types on which the programs compute. The approaches of [ADJ77], [CoN78], [Wan79a], and [BrW80], among others, belong to this class. This enrichment of the base type by the while-program control constructs is, because of aspects of nontermination, not sufficiently complete in the sense of e.g. [Gut75], [ADJ78a], [Wan79b]. Thus the theory of abstract data types has been extended by various concepts, among them partial algebras and homomorphisms or continuous algebras. The second class of approaches is concerned with programs as implementations of abstractly specified data types. Programs are viewed as data type specifications that extend the base type by the objects (variables, functions, types) it computes [ADJ78a], [Ehr79], [EKP80], [Hup80], [Gan81], among others. Then, the semantics of a terminating program is a “persistent” free functor from the base type theory to these objects.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call