| W. Polak. Compiler Specification and Verification, volume 124 of LNCS. Springer-Verlag, New York, NY, USA, 1981. |
....(AST) 30 KB Table 2. Lines of program code to verify for a program checked IS front end 7 Related Work Correctness of compilers was first considered in [32] but focused on the compilation of arithmetic expressions. Thereafter most people explored the potential of denotational semantics, e.g. [13, 34, 35, 39, 40, 43, 49], or of refinement calculi, e.g. 5, 7, 9, 14, 15, 28, 33, 37] structural operational semantics, e.g. 16] and algebraic models, e.g. 44] Other approaches use abstract state machines, e.g. 6, 7, 9] Most of these projects did not compile into machine language. Instead, they designed ....
W. Polak. Compiler Specification and Verification, volume 124 of LNCS. SpringerVerlag, Berlin, Heidelberg, New York, 1981.
....it checks a stronger condition because the application condition may be state dependent) 9 Related Work Correctness of compilers was first considered in [37] but focused on the compilation of arithmetic expressions. Thereafter most people explored the potential of denotational semantics, e.g. [16, 41, 42, 45, 46, 49, 57], or of refinement calculi, e.g. 6, 4, 9, 17, 18, 34, 39, 44] structural operational semantics, e.g. 19] and algebraic models, e.g. 51] Other approaches use abstract state machines, e.g. 7, 4, 9] Most of these projects did not compile into machine language. Instead, they designed ....
W. Polak. Compiler specification and verification. In Lecture Notes in Computer Science, number 124 in LNCS. Springer-Verlag, 1981.
....of a compiler for expression evaluation. They prove, by hand, the correctness of an expression compiler for an idealized machine using recursion induction. Mechanical proofs of slightly varied versions of the McCarthy Painter expression compiler were later obtained by many researchers [7] Polak [45] seems the most ambitious compiler verification effort. Polak mechanically verified a compiler for a fairly substantial subset of Pascal. But his target machine is rather high level and therefore unrealistic. In addition, it seemed he assumed a large collection of unproven lemmas which, in our ....
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....skills and does not scale to large programs. The human factor also enters into the equation: crafting a correct specification (especially one using an obscure formal system) is often much more difficult than writing the program being proved (even one written in an obscure programming language) [20]. To date, success in program verification has come in restricted domains where either the state space of the problem is constrained or only a portion of the program is actually verified. General theorem provers, model checkers, state machine analyzers, and tools customized to particular ....
W. Polak, "Compiler Specification and Verification", v. 124, Lecture Notes in Compter Science. Springer-Verlag, 1981.
....of a compiler for expression evaluation. They prove, by hand, the correctness of an expression compiler for an idealized machine using recursion induction. Mechanical proofs of slightly varied versions of the McCarthy Painter expression compiler were later obtained by many researchers [7] Polak [45] seems the most ambitious compiler verification effort. Polak mechanically verified a compiler for a fairly substantial subset of Pascal. But his target machine is rather high level and therefore unrealistic. In addition, it seemed he assumed a large collection of unproven lemmas which, in our ....
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....by his own assembler for a von Neumann style machine of his own design. In contrast to our approach to machine code proof, compiler verification attempts to establish the correctness of the compiler, so that we are ensured that the compiler always generates correct binary code. Polak s work [25] seems the most ambitious compiler verification effort. Polak mechanically verified a compiler for a fairly substantial subset of Pascal. Moore s Piton and Young s Micro Gypsy [2] two components of the CLI short stack, are major compiler verification efforts targeted on a more realistic von ....
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
.... of direct relevance to ours are reported in [13, 21, 2] Several compiler proofs have used axiomatic semantics [8, 16] and much work has been directed toward specifying and proving compilers using denotational semantics [20, 9] The most notable previous mechanical compiler proof is by Polak [23]. Polak uses denotational semantics to describe both the source and target languages. His work is less rigorous than ours; his proof has as a basis a large collection of unproved assumptions within the formal theory. Polak s work also does not have the larger context of the verified stack. See ....
W. Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....Conclusion 48 i ii Generic Compilation Schemes for Simple Programming Constructs 1 Introduction Verification of compiler correctness is a much studied area. Many different approaches have been taken, usually with mechanized support to manage the complexity of specifications and proofs (e.g. [2 4,6,8 12,18 21,23]) Most of these studies address the verification of a specific compiler for a particular language; furthermore, specifications and proofs tend to be monolithic and lacking modular structure. As a consequence, it is difficult, if not impossible, to reuse parts of those specifications and proofs in ....
W. Polak. Compiler Specification and Verification. In J. Hartmanis G. Goos, editor, Lecture Notes in Computer Science, number 124 in LNCS. Springer-Verlag, 1981.
....hand, the correctness of an expression compiler for an idealized machine using recursion induction. Mechanical proofs of slightly varied versions of the McCarthy Painter expression compiler were later obtained by many researchers [7] Polak s seems the most ambitious compiler verification effort [44]. Polak mechanically verified a compiler for a fairly substantial subset of Pascal. But his target machine was rather high level and therefore unrealistic. In addition, it seemed he assumed a large collection of unproven lemmas which, in our opinion, should not be taken for granted. Moore s Piton ....
Wolfgang Polak. Compiler Specification and Verification. SpringerVerlag, Berlin, 1981.
....informatics. Operational semantics employs simulation techniques of automata theory due to R. Milner [Mil89] or G. Plotkin [Plo81] Denotational semantics uses cpo theory due to D. S. Scott [Sco82] Translation verification has been done also with the help of mechanical provers. W. Polak [Pol81] did so for translating a Pascal like language into code of an idealised stack machine with unrestricted arithmetic and memory, W. D. Young [You88] for Micro Gypsy (Pascallike as well) into Piton (an assembly like language) and J S. Moore for Piton into the binary machine code of the real ....
W. Polak. Compiler specification and verification. Number 124 in LNCS. 1981.
....real hardware must not deceive the user with respect to correctness of results. Since we do not want to rule out concrete finite target hardware processors, we have to admit that target program execution always may end in a resource violation, that it fails with e.g. memory or arithmetic overflow [29]. Whenever a target program execution gives a regular result (does not abort) however, this result is guaranteed to be correct. Thus, partial source program correctness is preserved, whereas total correctness is not in general. On the other hand, a compiler, that preserves partial program ....
W. Polak. Compiler specification and verification. In J. Hartmanis G. Goos, editor, Lecture Notes in Computer Science, number 124 in LNCS. Springer-Verlag, 1981.
....verification for sequential imperative languages, guided by the intuition, that program execution on real hardware must not deceive the user with respect to correctness of results. Preservation of partial correctness allows the target machine program to fail with e.g. memory or arithmetic overflow [23]. Whenever a target program execution gives a regular result (does not abort) however, the results are guaranteed to be correct. Let us consider imperative programs resp. 0 of a source language SL or target language TL, respectively. Let M( and N ( 0 ) denote the semantics of and ....
W. Polak. Compiler specification and verification. In J. Hartmanis G. Goos, editor, Lecture Notes in Computer Science, number 124 in LNCS. Springer-Verlag, 1981.
....compiler generators limits the confidence we can have in a generated compiler. Let us therefore examine the major previous approaches to compiler correctness proofs. 2. 2 Compiler Correctness Proofs The traditional approach to proving compiler correctness is based on denotational semantics [24, 26, 58, 51, 39] or algebraic variations hereof [7, 28, 59, 3, 30] The correctness statement can be pictured as a commuting diagram, see figure 2. It has been demonstrated that complete proofs of compiler correctness can be automatically checked. Two significant instances are Young s [65] work, using the ....
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag (LNCS 213), 1981.
....prove them correct, however, and in the case of the Mess system, such a proof must be given afresh for each new language because new actions often have to be introduced and defined. Work on compiler correctness does not seem to be of much help because it usually focuses on denotational semantics [13, 15, 41, 36, 27], algebraic variations hereof [3, 16, 42, 2, 18] structural operational semantics [6] or natural semantics [4] We are aware of only one compiler generator that has been proved correct: the one obtained by self application of the partial evaluator mix, see the paper by Gomard and Jones [7] ....
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag (LNCS 213), 1981.
....gives a machine checked proof of an improved version of that algorithm. Baker [2] gives an algorithm that allows the garbage collector to run in real time. He also gives an informal proof of the correctness of the algorithm. There have been three previous large compiler verification efforts. Polak [26] verified a compiler for a substantial subset of Pascal. The semantics of his source language and target language were specified using denotational semantics. Polak verified the lexical analyzer, parser, type checker, and code generator. The target machine of his compiler is a stack machine. ....
W. Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....Stanford Verifier [35] is a variant of PASCAL. The 3 theorem prover used is a rewrite rule based simplifier built on a decision procedure by Oppen and Nelson [44] The most significant verification task accomplished with that system to date is the verification of a compiler for PASCAL, by Polak [47]. The total amount of executable code verified in that application is around 3000 lines. The Gypsy Verification Environment (GVE) supports the programming language Gypsy, which is a derivative of Pascal providing a somewhat cleaner semantics and concurrency [29] The theorem prover used in GVE was ....
W. Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....for sequential imperative languages, guided by the intuition, that program execution on real hardware must not deceive the user with respect to correctness of results. Preservation of partial correctness allows the target machine program to fail with e.g. memory or arithmetic overflow [22]. Whenever a target program execution gives a regular result (does not abort) however, the results are guaranteed to be correct. Let us consider imperative programs resp. 0 of a source language SL or target language TL, respectively. Let M( and N ( 0 ) denote the semantics of and ....
W. Polak. Compiler specification and verification. In J. Hartmanis G. Goos, editor, Lecture Notes in Computer Science, number 124 in LNCS. Springer-Verlag, 1981.
.... verification work addresses code proofs, where traditionally the line has been drawn at the definition of a high level programming language like Gypsy [6, 7, 8] Pascal [19] Fortran [2] and others [20, 5, 13, 17, 4] There has been some work on compiler verification, notably the work of Polak [15] in which a compiler for a Pascal subset is verified. Finally, there has been some recent work closer to the bottom of the system stack. For example, Gordon [9] and Hunt [10] draw the line essentially at the register transfer level and offer mechanically certified designs for digital hardware. But ....
W. Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
....and ffl the description of the dynamic behaviour of a machine is shorter because only those components of the state of the machine must be specified which change. There has been work in the area of the block concept and its correctness. But most of it is concerned with the display technique ([9, 10, 11]) which is much easier to be proved correct 1 . A proof of the static link technique with respect to an operational semantics can be found in [7] where the Twin Machine technique is used. The idea is to construct a machine with two independent mechanisms for storage access, representing the ....
W. Polak. Compiler Specification and Verification. LNCS 124. Springer--Verlag, 1981.
No context found.
W. Polak. Compiler Specification and Verification, volume 124 of LNCS. Springer-Verlag, New York, NY, USA, 1981.
No context found.
Wolfgang Polak. Compiler Specification and Verification. Springer-Verlag, Berlin, 1981.
No context found.
Polak, W.: Compiler Specification and Verification, LNCS 124, Springer Verlag, 1981.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC