| J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992. |
....on the machine code level, fit into such schemes. e.g. expressions are usually refined into postfix form and then interpreted on a stack machine. The efficiency of the generated code is by magnitudes worse than that of other compilers and thus does not meet practical requirements, cf. [16, 38]. Except [33] even projects which really generated machine language, e.g. 5, 7, 36, 37] and ProCos, 28] chose the transputer, i.e. a stack machine, as their target. 33] discusses compilation of a stack based intermediate language Piton into an assembly language of the register based ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992.
....methodology for specifying language semantics that would scale up to realistic programming languages and avoid many of the problems of denotational semantics. In fact, there are action semantics speci cations for Pascal [MW93] and the Standard ML bare language [Wat88] Palsberg [Pal92b,Pal92a,Pal92c] has proved the correctness of a compiler generator which he designed and implemented that accepts action semantics descriptions of imperative languages and generates code for an abstract RISC machine. As Mosses states in [Mos96] this may be a rst step in developing tools which allow ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proc. Fourth IEEE Int. Conf on Computer Languages, pages 117-126. IEEE, 1992.
....to perform type inference on specific programs, to justify meaning preserving code transformations, and to stage an ASD of a programming language into a static semantics stage and a dynamic semantics stage. 6. 2 Provably Correct Compiler Generation As reported in his PhD thesis [58] and papers [57, 59] at ESOP and ICCL in 1992, Palsberg has designed, implemented, and proved the correctness of a compiler generator that accepts action semantic descriptions of imperative programming languages. He has used it to generate compilers for both a toy language and a non trivial subset of Ada. The ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In ICCL'92, Proc. Fourth IEEE Int. Conf. on Computer Languages, Oakland, pages 117--126. IEEE, 1992.
....abstract syntax tree and then interpret this tree to nally generate the action s outcome. Other examples of similar compiler generators are the Abaco system [10] extensions of Actress by Doh and Schmidt [12] to support techniques for typing and binding time analysis, and the Cantor system [41,42] which was used to generate a compiler of a subset of Ada from its action semantic description. The main emphasis in the last case was on the generation of provably correct compilers. While such compiler generators based on semantic descriptions are useful once the complete semantic speci cation ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proc. 4th IEEE International Conference on Computer Languages (ICCL'92), pages 117-126. IEEE, 1992.
....procedure. However, object code is executed and therefore the system software which produces the code, i.e. the compiler) must be correct. Techniques exist for the verification of compilers, but up until now they have only been applied to small source languages or idealistic machines, e.g. [9, 11, 12, 3, 5, 6, 14, 15, 1, 2, 4, 16]. For realistic programming languages and industrial development, compiler verification must be treated as a software engineering task. As in other applications compilers cannot be verified a posteriori ; verification must be dealt with throughout the whole construction process. Verification ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992.
....6 940 6 140 Table 5.2: Interpretation times (ms) Syntax Directed TypeProgram Imprv Imprv Directed bubble.hpl 297.0 307.4 298.1 bubble.ad 414.1 429.8 415.3 sieve.ad 103.3 107.0 103.1 euclid.ad 23.7 24.8 23.7 Table 5. 3: Space usage during interpretation (Mbytes) compiler generator Cantor [18, 19]. The actions are bubble.hpl, a bubble sort program written in HypoPL; bubble.ad, the same bubble sort program written in Mini Ada, a subset of Ada; sieve.ad, Eratosthenes sieve, which finds prime numbers, written in Mini Ada; and euclid.ad, Euclid s method, also written in Mini Ada. The sizes of ....
Jens Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In ICCL'92, Proc. Fourth IEEE Int. Conf. on Computer Languages, Oakland, pages 117--126. IEEE, 1992.
....by abstract state machines (Section 2) In this paper, the mapping of composite datatypes such as records, arrays etc. is considered as a front end task. The first work on correct compilers is [17] Most of the following work on correct compilation is based on denotational semantics (e.g.[4, 18, 19, 25, 26, 30]) or on refinement calculi (e.g. 5, 6, 16, 20, 21] Other work on compiler correctness based on refinement use abstract state machine (e.g. 1 3] Most of these works do not compile high level programming languages into assembler languages. To our knowledge, only [2, 3, 20, 21] and ProCos [16] ....
....assembler languages. To our knowledge, only [2, 3, 20, 21] and ProCos [16] discus transformations into machine code. The performance of code generated by semantics driven code generation is poor and by one or more orders of magnitude slower than the code generated by compilers used in practice [25]. 2, 3, 20, 21] consider the compilation into transputer code. We compare our measerument results with those from [7] To our knowledge the only work on correct compilers which provides performance measurements. This article is organized as follows: First we give the basic definitions of ....
[Article contains additional citation context not shown here]
J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992.
....procedures (with value and reference parameters) multidimensional arrays, simple input output and the usual control constructs. The language specification contains approximately 5400 well commented lines. 3.3. 3 CANTOR A Verified Compiler Generator Palsberg s compiler generator Cantor[57, 58, 59] is a verified compiler generator that has been used to generate compilers for a realistic imperative programming language (a subset of Ada) for real target machines (SPARC and HP Precision) However, during the development of Cantor the principle that correctness is more important than efficiency ....
Jens Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proceedings of the fourth IEEE International Conference on Compiter Languages, San Francisco, CA, 20--23 April 1992.
....fail to produce efficient machine code for real life processors. The first work on correct compilers is [McCarthy and Painter 1967] Most of the following work on correct compilation is based on denotational semantics (e.g. Paulson 1981, Mosses 1982, Wand 1984, Brown et al. 1992, Mosses 1992, Palsberg 1992] structural operational semantics (e.g. Diehl 1996] or on refinement e.g. Buth et al. 1992] Buth and Muller Olm 1993] Hoare et al. 1993] Muller Olm 1995] Muller Olm 1996] Borger and Rosenzweig 1992] Borger et al. 1994] Borger and Durdanovic 1996] Most of these works do not ....
....translate into programs of machine independent high level abstract machines. These programs are interpreted. Consequently, the performance of the code generated by these compilers is poor and by three to four orders of magnitude slower than the code generated by compilers used in practice [Palsberg 1992]. From traditional compiler construction it is well known that the introduction of intermediate languages is necessary for compiling programs of high level languages into efficient machine code. Hence, our approach uses the concept of intermediate languages for the construction of the correct ....
[Article contains additional citation context not shown here]
J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992.
....49 Importantly, Palsberg has proved the correctness of the action compiler used in the CANTOR system. Moreover, the compilation of actions and the RISC target language have been specified algebraically, and the correctness is proved solely within the algebraic framework. Experiments with CANTOR[Pal92a] have shown that a generated compiler is about 300 times slower than a hand written one, and that the object code is about 100 times slower than that produced by a hand written compiler. Palsberg attributes these poor timings to a number of factors. Namely: Figure 3.9: The structure of CANTOR ....
....with other systems that perform sort analysis of action notation. The ACTRESS subset of action notation is substantially larger than that used by Even and Schmidt[ES90] and includes important features such as non deterministic choice ( or ) iteration ( unfolding ) and abstractions. Palsberg[Pal92a,Pal92b] and rb k[ rb93, rb94] use essentially the same subset of action notation as each other. Their subsets, however, avoid the problems of abstraction sorts by restricting the syntax for abstractions to only allow closure abstraction[D] A and enact (A with Y) 1 , where D represents the sort of ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proceedings of ICCL '92, Fourth IEEE International Conference on Computer Languages, San Francisco, California, April 1992.
....with expressions (MIS) and the translation to the DEC Alpha processor family. The operational semantics is formalized by abstract state machines (Section 2) The first work on correct compilers is [16] Most of the following work on correct compilation is based on denotational semantics (e.g.[4, 17, 18, 22, 23, 26]) or on refinement calculi (e.g. 5, 6, 15, 19] Other approaches on compiler correctness use abstract state machine (e.g. 2, 3, 1] Most of these works do not compile high level programming languages into assembler languages. To our knowledge, only [3, 1, 19] and ProCos [15] discus ....
J. Palsberg. An automatically generated and provably correct compiler for a subset of ada. In IEEE International Conference on Computer Languages, 1992.
....by induction in the number of occurrences of modus ponens in the proof in the initial model. This paper gives an overview of the author s forthcoming PhD thesis [44] Most definitions and proofs are omitted. For an overview of our experiments with generating a compiler for a subset of Ada, see [43]. In the following section we examine the major previous approaches to compiler generation and compiler correctness proofs. In section 3 we outline the structure of the Cantor system, including the abstract RISC machine language and the action compiler, and we give some performance measures. In ....
....Lee s bubblesort program (50 lines) ffl Compile time: 486 seconds; ffl Object code size: 114688 bytes; and ffl Object code execution time (for sorting 10 integers) 0.1 seconds. These figures indicate that the system is rather tedious to work with in practice. Additional experiments, see [43], have shown that the code runs at least two orders of magnitude slower than a corresponding target program produced by the C compiler (without optimization) This is somewhat disappointing but still an improvement compared to the classical systems of Mosses, Paulson, and Wand where a slow down ....
Jens Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proc. ICCL'92, Fourth IEEE International Conference on Computer Languages, pages 117--126, Oakland, California, April 1992.
....developed by Mosses [16, 17, 18] and Watt [19, 26] It differs from denotational semantics in using semantic entities called actions, rather than higher order functions. Compiler generation based on action semantics has been studied by Brown, Moura, and Watt [6] and also by the second author [22, 20, 21]. Journal of Functional Programming, 6(2) 269 298, 1996. Also in Proc. FPCA 93, pages 308 317. The core of each of their two action semantics directed compiler generators is a handwritten action compiler, producing either C or machine code. These compilers are rather complicated and, due to ....
....bindings, and the current state of the store. Evaluation cannot affect the current information. Data is a special case of dependent data, and it always yields itself when evaluated. The language of actions is called action notation. We use a subset of action notation which was also studied in [22, 20] and defined in [21] This subset covers roughly half of the full action notation and is sufficiently general to allow the easy description of Lee s HypoPL [22] and a non trivial subset of Ada [20] For an example of an action semantic description using this subset, see Appendix C. Scaling up our ....
[Article contains additional citation context not shown here]
Jens Palsberg. An automatically generated and provably correct compiler for a subset of Ada. In Proc. ICCL'92, Fourth IEEE International Conference on Computer Languages, pages 117--126, Oakland, California, April 1992.
No context found.
J.Palsberg,\An automaticallygeneratedand provablycorrectcompilerfora subsetofAda," inICCL'92,Proc.FourthIEEE Int.Conf. on ComputerLanguages,Oakland,pp.117-126,IEEE,1992.
No context found.
J.Palsberg,An Automaticallygenerated andprovablycorrectcompiler fora subsetofAD A.InProc.ICCL'92,FourthInternationalConference onComputerLanguages,1992.
No context found.
J. Palsberg, "An automatically generated and provably correct compiler for a subset of Ada," in ICCL'92, Proc. Fourth IEEE Int. Conf. on Computer Languages, Oakland, pp. 117-126, IEEE, 1992. [DART-102].
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