Results 1 -
4 of
4
An Approach to Verifiable Compiling Specification and Prototyping
- in DIRECTORATE-GENERAL OF THE COMMISSION OF THE EUROPEAN COMMUNITIES (Ed.): `ESPRIT '90 Conference Proceedings', Brussels (Kluwer Academic Publishers B.V
, 1990
"... A compiler may be specified as a set of theorems, each describing how a construct in the programming language is translated into a sequence of machine instructions. The machine may be specified as an interpreter written in the programming language itself. Using refinement algebra, it can then be ver ..."
Abstract
-
Cited by 15 (6 self)
- Add to MetaCart
A compiler may be specified as a set of theorems, each describing how a construct in the programming language is translated into a sequence of machine instructions. The machine may be specified as an interpreter written in the programming language itself. Using refinement algebra, it can then be verified that interpreting a compiled program is the same or better than executing the original source program. The compiling specification is very similar to a logic program and thus a prototype compiler (and interpreter) may easily be produced in a language such as Prolog. A subset of the occam programming language and the transputer instruction set are used to illustrate the approach. An advantage of the method is that new programming constructs can be added without necessarily affecting existing developmentwork.
An Algebraic Approach to Verifiable Compiling Specification and Prototyping of the ProCoS Level 0 Programming Language
, 1990
"... A compiler is specified by a description of how each construct of the source language is translted into a sequence of object code instructions. The meaning of the object code can be defined by an interpreter written in the source language itself. A proof that the compiler is correct must show that t ..."
Abstract
-
Cited by 14 (12 self)
- Add to MetaCart
A compiler is specified by a description of how each construct of the source language is translted into a sequence of object code instructions. The meaning of the object code can be defined by an interpreter written in the source language itself. A proof that the compiler is correct must show that the interpretation of the object code is at least as good (for any relevant purpose) as the corresponding source program.
Experiences with Gentle: Efficient Compiler Construction Based On Logic Programming
- Lecture Notes in Computer Science
, 1991
"... Gentle [Schroer 89] is a compiler description language in the tradition of two level grammars [Koster 71] and logic programming [Warren 80]. It provides a common declarative notation for high level description of analysis, transformation, and synthesis. Imperative constructs like global variables an ..."
Abstract
-
Cited by 5 (1 self)
- Add to MetaCart
Gentle [Schroer 89] is a compiler description language in the tradition of two level grammars [Koster 71] and logic programming [Warren 80]. It provides a common declarative notation for high level description of analysis, transformation, and synthesis. Imperative constructs like global variables and dynamic arrays, needed for efficient compiler construction, are introduced as well. A tool has been implemented to check the wellformedness of Gentle descriptions, and to generate very fast (generation speed 260.000 lines per minute) very efficient compilers (compilation speed nearly 90.000 line per minute on Dec 3100 workstation) . The language and a supporting tool were designed and implemented by F.W. Schroer in 1989. Logic Programming and Compiling Using logic programming as a compiler--writing tool has a long tradition. [Warren 80] shows how Prolog may be used for this purpose and writes: To summarize, Prolog has the following advantages as a compiler--writing tool: 1. Less time an...

