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.
Read or Download Piton: A Mechanically Verified Assembly-Level Language (Automated Reasoning Series) PDF
Similar physics books
- Physics Up to 200 TeV
- Clin Sports Med April Working as a Team Physician
- A Practical Guide to Data Analysis for Physical Science Students
- MatLAB 6 0 Using
- Essential Mathematical Methods for Physicists (5th Edition)
- Infrared Holography for Optical Communications: Techniques, Materials and Devices (Topics in Applied Physics)
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.