28 citations found. Retrieving documents...
Will Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356-364, New York, August 1984. The Association for Computing Machinery, Inc.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents

The Formal Relationship Between Direct and Continuation-Passing.. - Sabry (1994)   (9 citations)  (Correct)

....V i . The object hcl x 1 : x n ; M;Ei is a closure, a record that contains the code for M and values for the free variables of (x 1 : x n :M ) The partial function ffi abstracts the semantics of the primitive operations. The CEK machine provides a model for designing direct compilers [11, 31, 59]. A compiler based on the CEK machine implements an efficient representation for environments, e.g. displays, and for continuations, e.g. a stack. The machine code produced by such a compiler realizes the abstract operations specified by the CEK machine by manipulating these concrete ....

Clinger, W. The Scheme 311 compiler: An exercise in denotational semantics. (1984) 356--364.


Algebra for Digital Design Derivation - August This Is   (Correct)

....Research The foundations of this work lie in the areas of denotational semantics, functional programming, and comparative schemata. An early topic was to extend Wand s approach to language synthesis, which involves extraction of virtual machine descriptions from denotational language definitions [40, 8]. Our aim was to further transform these machines into specialized hardware for language execution. The powerful methods of denotational semantics are not restricted to the implementation of programming languages. Functional programming applies the same methods to ordinary programming problems ....

Clinger, William D.. The Scheme 311 Compiler: An Exercise in Denotational Semantics. Conf. Record of the


How Daisy is Lazy: Suspending Construction at Target Levels - Johnson   (Correct)

....a sequential task entity. Section 4 defines key instructions of its command oriented assembly language. The treatment mimics Wand s method of compiler construction, where operations are identified as combinators [Wand82] It also mimics Clinger s use of functions on state to model instructions [Clinger84]. However, these are metasyntactic comparisons because a compiler is neither defined nor proven. This work represents a step toward characterizing a concurrent target machine by precisely stating the interface between local and global control. This is a prerequisite to a compiler definition. The ....

William D. Clinger. The Scheme 311 compiler: an exercise in denotational semantics. Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, Austin, 1984, 356--364.


The VLISP Verified Scheme System - Guttman, Swarup, Ramsdell (1995)   (3 citations)  (Correct)

....consists of a sequence of procedures which rewrite the original source program in a succession of intermediate languages. Of these, we will discuss two in this paper: ffl The byte code compiler [5] rewrites the Scheme source code into a treestructured byte code based on Clinger s target language [1]. We will refer to this tree structured byte code as the basic byte code or bbc. The bbc makes the flow of control in the Scheme program explicit, including procedure call and return, the order of argument evaluation, and the operations involved in building environment structures for local ....

....6 1.2.2. The Byte Code Compiler Section 2 describes the byte code compiler, the first of the compiler stages mentioned in Section 1.1.1. It presents a proof that the byte code compiler preserves the semantics of the Scheme source code. The proof itself is adapted from Clinger s compiler proof [1], which in turn elaborates an approach derived from Wand [17] In this approach, the source and target languages are both given denotational definitions using the same domains; thus, one can stipulate that the compiler is correct if the denotation of its output code is the same as the denotation ....

[Article contains additional citation context not shown here]

William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, New York, August 1984. The Association for Computing Machinery, Inc.


Igor Siveroni Advisor: Prof. Mitchell Wand March 19, 1997 - Nd Mar Ch   (Correct)

....the semantics of programming languages[6, 10] Traditional languages like FORTRAN or C do not have a formal semantics, instead they are implemented following an informal description of the language. Alternatively, the functional nature of functional, higher order languages such as ML[8] and Scheme[4] characterized by their power and expresiveness allows the development of formal semantics and techniques that help us to reason about programs written in those languages. One of the major concerns when implementing a programming language is that the implementation of the language should be ....

....languages. Selected chapters of this book will be complemented by papers about the typed and polymorphic versions of the calculus[9] Together with general theoretical concepts I will review implementation issues, covered by the classic dragon book[1] and its similars on functional languages[2, 4, 7]. The rest of the material is current research and will be covered by readings of theses and publications. I would like to schedule my Comprehensive exam in the Winter of 1998. I expect to finish my thesis by Fall 1998. ....

William Clinger. The scheme 311 compiler: An exercise in denotational semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, August 1984.


The Tail-Recursive SECD Machine - Ramsdell (1999)   (1 citation)  (Correct)

