Posted on

Piton: A Mechanically Verified Assembly-Level Language by J Strother Moore

By J Strother Moore

This e-book describes the specification and facts of a compiler for a realistically complex assembly-level language. The e-book defines the cutting-edge in desktop cost proofs of software program. Piton is a straightforward assembly-level programming language for a microprocessor referred to as the FM9001 defined on the laptop code point. The correctness of the implementation has been proved by way of a mechanical theorem prover. This e-book is ready the precise that means of the former paragraph. What is Piton, precisely? what's the FM9001? How is Piton carried out at the FM9001? In what experience is the implementation right? How is its correctness expressed mathematically? How is it proved? those questions are spoke back right here. additionally mentioned is the evolutionary personality of software program, the Piton implementation particularly, and the way evidence performs a continual function in its layout and development. Piton is an easy yet non-trivial programming language. It offers execute-only courses, recursive subroutine name and go back, stack dependent parameter passing, neighborhood variables, international variables and arrays, a user-visible stack for intermediate effects, and 7 summary information varieties together with integers, information addresses, application addresses and subroutine names.

Show description

Read or Download Piton: A Mechanically Verified Assembly-Level Language (Automated Reasoning Series) PDF

Similar physics books

Additional info for Piton: A Mechanically Verified Assembly-Level Language (Automated Reasoning Series)

Example text

We address them in roughly the order in which they arise in the execution of the code for b i g - a d d . In order for the c a l l statement to execute without error, we must know that there is enough room on the control stack to build the new frame. Inspection of the definition of 'p-ctrl-stk-size' (page 191) shows that the frame we will build has size five (three for the local variables of b i g - a d d plus two more). Thus, we must assume p-max-ctrl-stk-size (p^) > (5 + p-ctrl-stk-size (p-ctrl-stk(pQ))).

Instead, pointers to the arrays are passed. 4. " This necessarily involves the notions of Piton states, the Piton interpreter, resource errors, etc. Before we embark on this formalization we simply illustrate the behavior of b i g - a d d — a n d in so doing familiarize the reader with the structure of Piton states. To execute b i g - a d d we will call it from the m a i n program shown below. The program assumes that the data segment of our initial p-state contains at least four data areas: arrays b n a and b n b ("Big Number a " and "Big Number b " ) , each of which is of length n, a global variable n, whose value is n, and another global variable c.

0 ) . 3. Let Notation The notation let Vj be tj, V \xt in n n body endlet is an abbreviation for the term obtained by replacing in body the v^- by the corresponding t^. Thus, letxbejxA, y be strip-cars (a) in cons {x, cons (x, y)) endlet is an abbreviation for cons (/ x k, cons (/ X k, strip-cars (a))). 4. Recursive Definitions The Nqthm logic permits the addition of new axioms defining functions. Certain restrictions, not discussed here, are imposed to insure that inconsistencies are not introduced into the logic.

Download PDF sample

Rated 4.07 of 5 – based on 5 votes