23 citations found. Retrieving documents...
Sabry, A. and Wadler, P. (1997). A reflection on call-by-value. ACM Transactions on Programming Languages and Systems, 19(6):916--941.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:
A Monadic Multi-stage Metalanguage - Moggi, Fagorzi (2002)   (5 citations)  (Correct)

...., x 1 ]do(v 2 . x 2 ]ret(x 1 , x 2 ) while its translation (v 1 , v 2 ) # as a value is (v # 1 , v # 2 ) If v i = ret(v # i ) is provable (from the axioms for computational types) then it is easy to prove also (v 1 , v 2 ) ret(v 1 , v 2 ) # . We have not tried to exploit the ideas in [SW96] to make the CBV translation better behaved w.r.t. reductions. We are doubtful that it can be done easily, because the definition of value in MetaML is so complex. Lemma 6.4 If v , then v ret(v #n ) where is the reduction induced by #.do do(ret(e 1 ) x]e 2 ) e 2 [x: e 1 ] ....

Amr Sabry and Philip Wadler. A reflection on call-by-value. In Proceedings of the International Conference on Functional Programming, pages 13--24, Philadelphia, 1996.


Call-By-Value, Call-By-Name and the Logic of Values - Stärk   (Correct)

.... and vice versa Can these translations be lifted to formulas such that proofs of LV can be interpreted in LN and vice versa What is the exact relationship between the (untyped) systems LV and LN and the (typed) systems LPT and LUT of [11] What is the meaning of reflection (in the sense of [10]) in the context of LV ....

A. Sabry and P. Wadler. A reflection on call-by-value. In Proceedings of the ACM SIGPLAN International Conference on Functional Programming (ICFP '96), pages 13--24, Philadelphia, Pennsylvania, 1996. ACM Press.


Multi-Stage Programming: Its Theory and Applications - Taha (1999)   (27 citations)  (Correct)

....reduction, to produce optimal results without having the user rewrite the program in CPS. Bondorf has studied improving binding times without resorting to explicit CPS conversion [9] The work of Sabry and Wadler suggests that the use of Moggi s c may also be relevant to dealing with this problem [76]. 3. Can MetaML be compiled using the traditional functional programming language compilation techniques Compiling MetaML requires staging its semantics, and will reveal new design options that need to be pursued and understood. Model theoretic interpretation functions seem to have provided a ....

Sabry, A., and Wadler, P. A reflection on call-by-value. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming (Philadelphia, May 1996), pp. 13--24.


A Judgmental Reconstruction of Modal Logic - Pfenning, Davies (2001)   (1 citation)  (Correct)

....REC f . We also conjecture a strong relationship between reduction sequences in the two calculi under the given translation, even though a direct simulation theorem fails. A further study of computational behavior is beyond the scope of this paper. The similarity of our techniques and those by Sabry and Wadler (1997) suggest an approach we intend to pursue in future work. As an alternative to a direct term assignment for lax logic, we can use the embedding of lax logic in modal logic to give an account of the monadic metalanguage in modal A Judgmental Reconstruction of Modal Logic 27 logic. A proposal along ....

Sabry, A. and Wadler, P. (1997). A reflection on call-by-value. ACM Transactions on Programming Languages and Systems, 19(6):916--941.


Metatheorems about Convertibility in Typed Lambda Calculi.. - Kucan (1997)   (Correct)

....transform preserves cp equality, so cp is a correct domain for the CPS transform. To show that cp is a correct codomain of the transform, consider Plotkin s indifference result: Theorem 1.1. 5 (Plotkin) For any two lambda terms M and N , v M = N iff n M = N : This theorem, as shown in [SW96] can be extended to cp . Theorem 1.1.6 (Sabry Wadler) For any two lambda terms M and N , cp M = N iff n M = N : By these results, n restricted to the image of the CPS transform is a conservative extension of cp restricted to the same set of terms. Therefore on terms in the image of ....

....of the computational transform is the equational correspondence result, which says that the transform preserves equality in cp , and moreover, nothing, up to cp equivalence, is lost in the transform. Theorem 1.3.2 (Sabry Wadler) cp M = N iff ml M = N . We point the reader to [HD94] and [SW96] for more detailed analysis of the transform T ml . 1.3.2 The modified computational transform In an effort to define a transform, similar to the CT, but mapping cp into a call by value calculus, we define the modified computational transform, T ml] to be a transform from cp into c . The ....

