| Gordon Plotkin, Call-by-name, call-by-value and the -calculus, Theoretical Computer Science 1 (1975), no. 2, 125-159. |
....is a translation of intuitionistic proofs to S4 proofs which replaces every base type A by A and every implication by a corresponding boxed implication. At the level of proof terms, this yields the SKInT calculus of [19] which interprets (slightly more than) Plotkin s call by value calculus [42]. The present constructions give rise to a model in terms of paths (elements of base types) and homotopies (implications) for SKInT. This is left to the reader. 5.1.2. Models in Categories of Orders, Cpos, and Categories More cogent to computer science are models of the calculus based on ....
Gordon Plotkin, Call-by-name, call-by-value and the -calculus, Theoretical Computer Science 1 (1975), no. 2, 125-159.
.... Compiling functional programs into reversible computations Recall that the pure calculus is rich enough to represent data types such as integers, booleans, pairs, lists, trees, and general inductive types [22] and control structures including recursion, higher order functions, and continuations [33]. The calculus can be compiled into combinators, and in fact this has been extensively studied as an implementation technique [31] Although combinatory weak reduction does not capture all of reduction, it suces to capture computation over concrete data types such as integers, lists etc. as ....
G. D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125-159, 1975. 15
....and or a fee. PEPM 02 Jan. 14 15, 2002 Portland, OR, USA Copyright 2002 ACM 1 58113 455 X 02 01 . 5.00. languages are commonly used as intermediate languages in compilers, see, e.g. 3, 18] CPS translations are transformations converting programs into CPS terms. In a seminal paper [41], Plotkin de ned call by value and call byname CPS translations for the untyped calculus and established some of their important properties. Felleisen et al. 17] extended the call by value translation to also cover their control operator C. Meyer and Wand [32] showed that Plotkin s ....
....is given by the grammar A; B; C : X j A B j A1 A2 j 0 j A1 A2 j 1 M;N;P : x j x: M j N P j inl(M) j inr(M) j case(N; u: P1 ; u: P2) j r(N) j hM1 ; M2i j hi j fst(N) j snd(N) The typing and reduction rules of ; appear in Fig. 1. The most straightforward generalization of Plotkin s [41] call by name CPS translation of gives a translation of ; to itself. This is presented in Fig. 2 in a semi optimized, near colon version. There and elsewhere below, is a distinguished type variable (for the answer type) A is used as shorthand for A . Numerous other generalizations ....
G. Plotkin. Call-by-name, call-by-value and the -calculus. Theor. Comp. Sci., 1(2):125-159, 1975.
....recursion for regions. We refrain from investigating an untyped equational theory, since our region calculus is inherently type based: region insertion is guided by a type and e ect analysis. We prove that the operational theory is sound with respect to Morris style contextual equivalence [31, 36] using bisimulation, a proof method originating from work on CCS [29] Following methods by Gordon, Abramsky and others [2, 11, 15 18] we specify a notion of bisimilarity for the region calculus. With a proof technique due to Howe [21,22] re casted to typed functional programming languages by ....
....a proof technique due to Howe [21,22] re casted to typed functional programming languages by Gordon [15] we show that bisimilarity is a congruence for our region calculus. This forms the basis to prove that bisimilarity equals contextual equivalence and includes the operational theory. Plotkin [36], simpli ed Morris style contextual equivalence to weak head reduction and made it a standard notion for reasoning about program equivalence. However, since it is not very practical to prove contextual equivalence directly, alternative characterizations have been proposed. For instance, Milner ....
[Article contains additional citation context not shown here]
Gordon Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125-159, 1975.
....rewriting terms. As usual, is the re exive, and transitive closure of ; on . The functional language LA , subject of this work, is h ; i. Discussion. It is worth giving some intuition about the meaning of the dynamics. LA is a kind of restriction of the untyped call by value Calculus[9], which rewriting rule is: x:M)N v Mf N # x g if N is a value ; where the variables, and the abstractions are values. Namely, only the terms with a speci c form can be substituted for the variables. The rewriting system ; behaves analogously to v . Following the de nition of the ....
G. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125 - 159, 1975.
....partially supported by MURST progetto co nanziato Tecniche formali per la speci ca, l analisi e la trasformazione di sistemi software , ESPRIT WG APPSEM. 1 soundness of equivalence w.r.t. observational congruence is proved by a non trivial adaptation of the syntactic techniques used in [Plo75]; type systems are presented a la Church (see [Bar91, Car97] which make explicit information not used at run time, but easy to remove by erasure; type safety is established for an instrumented SOS, which handles also type and region information, and performs additional run time checks. ....
....only well formed terms and contexts, then the resulting observational congruence would identify more (well formed) terms, and more transformations could be proved safe. Theorem 1.4 (soundness of ) If e 1 e 2 , then e 1 e 2 . Proof. The proof adapts the technique used by Plotkin (see [Plo75]) for proving that N e 1 = e 2 implies e 1 N e 2 . There are some additional complications due to the possibility of run time errors, the non determinism of evaluation, and the fact that reduction does not subsume evaluation. Technical details of the proof are given in Appendix A. 5 2 ....
G. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1(2), 1975.
....Third, a continuation can be captured in any context, independently of expressions appearing to their left. 1. 2 Syntactic theories of control Syntactic theories of control were introduced by Felleisen et al. 5] 7] 8] 6] These theories extend the call by value calculus de ned by Plotkin [21] with control operators like C and A. C allows to capture a continuation and A aborts a computation. Felleisen et al. proved these systems to be Church Rosser. This property states that if M reduces to P and M reduces to Q by di erent reduction paths, there exists N such that P and Q reduce to N . ....
....AAM A idem AM (C7) A(callcc M) callcc inA A(M( x:Ax) C8) Figure 2: One step reduction c for C The C reduction system is de ned by the set of rules in gure 2; it is similar to Felleisen s reduction system [8] Let us sketch some of its features. The rst rule is the value reduction [21] and the second rule is the reduction applying a primitive a to a constant b. As Plotkin [21] we suppose that is de ned on the following domain: Constants Constants Closed Value. Rules C5 and C6 are the same as in [8] in an application (AM)N , when the expression in operator position ....
[Article contains additional citation context not shown here]
G. D. Plotkin. Call-by-name, call-by-value and the - calculus. Theoretical Computer Science, pages 125-159, 1975.
....infer that for the rst con guration hK; I; Si j P , where p n evaluates (v 1 : v i e 0 e 1 : e j ) there is a transition to the second con guration where p n evaluates (v 1 : v i e 00 e 1 : e j ) where left terms of e 0 are values . Rule 2 is the call byvalue reduction [27]. According to rule 3, the evaluation of a lambda expression x:M yields a triple hx; M; i, called a function. One should remark that a function contains a fresh location which allows us to compare functions with eq (rule 7) Rule 4 is the evaluation rule of the function channel: it adds a new ....
....Continuation Passing Style Figure 7 displays a translation of the sequential subset of C using the continuationpassing style or CPS for short. The CPS translation is an old idea in computer science; it was initially proposed by Fisher [8] and Reynolds [33] and further investigated by Plotkin [27]. Such a style is often used for denotational semantics and for program transformations in compilers [3] 4] 34] 35] 1] In our notation, a translation consists of a set of translation rules having the following pattern: Term] exp. The left hand side of the rule is a source term of C ....
[Article contains additional citation context not shown here]
Gordon D. Plotkin. Call-by-Name, Call-by-Value and the -Calculus. Theoretical Computer Science, pages 125-159, 1975.
.... to proving equivalence of programs: The operational approach starts from an operational semantics, e.g. a partial function mapping every program (i.e. closed term) to its resulting value (if any) which induces a congruence relation on open terms called operational equivalence (see e.g. [10]) Then the problem is to prove that two terms are operationally equivalent. The denotational approach gives an interpretation of the (programming) language in a mathematical structure, the intended model. Then the problem is to prove that two terms denote the same object in the intended ....
.... a morphism from A (the object of values of type A) to TB (the object of computations of type B) This view of programs corresponds to call by value parameter passing, but there is an alternative view of programs as functions from computations to computations corresponding to call by name (see [10]) In any case, the real issue is that the notions of value and computation should not be confused. By taking callby value we can stress better the importance of values. Moreover, call by name can be more easily represented in call by value than the other way around. There are many possible ....
G.D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1, 1975.
....an essential feature of LISP it mimics the implicit decoding that takes place on the underlying stored program machine. In this paper we set out to reconcile this metalinguistic power with the natural (or structural) style of operational semantics that has been persuasively advocated by Plotkin [Plo75, Plo81]. As he recounts in [Plo81] Plotkin was rst motivated to introduce this style by the calculus and its fundamental notion of reduction. He rst applied the idea to the calculus based programming language ISWIM. In recent years it has been used to describe a wide variety of programming ....
....[McC60] to illustrate the troublesome de nition cited above. This will also help clarify how the metalinguistic facilities might be integrated in the new dialect (as well as other applicative languages) After this review we set out to study the problem within the framework laid out by Plotkin in [Plo75]. We de ne a deterministic structured operational semantics for the pure subset of M LISP. We then establish the connection to the corresponding equational logic in the usual way and prove its consistency. Finally we establish the correspondence of the logic to the observational congruence ....
[Article contains additional citation context not shown here]
G. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125-159, 1975.
....of the intersection type assignment system. Call by value evaluation would be one of the most standard strategy to reduce program expressions, actually being adopted in various programming languages. An attempt to incorporate this evaluation strategy into calculus was rst made by Plotkin [16], and the framework so obtained is called call by value calculus. In the call by value calculus we consider the set Val of values de ned by Val : Var [ f x :M j x 2 Var; M 2 g where Var and stand for the set of term variables and the set of terms respectively. The call by value ....
G. D. Plotkin, Call-by-name, call-by-value and the -calculus, Theoretical Computer Science 1 (1975) 125-159.
.... to proving equivalence of programs: The operational approach starts from an operational semantics, e.g. a partial function mapping every program (i.e. closed term) to its resulting value (if any) which induces a congruence relation on open terms called operational equivalence (see e.g. [Plo75]) Then the problem is to prove that two terms are operationally equivalent. On leave from Universit a di Pisa. Research partially supported by the Joint Collaboration Contract # ST2J 0374 C(EDB) of the EEC 1 programs are identi ed with total functions from values to values 1 The ....
....developing one (Eilenberg Kelly (1966) is not relevant to the argument: I shall try to explain in my own words in the next section why we should look to it rst . 2 1.1 Related work The operational approach to nd correct calculi w.r.t. an operational equivalence, was rst considered in [Plo75] for call by value and call by name operational equivalence. This approach was later extended, following a similar methodology, to consider other features of computations like nondeterminism (see [Sha84] and sidee ects (see [FFKD86, MT89] The calculi based only on operational considerations, ....
[Article contains additional citation context not shown here]
G.D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1, 1975.
.... to proving equivalence of programs: The operational approach starts from an operational semantics, e.g. a partial function mapping every program (i.e. closed term) to its resulting value (if any) which induces a congruence relation on open terms called operational equivalence (see e.g. [Plo75]) Then the problem is to prove that two terms are operationally equivalent. The denotational approach gives an interpretation of the (programming) language in a mathematical structure, the intended model. Then the problem is to prove that two terms denote the same object in the intended ....
....before the calculus led us to consider a categorical semantics of computations rst, rather than to modify directly the rules of conversion to get a correct calculus. Related work The operational approach to nd correct calculi w.r.t. an operational equivalence, was rst considered in [Plo75] for call by value and call by name operational equivalence. This approach was later extended, following a similar methodology, to consider other features of computations like nondeterminism (see [Sha84] side e ects and continuations (see [FFKD86, FF89] The calculi based only on operational ....
G.D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1, 1975.
....a small part of that goal. We treat only the purelyfunctional part, in which one can raise an exception, but not catch it. We give a formal operational semantics for this language, and prove several equational laws that correspond closely to the standard theorems for a call by name calculus [Plo75] thus formalising the e ect of adding exceptions on the theory. We study call by name semantics only, leaving the extension to call by need for further work, and we only brie y sketch the extensions to handle I O and concurrency. The operational semantics presents a novelty in that exceptional ....
G. D. Plotkin, Call-by-name, call-by-value and the -calculus, Theoretical Computer Science 1 (1975), 125-159.
....stated in connection with the direct style transformation, which is an inverse of the CPS transformation [3] We address the second occurrence property here. CPS programs are typically obtained by CPS transformation, and the canonical CPS transformation is due to Plotkin, in the mid 70 s [16]. It, however, gives rise to annoying administrative reductions that are interleaved with actual reductions. Proving properties of CPS programs such as relating 1 Basic Research in Computer Science (http: www.brics.dk) Centre of the Danish National Research Foundation. 2 This work is ....
....Foundation. 2 This work is supported by NSF Grant CCR 9303383. This is a preliminary version being submitted to HOOTS99 Danvy, Dzafic, and Pfenning their reduction steps with the corresponding reduction steps in direct style thus required Plotkin to develop a so called colon translation [16] which has stuck [11,18] In the late 80 s, however, a new CPS transformation was developed that operates in one pass and performs administrative reductions at transformation time [1,5,22] This one pass transformation is higher order (or more precisely: third order) and it is not clear how to ....
[Article contains additional citation context not shown here]
Gordon D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125-159, 1975.
....in a sense that will be explained. In order to satisfy the rst requirement, the negative translation we use is a generalisation of the one used by Meyer and Wand in the implicative case [8] i.e. a generalisation of the translation induced by Plotkin s call by name CPS translation [10]. De nition 7. Negative translation) The negative translation of any formula is de ned as: where = o for some distinguished atomic proposition o (that is not used elsewhere) and where: 1. a = a 2. 3. 4. ....
G. D. Plotkin. Call-by-name, call-by-value and the -calculus. Theoretical Computer Science, 1:125-159, 1975.
....metaconstants. QL has recursive function declarations instead of xpoint operators and the operational semantics is call by value. HPCF has a call by name operational semantics and apart from conditionals at higher types is identical to PCF. A discussion of evaluation strategies can be found in [10]. 2 The Language QL We de ne the language QL by specifying the basic syntax of types and raw expressions; this syntax will then be given a static and dynamic semantics. The Types and Expressions of QL The types of QL are given by the grammar : bool j nat j ) We write Type for the set ....
G.D. Plotkin. Call by name, call by value and the calculus. Theoretical Computer Science, 1:125-129, 1975.
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