Abstract
In this paper we describe an algebraic approach to construct provably correct compilers for objectoriented languages; this is illustrated for programs written in a language similar to a sequential subset of Java. It includes recursive classes, inheritance, dynamic binding, recursion, type casts and test, assignment, and classbased visibility, but a copy semantics. In our approach, we tackle the problem of compiler correctness by reducing the task of compilation to that of program refinement. Compilation is identified with the reduction of a source program to a normal form that models the execution of object code. The normal form is generated by a series of correctness-preserving transformations that are proved sound from the basic laws of the language; therefore it is correct by construction. The main advantages of our approach are the characterisation of compilation within a uniform framework, where comparisons and translations between semantics are avoided, and the modularity and extensibility of the resulting compiler.
Author supplied keywords
Cite
CITATION STYLE
Duran, A., Cavalcanti, A., & Sampaio, A. (2010). An algebraic approach to the design of compilers for object-oriented languages. Formal Aspects of Computing, 22(5), 489–535. https://doi.org/10.1007/s00165-009-0124-9
Register to see more suggestions
Mendeley helps you to discover research relevant for your work.