Title
Operational machine specification in a functional programming language
Abstract
This paper advocates the use functional programming languages for the formal specification of (abstract) machines. The presented description method describes machines by a two-Level model. At the bottom layer machine components and the micro instructions to handle them are described by using an abstract data type. The top layer describes the machine instructions in terms of these micro instructions. Using a functional language as specification language has several advantages. The abstraction mechanisms offered by a functional programming language are that good that one can abstract from irrelevant details as is required for a specification language. Functional languages have a well-defined semantics such that the meaning of the specification is clear as well. Moreover, they offer the advantages of a programming language: the compiler can check the specification for partial correctness, eliminating for example type errors and unbound identifiers (errors which occur in many published descriptions). Furthermore, the specification can be executed such that one obtains a prototype implementation almost for free. Such an executable formal specification can, for instance, be used to investigate the dynamic behaviour of the described machine. For a simple machine, the proposed description method is compared with several other description methods: a traditional style, a denotational semantics and a formal specification in the language Z. To show that the proposed method is indeed useful to describe large and complicated machines, the method is applied for the specification of an abstract imperative graph rewrite machine (the ABC-machine) which has been used in the construction of the compiler for the functional language Concurrent Clean.
Year
DOI
Venue
1995
10.1002/spe.4380250502
Softw., Pract. Exper.
Keywords
DocType
Volume
functional programming language,formal specification,machine specification,prototype implemen- tation,executable specification
Journal
25
Issue
ISSN
Citations 
5
0038-0644
3
PageRank 
References 
Authors
0.50
6
3
Name
Order
Citations
PageRank
Pieter W. M. Koopman17811.67
marko c j d van eekelen223930.37
Marinus J. Plasmeijer321023.72