[Article contains additional citation context not shown here]

Amr Sabry and Philip Wadler. A reflection on call-by-value. In International Conference on Functional Programing, Philadelphia, May 1996. ACM Press.


Typed Intermediate Representations for Compiling.. - Vanderwaart (1999)   (3 citations)  (Correct)

....languages have much in common: each is based on a predicative version of polymorphic calculus, both support similar base types (integers, floating point numbers, etc. and primitive type constructors (tuples, variants, functions, polymorphism) and both force terms to be written in A normal form [SW96] to simplify optimizations. Both the FLINT and TIL systems follow essentially the same compilation strategy. Each begins by parsing and typechecking the source program; this process, called elaboration, is complicated by the fact that ML allows the programmer to declare infix operators and ....

....linear and enables conventional loop optimizations to be performed. Neither the FLINT nor the TIL compiler actually uses continuation passing style as such, however. Instead, both translate the terms in their intermediate language into a style referred to as A normal form, which has been shown [SW96] to be equivalent to CPS in terms of the optimizations that can be performed. Writing terms in A normal form essentially means naming every sub expression of a computation using a let construct. This has the effect of turning free form higher order function applications and complicated arithmetic ....

[Article contains additional citation context not shown here]

Amr Sabry and Philip Wadler. A reflection on call-by-value. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming, 1996.


Retraction Approach to CPS Transform - Kucan   (Correct)

....a language with mutable store can be given using the state passing style (SPS) transform. As shown by Moggi [Mog88] a number of such computational effects can be described by the notion of a monad, and the CPS and the SPS transforms can be generalized to, what we call, the computational transform [Wad90, SW96]. The equational correspondence for the computational transform holds as well [SW96] and it is natural to ask whether the Retraction Theorem (Theorem 1.2) generalizes. However, the computational transform maps lambda terms to the terms of the monadic metalanguage , ml [Mog91] The language of ....

.... shown by Moggi [Mog88] a number of such computational effects can be described by the notion of a monad, and the CPS and the SPS transforms can be generalized to, what we call, the computational transform [Wad90, SW96] The equational correspondence for the computational transform holds as well [SW96], and it is natural to ask whether the Retraction Theorem (Theorem 1.2) generalizes. However, the computational transform maps lambda terms to the terms of the monadic metalanguage , ml [Mog91] The language of ml is extended with new constructs that the logic of the computational lambda ....

[Article contains additional citation context not shown here]

Amr Sabry and Philip Wadler. A reflection on call-by-value. In International Conference on Functional Programing, Philadelphia, May 1996. ACM Press.


Typed Common Intermediate Format - Shao (1997)   (11 citations)  (Correct)

....enough to express polymorphism and higher order functions but lowlevel enough to support all standard optimizations. 3. 2 Background The core language of FLINT is a predicative variant of the Girard Reynolds polymorphic calculus F [9, 31] with the term language written in the Anormal form [33]. In the following, we first give a introduction about F , and then formally define the Core FLINT language. The standard Girard Reynolds polymorphic calculus F is often defined as follows: kinds) Omega j 1 2 (types) oe : t j oe 1 oe 2 j 8t : oe j t : oe j oe 1 [oe 2 ] ....

