[SDL Forum Society - Logo] Tutorial on SDL-88
Belina, Hogrefe (edits Reed)

6. Data type concepts

Back Home Next

The data type concept in SDL-88 is based on abstract data types (ADT), and is conceptually equivalent to the ACT ONE [8] and the data type concept of LOTOS [9]. The notations differ, however, from those used in LOTOS, mainly for historical reasons. Although superficially it seems as if there were some significant differences between the data type concepts of LOTOS and SDL-88, CCITT and ISO agreed upon a common document that forms a basis for both.

In the subsequent SDL-92 and SDL-2000 versions, all data types continue to be based on the document agreed with ISO and all data types are based on the ADT approach. However, in use all versions (SDL-88, SDL-92 and SDL-2000) differ significantly from LOTOS use, focussing on constructing data types using data types that are Predefined and build-in features (such as STRUCT). In SDL-2000 the ability to define data types using axioms is restricted to defining the Predefined data, and user introduced types have to be defined constructively.

An understanding of the axiomatic definition of ADT will help a user understand the basis of data in all versions (SDL-88, SDL-92 and SDL-2000), as well as the rare occasions where a user data-type has been defined using axioms in SDL-88 and SDL-92. However, even in SDL-88 the preferred way to define a data was constructive: providing algorithms to evaluate operations based on the Predefined and built-in features. This has two major advantages over using axioms: it is easier to write correctly (with axioms it is easy to make mistakes - that is be inconsistent - or to be incomplete), and it is easy to interpret (with axioms interpretation may be difficult, or - for unbounded sorts - impossible).

The material provided in this section can therefore be treated as background information to be able to read and understand axiomatic ADT definitions, but the advice is to avoid writing them.

6.1 Introduction to ADT
6.2 Partial type definitions
6.3 Error terms
6.4 Conditional equations
6.5 Inheritance
6.6 Generators
6.7 Records and fields
6.8 Predefined data

Back Home Next

Contact the webmaster with questions or comments about this web site.
Copyright 1997-May, 2013 SDL Forum Society