Abstract | ||
---|---|---|
In this paper we investigate the feasibility of a demonstrably correct compiler for Java bytecode. We first examine the suitability of adapting the existing high assurance compiler DeCCo for the Pascal-like language PASP, based on a Z formalisation of the compiler manually transcribed to Prolog. During the investigation we have uncovered several problematic issues and argue that these can be avoided by formally deriving the code of the compiler from the formal specification, rather than manually transcribing it. We have conducted a case study, developing a compiler for a subset of Java bytecode to an idealised RISC processor using the B-method. We show that refinement is a natural way to model compilation and that the B-method can in principle be used to develop a demonstrably correct compiler. In particular, the tool support for B turned out to be extremely valuable: animation, automated refinement checking, and proof each uncovered a series of mistakes. |
Year | DOI | Venue |
---|---|---|
2008 | 10.1007/978-3-642-04167-9_7 | FMCO |
Keywords | Field | DocType |
idealised risc processor,existing high assurance compiler,towards demonstrably correct compilation,formal specification,demonstrably correct compiler,java bytecode,case study,z formalisation,pascal-like language,automated refinement checking,java byte code,model compilation,b method | Functional compiler,Dynamic compilation,Programming language,Computer science,Compiler correctness,Real-time computing,Compiler,Bootstrapping (compilers),Java bytecode,Compiler construction,Java Modeling Language | Conference |
Volume | ISSN | Citations |
5751 | 0302-9743 | 1 |
PageRank | References | Authors |
0.36 | 23 | 1 |
Name | Order | Citations | PageRank |
---|---|---|---|
Michael Leuschel | 1 | 2156 | 135.89 |