....as (f [oe 0 ] f will no longer type check in our predicative variant. ffl The call by value term language is split into two levels as well, with values denoting simple variables or constants. The usual term expressions must now satisfy new syntactic restrictions as standard A normal forms [33]. More specifically, each function application (or type application) can only refer to values (as v 1 v 2 ) The standard F function application term e 1 e 2 is rewritten (according to call by value semantics) into a nested let expressions followed by the actual value application. ffl A new ....

A. Sabry and P. Wadler. A reflection on call-byvalue. In Proc. 1996 ACM SIGPLAN International Conference on Functional Programming (ICFP'96), pages 13--24. ACM Press, June 1996.


Two for the Price of One: Composing Partial Evaluation and.. - Sperber, Thiemann (1997)   (10 citations)  (Correct)

....8.1 A Normal Form Compilation with ANF [20] captures the essence of continuation based compilation [2,31,34,57] We build upon that work to construct the simple ANF compiler. Using ANF (or monadic normal form) for compilation is also put forward by Hatcliff and Danvy [25] and by Sabry and Wadler [52]. Danvy s work [11,12,14] uses type directed partial evaluation for semantics directed compilation. His system wraps let expressions around code that denotes computations in order to avoid code duplication. As a result, he also obtains programs in ANF. The type directed partial evaluator is also ....

Amr Sabry and Philip Wadler. A reflection on call-byvalue. In ICFP1996 [28], pages 13--24.


Reflections on the Design of a Specification Language - Kahrs, Sannella (1998)   (Correct)

....or imperative features. 4 Another one is 8ff: 1 Theta 2 ) 8ff: 1 ) Theta (8ff: 2 ) which is needed since SML supports simultaneous declarations. 5 To be precise, for call by value languages such as SML we need to restrict fij conversion to values, as in Moggi s c calculus [SW96]. Under this restriction, we can reasonably assume that fij convertible expressions are indistinguishable, even when the language is extended. 5.2 Assessing the logic Quantification over values in a typed language P is itself necessarily typed, i.e. we quantify over values of a particular ....

A. Sabry and P. Wadler. A reflection on call-by-value. In Proc. Intl. Conf. on Functional Programming, 1996.


CPS Translations and Applications: The Cube and Beyond - Barthe, Hatcliff, Sørensen (1998)   (5 citations)  (Correct)

.... strong normalization from weak normalization in typed calculi [68, 74] and the construction of looping combinators in inconsistent pure type systems [15] Related Direct Style (DS) translations [17, 19, 58] have also been used in both theoretical [57] and implementation oriented applications [60]. The range of these applications has been confined thus far by the fact that CPS translations are known for non dependent type systems only. Indeed, the most general class of systems with known CPS translation seems to be the non dependent logical pure type systems, studied by Coquand and ....

....1. 1 Intermediate languages for compiling CPS or languages with properties similar to CPS (such as A normal forms [25] or monadic normal forms [39] we refer to these as CPS based languages) are often used as intermediate languages when compiling and partial evaluating functional languages [1, 21, 38, 40, 43, 50, 60, 66]. These applications take advantage of the fact that, in CPS, all intermediate values are named and that contexts are represented explicitly. For example, intermediate value naming is used to aid register allocation in compiling (roughly, each name corresponds to a register) and to prevent ....

[Article contains additional citation context not shown here]

A. Sabry and P. Wadler. A Reflection on Call-by-value. In Proceedings of the 1996 International Conference on Functional Programming. April, 1996.


Sound Specialization in the Presence of Computational Effects - Lawall, Thiemann (1997)   (14 citations)  (Correct)

....CPS transformation and its associated direct style transformation form a reflection of the computational lambda calculus specializer in the traditional specialization for the lambda calculus. A reflection is a strengthened version of a Galois connection (where we regard reduction as a preorder) [35]. One of the key points of this work is its immediate applicability. Whereas Hatcliff and Danvy s work requires the construction of a new specializer along their operational rules, we show that sound specialization can be achieved by first transforming the annotated term to CPS and then using a ....

....a novel sound approach. In Section 6, we present a new variant of the CPS transformation that results in a specializer that is both sound and well behaved and produces residual programs that are in direct style. Extending Sabry and Wadler s result for the standard call by value lambda calculus [35], we show in Section 7 that our CPS transformation on two level terms forms a reflection in the two level computational lambda calculus of a restriction of the two level lambda calculus, ensuring that reduction in a specializer built according to our construction corresponds exactly to reduction ....

[Article contains additional citation context not shown here]

Amr Sabry and Philip Wadler. A reflection on call-by-value. In Dybvig [17], pages 13--24.


MetaML: Multi-Stage Programming with Explicit Annotations - Taha, Sheard   (9 citations)  (Correct)

