1997
DOI: 10.1142/2870
|View full text |Cite
|
Sign up to set email alerts
|

An Algebraic Approach to Compiler Design

Abstract: The general purpose of this thesis is to inve8tigate the design of compilers for procedu ralla.nguagea, based on the algebraic la.ws which these langua.ges sa.tisfy. The particular stra.tegy adopted is to reduce an arbitrary source progrQlIl to a nonna! form which de scribes precisely the beha.viour of the ta.rget machine. This is achieved by a. series of algebraic transformations which are proved from the more basic laws. The correctness of the oompiler follows from the correctness of each algebraic transform… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
24
0
2

Year Published

2002
2002
2017
2017

Publication Types

Select...
6

Relationship

0
6

Authors

Journals

citations
Cited by 40 publications
(26 citation statements)
references
References 11 publications
0
24
0
2
Order By: Relevance
“…[11] and [3] use re nement as a compilation model. In the former, a re nement calculus is de ned to support the compilation of programs written in an idealised high-level language into the .NET assembler.…”
Section: Related Workmentioning
confidence: 99%
“…[11] and [3] use re nement as a compilation model. In the former, a re nement calculus is de ned to support the compilation of programs written in an idealised high-level language into the .NET assembler.…”
Section: Related Workmentioning
confidence: 99%
“…Here, we focus on the execution of Java bytecode and its compilation to native C code. We formalise the requirements for an SCJVM bytecode interpreter and a compilation strategy, using the algebraic approach [25] to verify compilation from bytecode to C, with icecap as a source of requirements for our specification. We use C as our target, following the scheme used by icecap that aims for portable native code that can be easily integrated into existing systems.…”
Section: Introductionmentioning
confidence: 99%
“…Implementing the rules using a rewrite engine can produce a prototype verified compiler. Algebraic compilation has been studied for imperative [25] and object-oriented languages [9], and for hardware compilation [21]. Here we use it, for the first time, to compile a low-level language, Java bytecode, to a high-level language, C. While Java bytecode has some highlevel features, particularly its notion of objects, we view it as low-level since it is unstructured, with control flow managed using a program counter.…”
Section: Introductionmentioning
confidence: 99%
“…Refinement algebras are abstract algebras for reasoning about program refinement [18,21,22,20]. Axiomatic reasoning can, in a certain sense, provide a simpler reasoning tool than the classical set and order-theoretic frameworks [1,5,16].…”
Section: Introductionmentioning
confidence: 99%