Terminal Algebra Semantics and Retractions for Abstract Data Types

  title={Terminal Algebra Semantics and Retractions for Abstract Data Types},
  author={G. Hornung and Peter Raulefs},
Very often, the terminal algebra semantics of an algebraic specification of an abstract data type is more important than the initial algebra semantics. This paper develops a theory of terminal algebra semantics. The notion of terminal (t-) abstract data type is introduced, and it is shown that a t-abstract data type is a terminal object in the categories of terminal models and implementations of an abstract data type specification. Many, but not all notions and properties of initial algebra… 

Initial and Final Algebra Semantics for Data Type Specifications: Two Characterization Theorems

We prove that those data types which may be defined by conditional equation specifications and final algebra semantics are exactly the cosemicomputable data types-those data types which are

On the Data Type Extension Problem for Algebraic Specifications

  • M. Oyamaguchi
  • Mathematics, Computer Science
    Theor. Comput. Sci.
  • 1985

An Analysis of Semantic Models for Algebraic Specifications

A more concrete semantics encompassing these different approaches to semantic models for data structures, algorithms and programming languages is presented.

Initial and Terminal Algebra Semantics of Parameterized Abstract Data Type Specifications With Inequalities

A generalization of our terminal algebra semantics approach is presented. We then give a uniform initial/terminal semantics of parameterized data type specifications.

A Final Algebra Semantics for Errors and Exceptions

As an application it is shown how the result can be applied to yield maximal error propagation preserving error recovery in abstract data types.

On hierarchies of abstract data types

This paper provides both model-theoretic and deduction-oriented conditions guaranteeing the soundness of a hierarchical specification, and necessary and sufficient conditions for the existence of initial and terminal models are investigated.

Structured Algebraic Specifications: A Kernel Language

On the Power of Algebraic Specifications

It is proved that every computable partial algebra has an equational hidden enrichment specification and the power of hierarchical partial algebras is discussed.

A Kernel Language for Algebraic Specification and Implementation

A kernel specification language called ASL is presented and a collection of identities is given which can provide a foundation for the development of programs by transformation.



Abstract data types and software validation

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.

Existential Quantifiers in Abstract Data Types

Hierarchies of abstract data types are specified by axioms which are positive formulas consisting of universally and existentially quantified disjunctions and conjunctions of equations to investigate the existence of terminal algebras.

Expressiveness of the operation set of a data abstraction

The expressive power of the operation set is characterized by defining two properties for data abstractions - expressive completeness and expressive richness.

The design of data type specifications

A means for specifying a data type which is independent of its eventual implementation is explored, called algebraic axioms, which is exhibited by axiomatizing many commonly used data types.

Data Types as Lattices

The meaning of many kinds of expressions in programming languages can be taken as elements of certain spaces of “partial” objects. In this report these spaces are modeled in one universal domain

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.

CSSA: Language concepts and programming methodology

CSSA (Computing System for Societies of Actors) is an experimental programming language that originated from an attempt to design a language combining various new ideas having evolved from the fields