....a TR SECD machine. The TR SECD machine within implements a callee saves convention, which means that the callee must ensure that a return to the caller results in the restoration of the SEC part of the TR SECD machine. This version of a TR SECD machine is motivated by the Scheme 311 byte code [3]. Many e#orts aimed at formally deriving e#cient implementations of programming languages produce implementations that are not tail recursive. Some start with the SECD machine [8] and some start with the Categorical Abstract Machine [10] The motivation for this work was to show that using ....

William D. Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, New York, August 1984. The Association for Computing Machinery, Inc.


The Essence of Compiling with Continuations - Flanagan, Sabry, Duba, Felleisen (1993)   (143 citations)  (Correct)

....with Continuations A number of prominent compilers for applicative higherorder programming languages use the language of continuation passing style (CPS) terms as their intermediate representation for programs [2, 14, 18, 19] This strategy apparently offers two major advantages. First, Plotkin [16] showed that the value calculus based on Supported in part by NSF grants CCR 89 17022 and CCR 91 22518 and Texas ATP grant 91 003604014. To appear in: 1993 Conference on Programming Language Design and Implementation. June 21 25, 1993 Albuquerque, New Mexico the fi value rule is an ....

....style (CPS) terms as their intermediate representation for programs [2, 14, 18, 19] This strategy apparently offers two major advantages. First, Plotkin [16] showed that the value calculus based on Supported in part by NSF grants CCR 89 17022 and CCR 91 22518 and Texas ATP grant 91 003604014. To appear in: 1993 Conference on Programming Language Design and Implementation. June 21 25, 1993 Albuquerque, New Mexico the fi value rule is an operational semantics for the source language, that the conventional full calculus is a semantics for the intermediate language, and, most ....

[Article contains additional citation context not shown here]

Clinger, W. The Scheme 311 compiler: An exercise in denotational semantics. In Proceedings of the 1984 ACM Conference on Lisp and Functional Programming (1984), pp. 356--364.


The Formal Relationship between Direct and Continuation-Passing.. - Sabry (1994)   (9 citations)  (Correct)

....V i . The object hcl x 1 : x n ; M;Ei is a closure, a record that contains the code for M and values for the free variables of (x 1 : x n :M ) The partial function ffi abstracts the semantics of the primitive operations. The CEK machine provides a model for designing direct compilers [11, 31, 59]. A compiler based on the CEK machine implements an efficient representation for environments, e.g. displays, and for continuations, e.g. a stack. The machine code produced by such a compiler realizes the abstract operations specified by the CEK machine by manipulating these concrete ....

Clinger, W. The Scheme 311 compiler: An exercise in denotational semantics. In Proceedings of the ACM Conference on Lisp and Functional Programming (1984) 356--364.


Mechanical Verification of Compiler Correctness - Stringer-Calvert (1998)   (Correct)

....and data structures, not the implementation. The proofs are structured following the structure of the Scheme48 compiler and uses four major techniques: 1. semantics preserving source to source transformations; 2. structural inductions using the denotational semantics, following Wand and Clinger[91, 92]; 3. verification of representations and refinements using operational semantics and the storage layout relations[93] and 4. soundness proofs of the gap between the denotational and operational semantics. The specifications and proofs total about 600 pages of technical reports. The ....

William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In Proceedings of the 1984 ACM Symposium on LISP and Functional Programming, pages 356--364, New York, 1984.


VLISP: A Verified Implementation of Scheme - Guttman, Ramsdell (1995)   (17 citations)  (Correct)

....elaborate division was crucial to arriving at a tractable verification task. However, the proof used only a small collection of basic techniques: 1. Semantics preserving source to source transformations. 2. Structural inductions using the denotational semantics, in the fashion of Wand and Clinger [31, 3]. 3. Verification of representations and refinements using operational semantics and the method of storage layout relations [32] 4. The gap between denotational and operational semantics is bridged by soundness or faithfulness proofs; for the PreScheme compiler an adequacy result was achieved as ....

....to undertake an effort on this scale without there already being a fairly well polished formal semantics for the language to be implemented. The official Scheme semantics [15, Appendix A] has been stable for several years, and it has already served as the basis for substantial work, for instance [3]. To face the modeling issues of how to formalize the semantics at the same time that one is trying to develop verification proof techniques would be very difficult indeed. We also chose to base our implementation on the well thought out design that Kelsey and Rees used in Scheme48 [17] Scheme48 ....

[Article contains additional citation context not shown here]

William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, New York, August 1984. The Association for Computing Machinery, Inc.


Incremental Lambda Lifting: An Exercise in.. - Sullivan, Wand (1997)   (Correct)

