Compilation by Refinement for a Practical Assembly Language

In this paper we extend the conventional framework of program refinement down to the assembler level. We describe an extension to the Refinement Calculus that supports the refinement of programs in the Guarded Command Language to programs in .NET assembler. This is illustrated by a small example.

[1]  Cliff B. Jones,et al.  Systematic software development using VDM , 1986, Prentice Hall International Series in Computer Science.

[2]  Ralph-Johan Back Refinement of Parallel and Reactive Programs , 1992, NATO ASI PDC.

[3]  Thuan L. Thai,et al.  NET framework essentials , 2001 .

[4]  Jozef Gruska,et al.  Mathematical Foundations of Computer Science 1998 , 1998, Lecture Notes in Computer Science.

[5]  M. A. Ould Software development under Def Stan 00-55: a guide , 1990 .

[6]  Andrew D. Gordon,et al.  Typing a multi-language intermediate code , 2001, POPL '01.

[7]  Carroll Morgan,et al.  Programming from specifications (2nd ed.) , 1994 .

[8]  Peter A. Lindsay,et al.  FME 2002:Formal Methods—Getting IT Right , 2002, Lecture Notes in Computer Science.

[9]  Carroll Morgan,et al.  Types and Invariants in the Refinement Calculus , 1990, Sci. Comput. Program..

[10]  David S. Platt,et al.  Introducing Microsoft® .NET , 2001 .

[11]  Egon Börger,et al.  Defining the Java Virtual Machine as Platform for Provably Correct Java Compilation , 1998, MFCS.

[12]  Susan Stepney,et al.  High integrity compilation - a case study , 1993 .

[13]  Augusto Sampaio An Algebraic Approach to Compiler Design , 1993, AMAST Series in Computing.

[14]  Gerhard Goos,et al.  Modular Compiler Verification: A Refinement-Algebraic Approach Advocating Stepwise Abstraction , 1997 .

[15]  Ralph-Johan Back,et al.  Refinement Calculus: A Systematic Introduction , 1998 .

[16]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[17]  Luke Wildman A Formal Basis for a Program Compilation Proof Tool , 2002, FME.

[18]  Colin J. Fidge Modelling program compilation in the refinement calculus , 1997, FME 1997.

[19]  Tobias Nipkow,et al.  Verified lightweight bytecode verification , 2001, Concurr. Comput. Pract. Exp..

[20]  Egon Börger,et al.  Correctness of Compiling Occam to Transputer Code , 1996, Comput. J..

[21]  Martin Fränzle,et al.  Towards Provably Correct Code Gneration for a Hard Real-Time Programming Language , 1994, CC.

[22]  Jonathan P. Bowen Towards Verified Systems , 1994 .

[23]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[24]  Jifeng He Provably Correct Systems: Modelling of Communication Languages and Design of Optimized Compilers , 1994 .

[25]  David Walker,et al.  Stack-based typed assembly language , 2002, J. Funct. Program..

[26]  J. Michael Spivey,et al.  The Z notation - a reference manual , 1992, Prentice Hall International Series in Computer Science.

[27]  Cliff B. Jones,et al.  Systematic software development using VDM (2. ed.) , 1990, Prentice Hall International Series in Computer Science.