| R. Douence and P. Fradet. A taxonomy of functional language implementations. Part I: call-by-value. INRIA research report 2783, 1996. |
....sense that it does not produce a first class function. In Hasegawa s original account, the calculus was motivated purely by categorical considerations. However, such a first order binder was independently devised by Douence and Fradet to give a high level account of stack operations in compiling [1]. In [11] we gave an equivalence between Freyd categories and categories. Here, we extend that equivalence to model higher order structure. It is not as simple as asking for a routine extension of the notion of closedness from that for a cartesian category to a premonoidal category, as one ....
....routine, given our analysis in the last section and the previous analysis by Moggi. Rather, we want to formulate languages that correspond more directly to our models in an effort to expose their different character. Furthermore, at least one of these languages appears to have independent interest [1]. Following our categorical equivalence result, we connect them by a stack passing transformation. 3.1 Computational calculus and Freyd categories In this section, we sketch how closed Freyd categories give semantics for the c calculus. We already know, by Theorem 2, that the c calculus ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet. A Taxonomy of Functional Language Implementations Part I : Call-by-Value , INRIA Research Report No 2783, 1995.
....former statement, we mean that a term of type X in context Gamma is not modelled by an arrow in C from the semantics of Gamma to the semantics of X , but by a derived construction in terms of the monad. By the latter statement, we mean that there is a body of relevant work about compiling (e.g. [DF]) but it does not directly fit into the terms of c models. In this paper, we give two different equivalent formulations of c models, one generalising the notion of cartesian closed category, the other given by an indexed category with structure. We investigate natural languages for these ....
....not reifying in the sense that it does not produce a first class function. In Hasegawa s original account, the calculus was motivated purely by categorical considerations. However, such a first order binder was independently devised by Douence and Fradet to give a high level account of compiling [DF]. In [PT97] we gave an equivalence between Freyd categories and categories. Here, we extend that equivalence to model higher order structure. It is not as simple as asking for a routine extension of the notion of closedness from that for a cartesian category to a premonoidal category, as one ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet, A Taxonomy of Functional Language Implementations Part I : Call-by-Value , INRIA Research Report No 2783, 1995.
.... (33) 99 38 38 32 A Taxonomy of Functional Language Implementations Part II: Call by Name, Call by Need and Graph Reduction Rmi Douence and Pascal Fradet Thme 2 Gnie logiciel et calcul symbolique Projet Lande Rapport de recherche n3050 Novembre 1996 38 pages Abstract: In Part I [5], we proposed an approach to formally describe and compare functional languages implementations. We focused on call by value and described well known compilers for strict languages. Here, we complete our exploration of the design space of implementations by studying call by name, call by need ....
....At each step, different transformations model fundamental choices or optimizations. We describe and compare the diverse alternatives for the compilation of the call byname strategy in both environment and graph based models. The different options for the compilation of b reduction described in [5] can be applied here as well. Instead, we describe other possibilities specific to graph reduction. Call by need is nothing but call by name with redex sharing and update. We present how sharing can be expressed in our framework and we describe different update schemes. We finally classify some ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet. A taxonomy of functional language implementations. Part I: call-by-value. INRIA research report 2783, 1996.
....des oprateurs primitifs et des structures de donnes pouvaient se dcrire. La conception de machines hybrides (i.e. mlangeant plusieurs choix de compilation) est galement mentionn . Nous ne traitons pas ici ces extensions et le lecteur intress pourra se reporter cet article ou sa version tendue [10]. Dans ce papier, nous reprsentons le cadre formel de l approche et consid rons son application la description de trois implantations: la Cam, Tabac (TrAnsformation BAsed Compiler) un compilateur CPS bas sur [13] et une version stricte de la machine de Krivine (propose dans [19] Le cadre gn ....
....(faibles) sont normalisants. Dcrire et comparer les implantations de langages fonctionnels Proprit 1 Si une expression ferme E:Rs (resp. E: s s t) a une forme normale, alors E push s V (resp. E l s x. F) Nous ne dtaillons pas les preuves ici ; le lecteur intress peut se reporter [10] qui prsente l approche formelle de faon plus dtaille. 2.4 Lois Ce langage dispose d une collection de lois algbriques utiles pour transformer le code fonctionnel (e.g. exprimer des optimisations) ou montrer la correction ou l quivalence de transformations. Nous en prsentons ici deux: L1) si x ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet. A taxonomy of functional language implementations. Part I: Call-by-Value, Rapport de recherche IRISA 972, 1995.
....reader to the (electronically published) appendix. References to the appendix are noted m x . A previous conference paper [16] concentrates on call by value and can be used as a short introduction to this work. Additional details can also be found in two companion technical reports ( 17] [18]) and a PhD thesis [19] 3 2 GENERAL FRAMEWORK Each compilation step is represented by a transformation from an intermediate language to another one that is closer to machine code. In this paper, the whole implementation process is described via a transformation sequence L T1 L s T2 L e T3 ....
....be expressed as well. These choices are specified by redefining the interactions of unwind s with the three graph builders (mkVar s , mkFun s , mkApp s ) In each case, it amounts to defining new properties like (GNm1) GNm2) and (GNm3) More details on these alternate choices can be found in [18]. 3.4 Comparisons We compare the efficiency of codes produced by transformations Va (eval apply CBV) and Vm (push enter CBV) Then, we exhibit the precise relationship between the environment and graph approaches. In particular, it is shown how to derive the transformation Nm from G and the ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet. A taxonomy of functional language implementations. Part II: call-byname, call-by-need, and graph reduction. INRIA research report 3050, Nov. 1996.
....motivated reader to the (electronically published) appendix. References to the appendix are noted m x . A previous conference paper [16] concentrates on call by value and can be used as a short introduction to this work. Additional details can also be found in two companion technical reports ([17], 18] and a PhD thesis [19] 3 2 GENERAL FRAMEWORK Each compilation step is represented by a transformation from an intermediate language to another one that is closer to machine code. In this paper, the whole implementation process is described via a transformation sequence L T1 L s T2 L ....
....the environment) Even so, tests may be too costly in practice compared to the construction of small closures. The best way would probably be to perform an analysis to detect cases when Vm is profitable. Such information could be taken into account to get the best of each approach. We present in [17] how Va and Vm could be mixed. 3.4.2 Environment machine versus graph reducer Even if their starting points are utterly different, graph reducers and environment machines can be related. This has been done for specific implementations such as [43] which shows how to transform a G machine into a ....
[Article contains additional citation context not shown here]
R. Douence and P. Fradet. A taxonomy of functional language implementations. Part I: call-byvalue. INRIA research report 2783, Jan. 1996.
....(a rewrite cannot suppress a redex) thus all reduction strategies are normalizing. Property 1 If a closed expression E:Rs has a normal form, there exist V such that E push s V Due to the lack of space we do not display proofs here and refer the interested reader to a companion paper [9]. The reduction should be done modulo associativity if we allow an unrestricted use of (assoc) which may produce ill typed programs. The rule (b s ) along with (assoc) specifies a string reduction confluent modulo (assoc) 2.4 Laws This framework enjoys a number of algebraic laws useful to ....
R. Douence and P. Fradet. A taxonomy of functional language implementations. Part I: Call-by-Value, INRIA Research Report, 1995. (to appear)
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