A Constructive Alternative to Axiomatic Data Type Definitions
dc.contributor.author | Cartwright, Robert | en_US |
dc.date.accessioned | 2007-04-23T16:39:39Z | |
dc.date.available | 2007-04-23T16:39:39Z | |
dc.date.issued | 1980-06 | en_US |
dc.description.abstract | Many computer scientists advocate using axiomatic methods (such as algebraic specification) to specify a program data domain - the universe of abstract data objects and operations manipulated by a program. Unfortunately, correct axiomatizations are difficult to write and to understand. Furthermore, their non-constructive nature precludes automatic implementation by a language processor. In this paper, we present a more disciplined, purely constructive alternative to axiomatic data domain specification. Instead of axiomatizing the program data domain, the programmer explicitly constructs it by using four type construction mechanisms: constructor generation, union generation, subset generation, and quotient generation. These mechanisms are rich enough to define all of the abstract data objects that programmers commonly use: integers, sequences, trees, sets, arrays, functions, etc. In contrast to axiomatic definitions, constructive definitions are easy to write and to understand. An unexpected advantage of the constructive approach is a limited capacity to support non-deterministic operations. As an illustration, we define a non-deterministic "choose" operation on sets. | en_US |
dc.format.extent | 1728526 bytes | |
dc.format.extent | 513805 bytes | |
dc.format.mimetype | application/pdf | |
dc.format.mimetype | application/postscript | |
dc.identifier.citation | http://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cs/TR80-427 | en_US |
dc.identifier.uri | https://hdl.handle.net/1813/6267 | |
dc.language.iso | en_US | en_US |
dc.publisher | Cornell University | en_US |
dc.subject | computer science | en_US |
dc.subject | technical report | en_US |
dc.title | A Constructive Alternative to Axiomatic Data Type Definitions | en_US |
dc.type | technical report | en_US |