| A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998. Referenced on pp. 4 |
....a conversation with incomplete proofs and basic intuitions. For those who from semantics recoil, recall: this is algorithm analysis, establishing the correctness of an incremental interpreter. Related complexity analysis, both of Lamping s algorithm and the problem, can be found in [6, 4]. 2 Linear # terms The best place to start representing the essence of the full problem, but in miniature is with linear # terms: every variable must occur exactly once. Church numerals #s.#z.s z are ruled out (s may occur more than once or not at all) also Boolean truth values (recall ....
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
....is known as the finite developments theorem. 3 Permutation equivalence We introduce our first notion of equivalence, permutation equivalence. Two reductions are permutation equivalent if they perform the same steps but possibly in a di#erent order. This is analogous to saying that the lists [2, 1, 0] and [0, 1, 2] have the same members, listed in a di#erent order. In the case of these lists, this can be shown by repeatedly permuting pairs of adjacent members: 2, 1, 0] 2, 0, 1] 0, 2, 1] 0, 1, 2] Similarly, two reductions will be said to be permutation equivalent if one can ....
....as the finite developments theorem. 3 Permutation equivalence We introduce our first notion of equivalence, permutation equivalence. Two reductions are permutation equivalent if they perform the same steps but possibly in a di#erent order. This is analogous to saying that the lists [2, 1, 0] and [0, 1, 2] have the same members, listed in a di#erent order. In the case of these lists, this can be shown by repeatedly permuting pairs of adjacent members: 2, 1, 0] 2, 0, 1] 0, 2, 1] 0, 1, 2] Similarly, two reductions will be said to be permutation equivalent if one can be obtained ....
[Article contains additional citation context not shown here]
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages, volume 45 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1998.
.... between Levy labelling and Girard s Geometry of Interaction [GAL92a] Andrea Asperti and Stefano Guerrini have implemented a simple compiler, the B ohm machine, for a pure functional language whose implemented reduction strategy is Levy optimal; the implementation is described in their book [AG98]. We call this family of graphs inspired by Lamping s formalism partial sharing graphs, following the terminology of Gonthier, Abadi and Levy in their joint paper [GAL92a] The concurrent pattern matching problem arises in the design of a compiler with similar aims to that described in Alan ....
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
....according to the safety restriction, a parameter of the basic type should not occur within a functional argument of a procedure call. In an essential way, the proof of [19] uses paths in graphs. The latter are borrowed form the geometry of interactions [1] and the theory of optimal reductions [2]. The present paper is independent of these calculus related theories. We develop several tools for the MS logic of higher level trees. Our rst tool is a signature of graph operations studied by Courcelle, Olariu, Engelfriet and others [10,16,6,9,13] We use operations which allow to add edges ....
A. Asperti and S. Guerrini. The optimal implementation of functional programming languages. In Cambridge Tracts in Theoretical Computer Science, volume 45. Cambridge University Press, 1998.
....edge from a variable node to the appropriate node is labeled p and oriented upward. Note that the labeling and orientation are fully determined by the lambda tree M , and are not formally part of G(M) Figure 2 explains the labeling. Following the ideas of the Geometry of Interaction, see [3, 4], we will now consider paths in lambda graphs. A sequence of adjacent edges in a lambda graph (possibly including the extra arcs from variable nodes to their binders) is called a straight path provided there is no backtracking, i.e. No edge is taken twice in a row; Two edges connecting two ....
A. Asperti and S. Guerrini. The optimal implementation of functional programming languages. In Cambridge Tracts in Theoretical Computer Science, volume 45. Cambridge University Press, 1998.
....of the non translatability of several systems, such as variants of Berry s F . The translation problem can be motivated from the viewpoint of functional programs as TRSs, to be given meaning by translation to lambda calculus, or implementation via implementations of lambda calculus such as in [AG98]. One can also consider functional programs as lambda expressions (usually in some form of typed lambda calculus) and de ne implementations by translation into rewrite systems, such as in [Oho99] Reverse compilation can be seen as translating such a rewrite system back into lambda calculus. 2 De ....
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998. Cambridge Tracts in Theoretical Computer Science, No. 45.
....to the safety restriction, a parameter of the basic type should not occur within a functional argument of a procedure call. In an essential way, the proof of [KNU01] uses paths in graphs. The latter are borrowed form the geometry of interactions [ADLR94] and the theory of optimal reductions [AG98]. The present paper is independent of these calculus related theories. We develop several tools for the MS logic of higher level trees. Our tools are based on graph operations extensively studied during the past decade by Courcelle, Engelfriet and others [CER93,Eng94,Cou92,Cou97] We use ....
A. Asperti and S. Guerrini. The optimal implementation of functional programming languages. In Cambridge Tracts in Theoretical Computer Science, volume 45. Cambridge University Press, 1998.
....arguments should retain as much sharing as possible. Therefore some intelligent implementation of higherorder terms within the metalanguage such as Teyjus s use of explicit substitutions [16, 17] seems essential. Perhaps even a more sophisticated representation such as optimal reductions [9, 3] would be useful. 10 Programming the prover In this paper, we have concentrated on an encoding of the logic used for proof checking. But of course, we will also need to construct proofs. For example, a typical safety property is the program never stores to a memory location outside the address ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
....of the non translatability of several systems, such as variants of Berry s F . The translation problem can be motivated from the viewpoint of functional programs as TRSs, to be given meaning by translation to lambda calculus, or implementation via implementations of lambda calculus such as in [1]. One can also consider functional programs as lambda expressions (usually in some form of typed lambda calculus) and define implementations by translation into rewrite systems, such as in [12] Reverse compilation can be seen as translating such a rewrite system back into lambda calculus. 2. ....
....other numeral system in the lambda calculus) then the equations have no solution in lambda calculus. This has previously only been proved by domain theoretic arguments. Note that the system has many improper translations. For example, let [ F ] #xyz.t, where t is closed, and define [ 0] [1]] 2] t. A] and [ B] are arbitrary. Theorem 3.3. Every orthogonal TRS with a uniform translation is strongly separable. Proof. Let there be given an orthogonal TRS which is not strongly separable, and a uniform translation [ of it. We will derive a contradiction. By non strong ....
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998. Cambridge Tracts in Theoretical Computer Science, No. 45.
....arguments should retain as much sharing as possible. Therefore some intelligent implementation of higher order terms within the meta language such as Nadathur s use of explicit substitutions [Nad97] seems essential. Perhaps even a more sophisticated representation like optimal reductions [Lam90, AG98] will be useful. Programming the prover. In this paper, we have concentrated on an encoding of the logic used for proof checking. But of course, we will need to construct proofs, too, which is sufficently difficult [God31] that the full power of an imperative programming language (such as lProlog ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
....and correct tool for reasoning about optimal reduction, and the details of the implementation of the oracle by the control nodes does not play any essential role in the proof. As a consequence, we shall not discuss the details of the control node interactions; the interested reader may consult [AG98]. 2.1 Initial translation We shall not berate the reader with the detailed de nition of the simply typed calculus. Recall simply that types T , variables V , and terms E are generated from the following inductive de nitions: T : o j T T V : v 1 j v 2 j v 3 j E : V j EE j V : T :E ....
....number of graph reduction steps counts not only interactions between , apply, and sharing nodes, but also interactions involving the croissant and bracket nodes used to manage the indices that control the behavior of the sharing nodes. For more information on how this index management works, see [LM96, AG98]. Finally, in renditions of optimal graph reduction rules, there is some ambiguity de ning where reduction ends, and where readback begins. For example, if a graph has no more redexes, and thus represents a normalized term, one way to read back the term is to continue graph reduction ....
[Article contains additional citation context not shown here]
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge Tracts in Theoretical Computer Science, Cambridge University Press, 1999.
....of the shared rule and for the incremental duplication of subterms. It is the job of the bookkeeping part also called the oracle to maintain in the graph enough distributed information to make the abstract algorithm correct with respect to the standard reduction (see Section 2, or [AG98] for a complete account) Since all the reduction rules can be implemented as constant time operations, we may take the number of rewriting steps to reach the normal form of a term as the cost of the reduction algorithm. L evy s theory, given a term M , prescribes the number of shared ....
....over by x. Types can be assigned to terms in the usual way. Reduction is de ned by the rule: x:M N) M [N=x] We write 1 2 3 for 1 ( 2 3 ) and (M1 M2 M3 ) for ( M1 M2) M3 ) While the details of Lamping s approach for optimal reduction are complex and technical (see the book [AG98]) the few concepts needed to understand the result of this paper are easy to grasp. The rst step in Lamping s (abstract) algorithm is to represent a term as a labelled graph built out of the nodes given in Figure 1. The arrow exiting a node is the principal port of the node. The graph is ....
[Article contains additional citation context not shown here]
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages, volume 45 of Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, 1998.
.... the geometry of interaction [ADLR94] a new notation ensuring better properties (in particular, that the normal form of a sharing graph be a proof net) GMM96,Gue97] For a detailed presentation of the connections between sharing graphs and optimal reductions of calculus we refer the reader to [AG98]. All these approaches differ in the specific way the bookkeeping information is coded into the sharing graph. However, they agree on their focus on what in [GMM96] we called restricted proof nets: weakening is not allowed. There are at least two reasons for this. First, the problems that ....
....0 m 1 6= m 2 Fig. 7. Mux interactions. Remark 7 In the case of mux swap, the pair of facing muxes might even be generated by the same cut. The remarkable point for the application of the rule is that their thresholds are different. An unabridged discussion on this issue can be found in [Lam90,Asp95,AG98]. Here, we just remark that this is the essential reason because of which muxes and the other control nodes have an index that changes along reduction. In fact, a static label assigned to each mux at its creation would not be able to properly decide when to apply annihilation or swap. The ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
No context found.
AG97. Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1997. To appear.
....least a residual of each r 2 ae o must be reduced in any reduction ae : G oe s G 0 . Moreover, if G oe o G 1 , any redex r of G 1 has at most a residual in any G 2 s.t. G 1 oe o G 2 . The fi optimal reductions correspond to the usual calculus or linear logic optimal reductions ([Lam90,GAL92b,GAL92a,AG98]) when oe s is the corresponding sharing implementation (cf. section 4.1) In these cases, to delay or to not execute a fi duplicating rule does not hide any fi redex. In fact, for every fi redex r of R(G) there is a reduction G o G 0 s.t. the image of r in G 0 is a fi redex (note ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
.... b = Omega Gamma1 2 p ) The Main Theorem also gives bounds on the complexity of cut elimination in multiplicative exponential linear logic (mell) and in particular, an understanding of the linear logic without boxes formalism in [GAL92b] In proof nets for linear logic (see, for example, [Laf95, AG97]) the times and par connectives of linear logic play essentially the same role as apply and nodes in calculus; the programming synchronization implemented by the closure has its counterpart in proof net boxes. Just as Lamping s technology can be used to optimally duplicate closures, it can be ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge Tracts in Theoretical Computer Science, Cambridge University Press. To appear.
....and correct tool for reasoning about optimal reduction, and the details of the implementation of the oracle by the control nodes does not play any essential role in the proof. As a consequence, we shall not discuss the details of the control node interactions; the interested reader may consult [AG97]. 2.1 Initial translation We shall not berate the reader with the detailed definition of the simply typed calculus. Recall simply that types T , variables V, and terms E are generated from the following inductive definitions: T : o j T T V : v 1 j v 2 j v 3 j Delta Delta Delta E : V j ....
....number of graph reduction steps counts not only interactions between , apply, and sharing nodes, but also interactions involving the croissant and bracket nodes used to manage the indices that control the behavior of the sharing nodes. For more information on how this index management works, see [LM96, AG97]. Finally, in renditions of optimal graph reduction rules, there is some ambiguity defining where reduction ends, and where readback begins. For example, if a graph has no more fi redexes, and thus represents a normalized term, one way to read back the term is to continue graph reduction ....
[Article contains additional citation context not shown here]
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge Tracts in Theoretical Computer Science, Cambridge University Press. To appear.
....of each r 2 ae o must be reduced in any reduction ae : G oe s G 0 . Moreover, any redex r of G 1 s.t. G oe o G 1 has at most a residual in any G 2 s.t. G 1 oe o G 2 . By the way, the fi optimal reductions correspond to the usual calculus or linear logic optimal reductions ([Lam90,GAL92b,GAL92a,AG97]) when oe s is the corresponding sharing implementation (cf. section 4.1) In such cases, to delay or to not execute a fi duplicating rule does not hide any fi redex. In fact, for any fi redex r of R(G) there is a reduction G o G 0 s.t. the image of r in G 0 is a fi redex (note that ....
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1997. To appear.
No context found.
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998. Referenced on pp. 4
No context found.
Andrea Asperti and Stefano Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1999.
No context found.
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1998.
No context found.
A. Asperti and S. Guerrini. The Optimal Implementation of Functional Programming Languages. Cambridge University Press, 1997.
No context found.
The Book: A. Asperti, S. Guerrini: "The optimal implementation of functional programming languages ", Cambridge University Press, 1998.
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