....optimizations on the generated code can be useful. It may be possible, through the use of jv , to produce the optimal results without having the user rewrite the program in CPS. The work of Sabry and Wadler suggests that the use of Moggi s c may also be beneficial in dealing with this problem [39]. 5. Empirical measurement are still needed to assess the relative benefits of annotation strategies. 15 Conclusion We have described a multi stage programming language which we call MetaML. MetaML was designed as a programming language. Our primary purpose was to support the writing of ....

Amr Sabry and Philip Wadler. A reflection on callby -value. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming, pages 13--24, Philadelphia, Pennsylvania, 24--26 May 1996.


Strong Normalization from Weak Normalization in Typed.. - Sørensen (1997)   (1 citation)  (Correct)

.... M : oe ) Delta; Gamma] T [ M ] I : oe] T for a Delta with dom( Delta) FV( M ] I )nFV(M) Proof. By induction on Gamma M : oe using Convention 7.5. ut 7.18. Remark. Inner interpretations agreeing with inner type interpretations resemble Kleisli triples and monads, see, e.g. [48, 49, 15, 59]. 8. Application to typed calculi a la Church In this section we consider typed calculi a la Church: second order types 2 and higher order types . It is convenient to study so called domainfree [6] variants of these calculi in which abstractions have form x:M rather than x: oe : M . 8.1. ....

A. Sabry. A reflection on call-by-value. In International Conference on Functional Programming, pages 13--24. ACM Press, 1996.


Bridging the gulf: a common intermediate language.. - Jones, Launchbury.. (1998)   (14 citations)  (Correct)

....of the monads implicit that is, explained only by the semantics of L1 . Why, for example, did we not make the ST monad explicit by representing a value of type ST as a statetransforming function in L1 , and representing let ST and redexes ; a slightly more complex translation can avoid them (Sabry Wadler [1996]) 5 We do not treat the runST encapsulator of Launchbury Peyton Jones [1995] here, but it is easy to do so. ret ST using the other L1 forms For example, instead of the L1 term let ST x e in b we could write the L1 term bindST e ( x:b) where bindST is defined (directly in L1 ) as ....

A Sabry & PL Wadler [1996], "A reflection on call-by-value," in Proc International Conference on Functional Programming, Philadelphia, ACM, May 1996, 13-- 24.


Reflections on Reflections - Barthe, Hatcliff, Sørensen (1997)   (1 citation)  (Correct)

....program calculi. The target calculus is typically based on continuation passing style (CPS) terms [1,27] monadic style terms [3,12] A normal forms [10] or some other sort of intermediate language that makes explicit things such as intermediate values and closure operations. In recent work [23,24], Sabry and Wadler question: what is the appropriate relationship between source and target calculi Program calculi are often presented as equational theories. So one might answer the above question by stating that compiling should preserve the equality relation of the source calculi. That is, M ....

....Section 5 assesses results concerning the call by value CPS translations studied by Sabry and Wadler. Section 6 presents related work. Section 7 concludes. 2 Relationships Between Calculi In this section, we review the definitions of Galois connection and reflection given by Sabry and Wadler [23]. We also adopt their introductory definitions and notation. We write Gamma for compatible single step reduction; Gamma Gamma for the reflexive and transitive closure of reduction; for the reflexive, transitive, and symmetric closure of reduction; and j for syntactic identity up to renaming ....

[Article contains additional citation context not shown here]

Amr Sabry and Philip Wadler. A reflection on call-by-value. In Proceedings of the 1996 ACM SIGPLAN International Conference on Functional Programming, April 1996.


A Reflection on Call-by-Value - Sabry, Wadler (1996)   (18 citations)  Self-citation (Sabry Wadler)   (Correct)

No context found.

Sabry, A., and Wadler, P. A reflection on call-by-value. In ACM SIGPLAN International Conference on Functional Programming (1996), p. ?


The Marriage of Effects and Monads - Wadler (1998)   (13 citations)  Self-citation (Wadler)   (Correct)

