Browser unable to execute script; please use the site map to navigate the site.

Die Ondersteuning van Abstrakte Datatipes en Toestelle in ’n Programmeertaal



(Citation)Citation information

M. S. Olivier. “Die Ondersteuning van Abstrakte Datatipes en Toestelle in ’n Programmeertaal”. M.Sc-verhandeling. Johannesburg, Suid-Afrika: Randse Afrikaanse Universiteit, 1985



The peripherals of a computer system constitutes an important part of the hardware of the system. It is easy to see that there are similarities between these devices and an instance of an abstract data type — both act as encapsulated entities and are used through a well-defined interface. Objects such as RAM-disks, blur the distinction between devices and abstract data types. The concept “abstract device” is therefore defined to refer to any such encapsulated object which may only be used through its interface — the object may consist of hardware, software or a combination of both.

Objects and object oriented programming, as well as abstract data types and their support in current programming languages are examined for suitability to support abstract devices in a high-level programming language - it is argued that the usual programming language support for abstract data types provides the better solution for abstract device support.

Normal support for abstract data types are, however, not always sufficient to support abstract devices — the most important additional facility required, is the ability to support “record-based” abstract devices; a record-based abstract device is an abstract device such as a database where the information is organised in records (with a special meaning attached to certain fields of the record, e.g. key fields) and where the actual record differs from instance to instance. Since the definition of abstract devices includes the notion of abstract data types, it follows that a facility to support abstract devices will implicitly be able to support abstract data types. It is therefore necessary to extend the facilities for supporting abstract data types to support abstract devices as well.

The mathematical specification of both syntax and semantics of an abstract data type, has become an important field of study. It is consequently important to extend this aspect of abstract data types to abstract devices — the necessary additions are discussed and the mathematical specification of abstract devices is illustrated with a number of examples.

A programming language has been developed to demonstrate the facilities which may be provided to support abstract devices. The specification of abstract devices (in this programming language) is also discussed and illustrated with examples. A comprehensive example of an “intelligent” abstract device is also given.

A compiler cannot treat every instance of an abstract device like a conventional variable (although a conventional variable is, by definition, an instance of an abstract device). Since this area is the only where a compiler for a language which supports abstract devices, differs from another compiler, the internal representation of abstract devices is covered in detail.

A full specification of the above mentioned programming language is given in an appendix.


Hierdie verhandeling ondersoek die ondersteuning wat programmeertale vir toestelle behoort te bied.

Die begrip “toestel” word eerstens uitgebrei na “abstrakte toestel”, wat ’n breër veld objekte insluit as wat die geval met “toestel” is. Daarna word vasgestel watter fasiliteite in ’n programmeertaal voorsien kan word ter ondersteuning van abstrakte toestelle. Laastens word na ’n spesifieke programmeertaal (wat spesiaal vir die doel ontwikkel is) gekyk, om die ondersteuning van abstrakte toestelle in ’n programmeertaal volledig te illustreer.

Die onderwerpe wat in die onderskeie hoofstukke gedek word, is die volgende:

Hoofstuk 2:

Die begrip ”abstrakte toestel” word ontwikkel en gedefinieer.

Hoofstuk 3:

Objekgeoriënteerde programmering word ondersoek om vas te stel tot watter mate dit abstrakte toestelle ondersteun.

Hoofstuk 4:

Abstrakte datatipes word ondersoek om vas te stel tot watter mate dit die implementering van abstrakte toestelle moontlik maak.

Hoofstuk 5:

Daar word kortliks gekyk na tipiese fasiliteite wat ter ondersteuning van abstrakte datatipes in programmeertale aangetref word — die fasiliteite ter ondersteuning van abstrakte toestelle word later hierop gebaseer.

Hoofstuk 6:

Eerstens word na die formele wiskundige beskrywing van abstrakte datatipes gekyk, waarna aangetoon word dat abstrakte toestelle op ’n soortgelyke wyse beskryf kan word.

Hoofstuk 7:

Hierdie hoofstuk kyk kortliks na die notasie wat in ’n paar bestaande programmeertale gebruik word om abstrakte datatipes te definieer en te gebruik — die notasie wat vir abstrakte toestelle gebruik gaan word, is hierop gebaseer.

Hoofstuk 8:

Die fasiliteite wat ’n programmeertaal behoort te voorsien om abstrakte toestelle te ondersteun, word in hierdie hoofstuk gedek.

Hoofstuk 9:

Hier word een (belangrike) aspek van abstrakte toestelle — die sogenaamde rekordgebaseerde toestelle — volledig bespreek.

Hoofstuk 10:

Hierdie hoofstuk illustreer die krag van abstrakte toestelle deur middel van ’n voorbeeld.

Hoofstuk 11:

Die interne voorstelling van abstrakte toestelle en die wyse waarop hierdie voorstelling (op ’n lae vlak) hanteer kan word, word toegelig.

Hoofstuk 12:

Hier word geredeneer dat die oorhoofse koste verbonde aan abstrakte toestelle nie te hoog is nie.

Bylaag A:

Hierdie bylaag bevat die spesifikasie van die programmeertaal waarna in die vorige afdelings verwys is.

(BibTeX record)BibTeX reference

author={Martin S Olivier},
title={Die Ondersteuning van Abstrakte Datatipes en Toestelle in ’n Programmeertaal},
school={Randse Afrikaanse Universiteit},
address={Johannesburg, Suid-Afrika},
year={1985} )