Formal Aspects of Computing

, Volume 6, Issue 6, pp 643–658

Specification, Verification and Prototyping of an Optimized Compiler

Authors

  • He Jifeng
    • Oxford University Computing LaboratoryProgramming Research Group
    • Oxford University Computing LaboratoryProgramming Research Group
Formal Aspects of Computing

DOI: 10.1007/BF03259390

Cite this article as:
Jifeng, H. & Bowen, J. Form Asp Comp (1994) 6: 643. doi:10.1007/BF03259390
  • 39 Views

Abstract

This paper generalizes an algebraic method for the design of a correct compiler to tackle specification and verification of an optimized compiler. The main optimization issues of concern here include the use of existing contents of registers where possible and the identification of common expressions. A register table is introduced in the compiling specification predicates to map each register to an expression whose value is held by it. We define different kinds of predicates to specify compilation of programs, expressions and Boolean tests. A set of theorems relating to these predicates, acting as a correct compiling specification, are presented and an example proof within the refinement algebra of the programming language is given. Based on these theorems, a prototype compiler in Prolog is produced.

Keywords

Program compilationCode optimizationFormal verificationRefinement algebraLogic programming
Download to read the full article text

Copyright information

© BCS 1994