Jump to ContentJump to Main Navigation
Handbook of Logic in Computer Science: Volume 5. Algebraic and Logical Structures$
Users without a subscription are not able to see the full content.

S. Abramsky, Dov M. Gabbay, and T. S. E. Maibaum

Print publication date: 2001

Print ISBN-13: 9780198537816

Published to Oxford Scholarship Online: November 2020

DOI: 10.1093/oso/9780198537816.001.0001

Show Summary Details
Page of

PRINTED FROM OXFORD SCHOLARSHIP ONLINE (oxford.universitypressscholarship.com). (c) Copyright Oxford University Press, 2021. All Rights Reserved. An individual user may print out a PDF of a single chapter of a monograph in OSO for personal use. date: 15 June 2021

Algebraic specification of abstract data types

Algebraic specification of abstract data types

Chapter:
(p.217) Algebraic specification of abstract data types
Source:
Handbook of Logic in Computer Science: Volume 5. Algebraic and Logical Structures
Author(s):

J. Loeckx

H.-D. Ehrich

Publisher:
Oxford University Press
DOI:10.1093/oso/9780198537816.003.0004

It is widely accepted that the quality of software can be improved if its design is systematically based on the principles of modularization and formalization. Modularization consists in replacing a problem by several “smaller” ones. Formalization consists in using a formal language; it obliges the software designer to be precise and principally allows a mechanical treatment. One may distinguish two modularization techniques for the software design. The first technique consists in a modularization on the basis of the control structures. It is used in classical programming languages where it leads to the notion of a procedure. Moreover, it is used in “imperative” specification languages such as VDM [Woodman and Heal, 1993]; [Andrews and Ince, 1991], Raise [Raise Development Group, 1995], Z [Spivey, 1989] and B [Abrial, 1996]. The second technique consists in a modularization on the basis of the data structures. While modern programming languages such as Ada [Barstow, 1983] and ML [Paulson, 1991] provide facilities for this modularization technique, its systematic use leads to the notion of abstract data types. This technique is particularly interesting in the design of software for non-numerical problems. Compared with the first technique it is more abstract in the sense that algebras are more abstract than algorithms; in fact, control structures are related to algorithms whereas data structures are related to algebras. Formalization leads to the use of logic. The logics used are generally variants of the equational logic or of the first-order predicate logic. The present chapter is concerned with the specification of abstract data types. The theory of abstract data type specification is not trivial, essentially because the objects considered — viz. algebras — have a more complex structure than, say, integers. For more clarity the present chapter treats algebras, logics, specification methods (“specification-in-the-small”), specification languages (“specification-in-the-large”) and parameterization separately. In order to be accessible to a large number of readers it makes use of set-theoretical notions only. This contrasts with a large number of publications on the subject that make use of category theory [Ehrig and Mahr, 1985; Ehrich et al., 1989; Sannella and Tarlecki, 2001].

Keywords:   adequate specification, algebra, behavioural abstraction, behavioural equivalence, calculus, consistent, constant, derivable formula, design specification, domain, dynamic signature, dynamic sort, equational logic, equivalence sequence, formula, formula morphism, free extension, freely generated, generated, hierarchical specification

Oxford Scholarship Online requires a subscription or purchase to access the full text of books within the service. Public users can however freely search the site and view the abstracts and keywords for each book and chapter.

Please, subscribe or login to access full text content.

If you think you should have access to this title, please contact your librarian.

To troubleshoot, please check our FAQs , and if you can't find the answer there, please contact us .