....values and types (specified as a greatest fixpoint) we can use the existing type relation (specified by structural induction) The monad translation we use is standard. It was introduced by Moggi [Mog89, Mog91] and has been further studied by Hatcliff and Danvy [HD94] and Sabry and Wadler [SW96]. Our reduction semantics for the monad is new. It most closely resembles the work of Hatcliff and Danvy, but they did not deal with state and therefore failed to distinguish between pure reductions and those with computational effects, as we do here. The results are all obtained by ....

....All computations with side effects are represented by the new monad type. We use call by name for monads to stress the relation to Haskell. Like Plotkin s CPS translation, Moggi s monad translation is indifferent: it remains valid whether the monad language uses call by value or call by name [Plo75, HD94, SW96]. The language Monad and its type system is shown in Figure 2. The distinction between values and expressions is no longer relevant, since evaluation has no side effects. Expressions are extended with two new forms for manipulating monads (we will describe these shortly) Regions and effects are ....

A. Sabry and P. Wadler, A reflection on call-byvalue, 1'st ACM International Conference on Functional Programming, Philadelphia, May 1996.


Lazy vs. Strict - Wadler (1996)   Self-citation (Wadler)   (Correct)

....Felleisen and by Maraist, Odersky, and Wadler [1] This calculus provides a reasonable model of evaluation. It is observationally equivalent to calculus, and hence retains its completeness properties. Plotkin s v calculus may be improved by Moggi s c calculus, as proposed by Sabry and Wadler [6]. This calculus is based on Moggi s work with monads, and is sound and complete over all monad models. It contains v as a subset, and remains a reasonable model of evaluation. Astonishingly, these improved calculi are nearly identical. Maraist, Odersky, Turner, and Wadler [4] studied variants let ....

....and Wadler [4] studied variants let of call by value and need of callby need that differ by exactly one law, let x = M in N Gamma N; if x is not free in N which is absent in the former and present in the latter. The similarity appears to hold for a range of formulations: Sabry and Wadler [6] conjecture that augmenting c by the above law again turns a model of call by value into one of call by need. For too long the lazy and strict camps have been untied. With some rearrangement, may they become united ....

A. Sabry and P. Wadler, A reflection on call-by-value, 1'st ACM International Conference on Functional Programming, Philadelphia, Pennsylvania, May 1996.


How to Declare an Imperative - Wadler (1995)   (60 citations)  Self-citation (Wadler)   (Correct)

....(like SML) do restrict reasoning in ways that lazy languages (like Haskell) do not. The usual call by value calculus v of Plotkin [51] is not strong enough to prove these laws. One must use the stronger computational lambda calculus c of Moggi [42] which has been studied by Sabry and Wadler [54]. 4. RELATED WORK Monads have been used for a variety of purposes beyond those described here. As noted, Eugenio Moggi introduced monads to computing science as a way of structuring denotational semantics [42; 43] Many different language features, including non termination, state, exceptions, ....

....translations of lambda calculus into continuation passing style [51] Monads provide a generalisation of these translations. The relation of monads to continuation passing style have been described by Moggi [42; 43] Wadler [59; 61; 64] Hatcliff and Danvy [19] Filinski [10] and Sabry and Wadler [54]. Filinski also describes an ingenious way to embed arbitrary monads in a call by value language with state and continuations, such as SML NJ [10] Researchers have proposed various special type systems and syntaxes to support monads. Jones devised an overloaded type system suitable for use with ....

A. Sabry and P. Wadler, A reflection on call-by-value. In 1st International Conference on Functional Programming, ACM Press, Philadelphia, May 1996.


Under consideration for publication in Math. Struct. in .. - Judgmental..   (Correct)

No context found.

Sabry, A. and Wadler, P. (1997). A reflection on call-by-value. ACM Transactions on Programming Languages and Systems, 19(6):916--941.


Categorical Structure of Continuation Passing Style - Thielecke (1997)   (18 citations)  (Correct)

No context found.

Amr Sabry and Philip Wadler. A reflection on call-by-value. ACM SIGPLAN Notices, 31(6):13--24, June 1996.


EBG: A Lazy Functional Programming Language Implemented on the.. - Clark (1999)   (Correct)

No context found.

Sabry A. & Wadler P. (1997) A Reflection on Call-by-Value. ACM Transactions on Programming Languages and Systems. 19(5), pp 111 -- 136.

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