.... Gamma M = ext N : Gamma M =8C N : 6 Translation from Scheme cell to the Metalanguage Figure 4 defines the semantics of Scheme cell terms via a syntax directed CPS translation, Gamma] cell , into the metalanguage. The translation is a standard CPS translation, as in [Plo75, Cli84, App92] and closely follows the official denotational semantics of Scheme [CR91] The type Val of expressed values is a recursive sum: Val = N F expressed values N = int integers F = Val (Val pr ) pr procedures [ n] cell = Val pr : in N n [ x] cell = Val pr: x [ lambda (x 1 : ....

William Clinger. The scheme 311 compiler: An exercise in denotational semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, August 1984.


Compiling with Proofs - Necula (1997)   (23 citations)  (Correct)

....with traditional techniques. More advanced systems for semantics directed compiler generation used a two stage language definitions, separating the static semantics used to generate a compiler to intermediate language from the dynamic semantics used to implement the intermediate language [8, 23, 36]. The compilers produced generated code that compared favorably to production compilers in both size and efficiency [23] A more formal approach to compiler correctness was taken by researchers at Computational Logic, Inc who used the Boyer Moore theorem prover to verify that an assembler linker ....

Clinger, W. The Scheme 311 compiler: An exercise in denotational semantics. In Proceedings of the ACM Symposium on Lisp and Functional Programming (1984), pp. 356-- 364.


The VLISP Verified PreScheme Compiler - Oliva, al. (1995)   (6 citations)  (Correct)

....compiler oriented semantics. For each valuation in the semantics, we present a formal specification showing the relation that must hold between the compiler oriented valuation and the corresponding valuation in the original semantics. These specifications are based on the induction hypotheses of [5]. The proof that the compiler oriented semantics is the same as the original then becomes a straightforward structural induction. We present some sample cases in Section 4.7. 1.5. The Combinator Code Machine and the Compiler The combinator machine manipulates tuples of rational trees built from ....

....static scoping establishes jdom(u)j N . A completely formal proof would have to consider the details of the syntax of Pure PreScheme and the compiler. 46 OLIVA, RAMSDELL, AND WAND 5.3. Design Choices in the Compiler The translation from Pure PreScheme to combinator code was patterned after [5]. In this section, we discuss some of the innovations and design choices that we made in the process of developing our translator. An important change from [5] is the explicit separation of the syntax and semantics of the combinator code. This separation was already present in [27] but was ....

[Article contains additional citation context not shown here]

William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, New York, August 1984. The Association for Computing Machinery, Inc.


Compiler Correctness for Parallel Languages - Wand (1994)   (11 citations)  (Correct)

....that it is branching bisimilar to the denotational semantics of the target language. Together, these results show that for any program, the operational semantics of the target code is branching bisimilar to the semantics of the source code. 1 Introduction In a series of papers in the early 80 s [35, 34, 36, 12] we proposed a paradigm for semantics based compiler correctness, and over the last several years we have begun putting this paradigm into practice [38, 29] In this paradigm, the semantics of the source language is given as a compositional translation from the source language to some version of ....

....expressions. CP will take a program and return a system state, and CE will take an expression, a symbol table and a static continuation (the code sequence to be executed between this expression and the next procedure return) and will return a code sequence. This organization is patterned after [12]. slookup looks up an identifier in the static environment (symbol table) 4.3 Correctness of the Compiler As indicated above, we want to show that the compiler preserves denotational semantics up to bisimulation, that is, for whole programs p, we want the compiler CP to satisfy CP[ p] fi P ....

[Article contains additional citation context not shown here]

William Clinger. The Scheme 311 Compiler: An Exercise in Denotational Semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, August 1984.


Compiler Correctness for Concurrent Languages - Gladstein, Wand (1994)   (6 citations)  (Correct)

....Accordingly we decided to tackle first the more primitive computation communication model of systems like PVM [10] or Erlang [4] Having done this, we expect that our framework will be applicable to the more sophisticated, coordination languages. 1. 1 Compiler Derivation Methodology A recipe [9, 31, 21] for compiling a source language into a target machine language is as follows: The semantics of the source language is given as a compositional translation E [ Delta] from the source language to some metalanguage. The compiler is defined by a compositional translation C[ Delta] from the source ....

....expression is evaluated. The continuation is a function mapping the value of the expression to the result of the program; it represents the remainder of the computation, which is waiting for the value of the expression. The translation is essentially a standard continuation passing semantics; see [9, 22, 23] for detailed expositions. In what follows, when we have a term (M 1 : Mn ) we will say that M 1 is in head position, or function position, and that Mn is in continuation position. E [ i] ae: ae i) E [ n] ae: in int n ) E [ rec i 1(i2 ) e) ae: in clo (fix (p:v:E [ e] ae[ in clo ....

[Article contains additional citation context not shown here]

W. Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, Aug. 1984.


A Little Goes a Long Way: A Simple Tool to Support.. - Wand, Sullivan (1995)   (Correct)

....out within this theory. In many cases, the proofs have a highly structured form. We show how a simple proof strategy, based on an algorithm for ff matching, can be used to build a tool that can automate the routine cases of these proofs. 1 Introduction In a series of papers in the early 80 s [19, 18, 20, 5] we proposed a paradigm for semantics based compiler correctness, and over the last several years we have begun putting this paradigm into practice [22, 14] In this paradigm, the source and target languages are given denotational semantics in the same theory [11] so that most of the steps of ....

....involves an induction hypothesis for each non terminal of the source language. The reasoning involves higher order equational reasoning in a suitable theory plus the use of the induction hypotheses. A number of small to moderate sized compiler correctness proofs have been done in this way [5, 7, 14, 19, 18, 20, 22]. As proofs of congruence and soundness scale up, machine support becomes more and more important. Ideally, one would like all the simple cases to be checked by machine, perhaps leaving a few subtle cases to be done by hand. We have now built a theorem prover capable of proving many such theorems. ....

[Article contains additional citation context not shown here]

William Clinger. The Scheme 311 Compiler: An Exercise in Denotational Semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, August 1984.


Revised^3 Report on the Algorithmic Language Scheme - Rees, (ed.), Clinger.. (1991)   (190 citations)  Self-citation (Clinger)   (Correct)

No context found.

William Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364.


Proper Tail Recursion and Space Efficiency - Clinger (1998)   (10 citations)  Self-citation (Clinger)   (Correct)

.... between proper tail recursion, garbage collection, and asymptotic space complexity was pointed out by Appel in Chapter 12 of [App92] Most discussions of proper tail recursion have been informal, but there have been several formal definitions within the context of a particular implementation [Ste78, Cli84, App92, FSDF93, Ram97]. My definition is essentially the same as a definition proposed by Morrisett and Harper [MH97] My treatment of garbage collection is closely related to that of Morrisett, Felleisen, and Harper [MFH95] 16 Future Work The reference implementations described here can be related to the ....

....here can be related to the denotational semantics of Scheme by proving that every answer that is computed by the denotational semantics is computed by the reference implementations. It should be possible to prove that implementations such as MacScheme and VLisp are properly tail recursive [Cli84, Lig90, GW95]. These proofs should be much easier than proofs of their correctness, and might not be much more difficult than the proofs in Sections 11 and 12. It should also be possible to formulate and to prove the soundness of a formal system for reasoning about the space complexity of programs written in ....

William Clinger. The Scheme 311 compiler: an exercise in denotational semantics. In Proc. 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364, August 1984.


Revised^4 Report on the Algorithmic Language Scheme - Clinger, (ed.), Rees.. (1991)   (242 citations)  Self-citation (Clinger)   (Correct)

No context found.

William Clinger. The Scheme 311 compiler: an exercise in denotational semantics. In Conference Record of the 1984 ACM Symposium on Lisp and Functional Programming, pages 356--364.


VLISP: A Verified Implementation of Scheme - Guttman, Swarup, Ramsdell (1993)   (17 citations)  (Correct)

No context found.

Will Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, pages 356-364, New York, August 1984. The Association for Computing Machinery, Inc.


A Verified Run-Time Structure for Pure PreScheme - Oliva, Wand (1992)   (Correct)

No context found.

William Clinger. The Scheme 311 Compiler: An Exercise in Denotational Semantics. In Proc. 1984.


A Verified Compiler for Pure PreScheme - Oliva, Wand (1991)   (5 citations)  (Correct)

No context found.

Clinger, W. \The Scheme 311 Compiler: An Exercise in Denotational Semantics," Conf. Rec. 1984.


A Verified Compiler for VLISP PreScheme - Oliva, Ramsdell, Wand (1993)   (Correct)

No context found.

Clinger, Will. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional Programming, The Association for Computing Machinery, Inc., New York (August 1984) 356-364.


A Guide to VLISP, A Verified Programming Language.. - Guttman, Monk.. (1992)   (Correct)

No context found.

Will Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984.


LISP AND SYMBOLIC COMPUTATION: An International Journal.. - Results And Conclusions   (Correct)

No context found.

Will Clinger. The Scheme 311 compiler: An exercise in denotational semantics. In 1984 ACM Symposium on Lisp and Functional ProgramDraft of September 29, 1993 GUTTMAN, RAMSDELL, WAND ming, pages 356-364, New York, August 1984. The Association for Computing Machinery, Inc.

First 50 documents

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