MetaCartSign in to MyCiteSeer

Include Citations | Advanced Search | Help

Include Citations | Advanced Search | Help

  On the construction of correct compiler back-ends: An ASM approach (1997) [25 citations — 5 self]

Download:
Download as a PDF | Download as a PS
by Wolf Zimmermann, Thilo Gaul
Journal of Universal Computer Science
http://linux.eecs.umich.edu/groups/Ealgebras/backend.ps.gz
Add To MetaCart

Abstract:

Abstract: Existing works on the construction of correct compilers have at least one of the following drawbacks: (i) correct compilers do not compile into machine code of existing processors. Instead they compile into programs of an abstract machine which ignores limitations and properties of real-life processors. (ii) the code generated by correct compilers is orders of magnitudes slower than the code generated by unverified compilers. (iii) the considered source language is much less complex than real-life programming languages. This paper focuses on the construction of correct compiler backends which generate machine-code for real-life processors from realistic intermediate languages. Our main results are the following: (i) We present a proof approach based on abstract state machines for bottom-up rewriting system specifications (BURS) for back-end generators. A significant part of this proof can be parametrized with the intermediate and machine language. (ii) The performance of the code constructed by our approach is in the same order of magnitude as the code generated by non-optimizing unverified C-compilers.

Citations

259 Designing programs that check their work – Blum, Khanna - 1995
81 Compiler Construction – Waite, Goos - 1984
80 The semantics of the C programming language – Gurevich, Huggins - 1993
66 The WAM -- Definition and Compiler Correctness – Borger, Rosenzweig - 1995
66 Correctness of a compiler for arithmetic expressions – McCarthy, Painter - 1967
41 Normal form approach to compiler design – Hoare, Jifeng, et al. - 1993
34 Semantic Lego – Espinosa - 1995
31 Montages: Specifications of Realistic Programming Languages – Kutter, Pierantonio - 1997
30 Actress: an action semantics directed compiler generator – Brown, Moura, et al. - 1992
29 A Semantic Prototyping System – Wand - 1984
27 Burs automata generation – Proebsting - 1995
25 Abstract Semantic Algebras – Mosses - 1982
22 Evolving Algebras: Lipari Guide – GUREVICH - 1995
21 Provably correct compiler development and implementation – Buth, Buth, et al. - 1992
18 Code selection by regularly controlled term rewriting – Emmelmann - 1992
17 Program verification – Boyer, Moore - 1985
13 Code generation based on formal BURS theory and heuristic search – Nymeyer, Katoen - 1996
12 Modular Compiler Verification – Muller-Olm - 1996
10 Semantics-Directed Generation of Compilers and Abstract Machines – Diehl - 1996
10 An automatically generated and provably correct compiler for a subset of ada – Palsberg - 1992
8 Occam: Specification and Compiler Correctness.Part I: The Primary Model – Boerger, Durdanovic, et al. - 1994
8 A compiler generator for semantic grammars – Paulson - 1981
7 Compiler Generators – Tofte - 1990
5 Correctness of compiling occam to transputer – Borger, Durdanovic - 1996
5 Provably Correct Compiler Implementation – Buth, Muller-Olm - 1993
4 An Evolving Algebra for the Alpha Processor Family. Verifix Working Paper [Verifix/UKA/4 – Gaul, Zimmermann - 1995
3 Local correctness of term rewrite based code generators. Working paper, University of Karlsruhe/Ulm, September `96 – Dold, Gaul - 1996
3 Action Semantics. Cambridge – Mosses - 1992
3 Montages speci cations of realistic programming languages – Kutter, Pierantonio - 1997
2 The Semantics of the C++--Programming Language – Wallace - 1995
2 The WAM|de nition and compiler correctness – Borger, Rosenzweig - 1995
1 T.: On the Construction of Correct Compiler Back-Ends – Zimmermann, Gaul
1 Occam: Speci cation and Compiler Correctness.Part I: The Primary Model – Borger, Durdanovic, et al. - 1994
1 System veri cation – Moore - 1989
1 An Exercise in Compiler Veri cation – Muller-Olm - 1995