| J. G. Riecke. Fully abstract translations between functional languages. Mathematical Structures in Computer Science, 1995. To appear. (p. 2) |
....as the basis of an implementation of lazy evaluation. Optimizations associated with lazy evaluation (e.g. overwriting a forced expression with its resulting value) are encapsulated in 16 the thunk. They give several representations with differing effects on space and time overhead. Riecke [31] has used thunks to obtain fully abstract translations between versions of PCF with differing evaluation strategies. In effect, he establishes a fully abstract version of the Simulation property for thunks. The Indifference property is also immediate for Riecke since all function arguments are ....
Jon G. Riecke. Fully abstract translations between functional languages. In Robert (Corky) Cartwright, editor, Proceedings of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 245--254, Orlando, Florida, January 1991. ACM Press.
....from the reduction properties of terms generated by Plotkin s transformation Cv (see [31, p. 314] For examples of why full abstraction fails, see [23, pp. 154 and 149] and [30, p. 30] For a detailed presentation of fully abstract translations in a typed setting, see the work of Riecke [28, 29]. T : T h[b]i = b T h[x]i = force x T h[x:e]i = x:T h[e]i T h[e 0 e 1 ]i = T h[e 0 ]i (delay T h[e 1 ]i) Figure 5: Thunk introduction 2 Thunks 2.1 Thunk introduction To establish the simulation properties of thunks, we extend the language to the language that includes suspension ....
....study thunks as the basis of implementation of lazy evaluation. Optimizations associated with lazy evaluation (e.g. overwriting a forced expression with its resulting value) are encapsulated in the thunk. They give several representations with differing effects on space and time overhead. Riecke [28] has used thunks to obtain fully abstract translations between versions of PCF with differing evaluation strategies. In effect, he establishes a fully abstract version of the Simulation property of Theorem 7. The thunk translation required for full abstraction is much more complicated than our ....
Jon G. Riecke. Fully abstract translations between functional languages. In Robert (Corky) Cartwright, editor, Proceedings of the Eighteenth pages 245--254, Orlando, Florida, January 1991. ACM Press.
....in Example 1.4(ii) above. We will not explicitly define the call by value and lazy variants here, since the only purpose in doing so would be to point out that they are equivalent for our present purposes. In the case of PCF, the relationship between the three variants has been studied in [Sie90, Rie93], and more fully in [Lon95, Chapter 6] where a syntactic equivalence result comparable with Theorem 1.8 is proved in detail. The view we are advocating here is that, for any notion of computable functional, the corresponding standard category is the real underlying object of interest, and ....
J.G. Riecke. Fully abstract translations between functional languages. Math. Struct. in Comp. Science, 3, 1993.
....for systematically exploring their simulation properties. 1.3 Summary of contributions and overview The concept associated with the Simulation property for thunks has long been a part of folklore. Formal treatments of this concept have appeared recently in the context of specific applications [1, 26]. In constrast, ours is a broad formal investigation focusing on the connection with Plotkin s fundamental work on continuation passing style. As such, we recast the Simulation property in terms of Plotkin s original definition. Furthermore, we also establish the Indifference property as well as ....
....2 ]i = g T h[oe 1 ]i T h[oe 2 ]i. Thus, the action by T is exactly what is needed to move from C v to C n . 5 Variations and Related Work Thunks have been used primarily to implement call by name and lazy languages [4, 14, 19] Recently, thunks have been used in more theoretical settings [1, 26]. In this section, we first give some useful variations of our transformation T and then survey other optimizations and applications of thunks that have recently appeared in the literature. 5.1 An optimization in Algol 60 The transformation T introduces terms of the form e (delay (force x) in ....
[Article contains additional citation context not shown here]
Jon G. Riecke. Fully abstract translations between functional languages. In Robert (Corky) Cartwright, editor, Proceedings of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 245--254, Orlando, Florida, January 1991. ACM Press.
....different uses. 1. When comparing programming languages, a fully abstract translation from language L 1 to language L 2 is a mapping of terms in L 1 to terms in L 2 that preserves partial ordering of terms based on their observable consequences. For the rigorous mathematical definition, see [Riec91] Conceptually, the existence of a fully abstract translation from L 1 to L 2 indicates that L 1 is at least as abstract as L 2 , since all behavioral information represented by terms in L 1 is also represented by corresponding terms in L 2 . 2. When considering a single programming ....
Jon G. Riecke, "Fully Abstract Translations between Functional Languages ", in POPL '91 : Conference Record of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, Orlando, Florida, January 21--23, 1991, pp. 245--254.
.... languages have tended to opt for simplicity, in the hope that a clean design and the ability to write higher order functions compensate for the lack of multiple specialpurpose features [Hug89] However, functional programs can be much less convenient to modify than imperative programs [Fel90, Rie91] For example, suppose one wished to add a counter to a function written in a functional language. If state or some similar feature were available in the language, very little programming would be required. However, because no state can be associated with a pure function, it would probably be ....
J. G. Riecke. Fully abstract translations between functional languages. In Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 245--254, January 1991.
....t is in the domain of ae. It is easy to check that this set forms a Scott domain under the usual ordering on finite functions, i.e. environments with the same domain are ordered component wise and the empty environment is below every other environment. An alternative solution, employed by Riecke [2], is to change the language and to include a syntactic construct for declaring recursive objects: x:M: It is then possible to bind a diverging computation to a variable. 2 The CPS model for Pcf v C The original paper [1] assigns the following semantics to Y (cf. 1, page 170] fix cps : D ....
Riecke, J.G.. Fully abstract translations between functional languages. In Proc. 18th ACM Symposium on Principles of Programming Languages , 1991, 245-254.
....from the reduction properties of terms generated by Plotkin s transformation Cv (see [31, p. 314] 15 For examples of why full abstraction fails, see [23, pp. 154 and 149] and [30, p. 30] For a detailed presentation of fully abstract translations in a typed setting, see the work of Riecke [28, 29]. T : T h[b]i = b T h[x]i = force x T h[x:e]i = x:T h[e]i T h[e 0 e 1 ]i = T h[e 0 ]i (delay T h[e 1 ]i) Figure 5: Thunk introduction 2 Thunks 2.1 Thunk introduction To establish the simulation properties of thunks, we extend the language to the language that includes suspension ....
....study thunks as the basis of implementation of lazy evaluation. Optimizations associated with lazy evaluation (e.g. overwriting a forced expression with its resulting value) are encapsulated in the thunk. They give several representations with differing effects on space and time overhead. Riecke [28] has used thunks to obtain fully abstract translations between versions of PCF with differing evaluation strategies. In effect, he establishes a fully abstract version of the Simulation property of Theorem 7. 24 The thunk translation required for full abstraction is much more complicated than ....
Jon G. Riecke. Fully abstract translations between functional languages. In Robert (Corky) Cartwright, editor, Proceedings of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 245--254, Orlando, Florida, January 1991. ACM Press.
....from the reduction properties of terms generated by Plotkin s transformation Cv (see [31, p. 314] 15 For examples of why full abstraction fails, see [23, pp. 154 and 149] and [30, p. 30] For a detailed presentation of fully abstract translations in a typed setting, see the work of Riecke [28, 29]. T : T h[b]i = b T h[x]i = force x T h[x : e]i = x : T h[e]i T h[e 0 e 1 ]i = T h[e 0 ]i (delay T h[e 1 ]i) Figure 5: Thunk introduction 2 Thunks 2.1 Thunk introduction To establish the simulation properties of thunks, we extend the language to the language that includes ....
....study thunks as the basis of implementation of lazy evaluation. Optimizations associated with lazy evaluation (e.g. overwriting a forced expression with its resulting value) are encapsulated in the thunk. They give several representations with differing effects on space and time overhead. Riecke [28] has used thunks to obtain fully abstract translations between versions of PCF with differing evaluation strategies. In effect, he establishes a fully abstract version of the Simulation property of Theorem 7. 25 The thunk translation required for full abstraction is much more complicated than ....
Jon G. Riecke. Fully abstract translations between functional languages. In Robert (Corky) Cartwright, editor, Proceedings of the Eighteenth Annual ACM Symposium on Principles of Programming Languages, pages 245--254, Orlando, Florida, January 1991. ACM Press.
....languages. Several methods succeed to compare only languages having a common basis (such as similar syntactic structure, similar semantic definition or similar evaluation method) Examples for such approaches can be found in [4, 7, 22] where sequential program schemes are compared, and in [2, 3, 6, 8, 9, 10, 11, 15, 16, 17, 18, 19, 23, 24, 28], where different variants of languages and computational models are compared. Recently, several proposals have been made, in which a wider set of languages can be compared [20, 27, 29] Shapiro [27] introduces a general method for comparing the structural simplicity of families of machines and ....
Riecke, J.G., Fully Abstract Translations between Functional Languages (Preliminary Report), Proc. of ACM POPL, 1991.
.... observables of the two languages) to avoid vacuous equality [15] Fehr compares type free concepts on definability of functions and objects with that of typed concepts with fix point operators [21] Riecke and Kfoury discuss translations between PCF s [51] with different parameter passing schemes [53, 33, 54]. Fleck exhibits a case study of four different declarative languages (two functional and two logic languages) in solving a sample problem [25] This chapter discusses two other recent works, both dealing with the expressive power of programming languages directly. In order to gain insight into ....
....of L prog , every member of which terminates. The operational semantics observes only termination, avoiding unnecessary restriction on the set of languages. In most of the languages with simple observable data, we can distinguish termination with different observables by using appropriate contexts [54]. A language can be extended by adding a set of new programming constructs. A language extension is conservative if any program without any new programming constructs behaves in exactly the same way as in the original language. Definition 2 (Conservative extension) A language L = L 0 fF 1 ; ....
[Article contains additional citation context not shown here]
J. G. Riecke. Fully abstract translations between functional languages. In J. L. Gersting, editor, Mathematical Structures in Computer,Science, volume 3, pages 387--415. Cambridge University Press, 1993.
.... observables of the two languages) to avoid vacuous equality [15] Fehr compares type free concepts on definability of functions and objects with that of typed concepts with fix point operators [21] Riecke and Kfoury discuss translations between PCF s [51] with different parameter passing schemes [53, 33, 54]. Fleck exhibits a case study of four different declarative languages (two functional and two logic languages) in solving a sample problem [25] This chapter discusses two other recent works, both dealing with the expressive power of programming languages directly. In order to gain insight into ....
J. G. Riecke. Fully Abstract Translations between Functional Languages. In Proceedings of the 18th ACM Symposium on Principles of Programming Languages, pages 245--54, Uppsala,Sweden, 1991.
....useful beyond the context of the particular problem studied here. The fully abstract models of VPCF and FPC can be used in establishing other general results about sequential languages. For example, we can use them to prove that translations between programming languages are fully abstract (cf. [37]) More importantly, this work brought out the shortcoming of monads as a framework for expressing the semantics of side e ects when applied to models arising from other monads (such as other side e ects) Since the de nition of a call byvalue monad formulated here had to bypass precisely this ....
J. G. Riecke. Fully abstract translations between functional languages. Mathematical Structures in Computer Science, 3:387-415, 1993.
....languages like Standard ML. 2. FPC can serve as an expressive metalanguage for denotational semantics [8, 26] FPC, for instance, has enough expressive power to encode a call by value version of PCF (the base type of numbers can be encoded via a recursive type) Given a fully abstract translation [29] from a language into FPC, the model of FPC yields a fully abstract model of the language. The relations used in the construction of the model for FPC tease apart the structure of Sieber s relations for PCF [33] Sieber s model of PCF, and the fully abstract model of PCF using Kripke relations ....
J. G. Riecke. Fully abstract translations between functional languages. Mathematical Structures in Computer Science, 3:387--415,
....congruent in a language without effects (continuations, state, exceptions) but not in an extension with effects. We give a generic way to preserve pure functional congruences by means of an effects delimiter. The effects delimiter is defined semantically using the retraction techniques of [14], but can also be given an operational semantics. We show that the effects delimiter restores observational congruences between purely functional pieces of code, thus achieving a modular separation between the purely functional language and its extensions. 1 Introduction Functional programming ....
....then CT [ D[M ] CT [ D[# oe M ] 3. Full abstraction: For any environments ae and ae 0 , C [ M ] ae = C [ N ] ae iff CT [ # oe M ] ae 0 = CT [ # oe N ] ae 0 . This theorem can be extended to open terms as well by placing # s on the free variables. The proof, similar to proofs in [12, 14, 15], goes by showing that the model C is a retract of the model CT using logical relations. First, we define relations that relate values and computations in the models C and CT , and show that the meanings C [ M ] and CT [ N ] are related; this is enough to guarantee the first condition holds. ....
J. G. Riecke. Fully abstract translations between functional languages (preliminary report). In Eighteenth Symposium on Principles of Programming Languages, pages 245--254. ACM, 1991.
No context found.
J. G. Riecke. Fully abstract translations between functional languages. Mathematical Structures in Computer Science, 1995. To appear. (p. 2)
No context found.
J. G. Riecke. Fully abstract translations between functional languages. Mathematical Structures in Computer Science, 3, pp. 387--415, (1993).
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