Summary and Info
This book describes the specification and proof of a compiler for a realistically complicated assembly-level language. The book defines the state of the art in machine check proofs of software. Piton is a simple assembly-level programming language for a microprocessor called the FM9001 described at the machine code level. The correctness of the implementation has been proved by a mechanical theorem prover. This book is about the exact meaning of the previous paragraph. What is Piton, exactly? What is the FM9001? How is Piton implemented on the FM9001? In what sense is the implementation correct? How is its correctness expressed mathematically? How is it proved? These questions are answered here. Also discussed is the evolutionary character of software, the Piton implementation in particular, and how proof plays a continuing role in its design and improvement. Piton is a simple but non-trivial programming language. It provides execute-only programs, recursive subroutine call and return, stack based parameter passing, local variables, global variables and arrays, a user-visible stack for intermediate results, and seven abstract data types including integers, data addresses, program addresses and subroutine names.