84 citations found. Retrieving documents...
T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Functional Programming Language and Computer Architecture, LNCS 201, pages 190--203. SpringerVerlag, 1985.

 Home/Search   Document Details and Download   Summary   Related Articles   Check  

This paper is cited in the following contexts:

First 50 documents  Next 50

Parallel Standard Ml With Skeletons - Scaife, Michaelson, Horiguchi   (Correct)

....x 1) 1,2,3] val ff3 : node(map,base list, int base) base list] The handling of free values complicates our analysis. We wish to avoid the transmision of functional data at runtime as large free value bindings can overload the communications. For non functional free values, lambda lifting [7] is sucient. Functions are augmented with additional formal parameters for their free variables and calls to those functions are extended with the corresponding free variables as the actual parameters. For skeleton instances, the free values are registered with the runtime system and transmitted ....

T. Johnsson. "Lambda Lifting: transforming programs to recursive equations", volume 201 of LNCS, pages 190-302. Springer-Verlag, 1985.


Using Parameterized Signatures to Express Modular Structure - Jones (1996)   (32 citations)  (Correct)

....x. T, a component of the argument structure x: functor (x:SIG) SIG = struct data List = Nil [ Cons x.T The solution in this case is to add an extra parameter to the datatype definition before moving it to the top level, as shown in the following code fragment. This is just a form of ,Vlifting [8, 25]: data f. List t = f. Nil [ f. Cons t f.Lst f : SIG t SIG (f. Lzst t) Notice how the parameterized signatures in the type for f capture the relationship between the types involved in the argument x and those involved in the result f x. Because the form of higher order polymorphism described in ....

T. Johnsson. Lambda lifting: transforming programs to recursire equations. In Jouannaud, editor, Proceedings of the IFIP conference on Functional Ptvgrammng Languages and Computer Archttecture, pages 190-2(t5, New York, 1985. Springer-Verlag. Lecture Notes in Computer Science, 201.


A Functional Perspective on SSA Optimisation.. - Chakravarty.. (2003)   (1 citation)  (Correct)

....Further, since the leaves of the dominator tree cannot be reached except through their immediate dominator, the scoping rules for ANF enforce the dominance property of the SSA form. If desired, the nested letrec structure in the resulting program can be attened using the standard lambdalifting [10] transformation. Each SSA block is translated into a separate ANF function. A jump is translated into a tail call to the corresponding function, with the list of parameters obtained by F g from the list of nodes in the destination block. When translating a block into a function, the ....

Johnsson, T., Lambda lifting: Transforming programs to recursive equations, in: Jouannaud, editor, Proceedings of the International Conference on Functional Programming and Computer Architecture, number 201 in Lecture Notes in Computer Science (1985).


A High-Level Signal Processing Programming Language - Hicks, Jr. (1988)   (1 citation)  (Correct)

....the Id compiler can be used unchanged in this compiler. The module Map to Loops converts the map instructions to Id program graph constructs. The body of each map instruction is treated as another procedure. Since the Map body is completely encapsulated by the map instruction, no lambda lifting [12] needs to be performed, and the body can be defined as a procedure at the top level. The code blocks formed from the map bodies are declared to be inlinable. After the procedures for the map bodies are compiled, the maps themselves are replaced by two function calls and some graph glue. An ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Func- tional Programming Languages and Computer Architecture (Lecture Notes in Computer Science; 201), pages 199-203, Springer-Verlag, Berlin, September 1985.


Callee-save Registers in Continuation-passing Style - Appel, Shao (1992)   (14 citations)  (Correct)

....style into mchine code. But it is useful to separate the closure introduction from mchinecode generation so that the compiler is more modular; we cn rewrite the program into n equiwlent one in which no function hs free wribles. This hs been done in compilers bsed on ordinary A clculus [14, 10] nd on continution pssing style [15, 4] We will represent closure creation nd use in the continution pssing style itself; ech closure will be n explicit record of the CPS. Our example s transformed into closure pssing style is shown in figure 4 The motiwtion for this transformation is that all ....

Johnsson, Thomas. Lambda lifting: Transforming programs to recursive equations. In The Second International Conference on Functional Programming Languag es and Computer Architecture, Springer-Verlag, New York (September 1985) 190 203.


Properties of a First-order Functional Lanuage with Sharing.. - Ariola, Arvind (1994)   (Correct)

....of a calculus, which is adequate for capturing the sharing of subexpressions in first order functional languages. The results of this paper are also relevant to compiling higher order functional languages, because compilers of such languages often employ a technique known as lambda lifting [13]. The program that results after lambda lifting is in a supercombinatory form, and is treated as a first order program [12] A way to capture sharing is to represent the expression as a graph instead of a linear text string or tree. This allows sharing of identical terms through pointers, and ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Proceedings of Functional Programming Languages and Computer Architecture, Nancy, France, Springer-Verlag LNCS 201, September 1985.


Automatically Restructuring Programs for the Web - Graunke, Krishnamurthi, R.. (2001)   (10 citations)  (Correct)

....continuation. A function that must grab the continuation and store it for future use can simply refer to this new argument. In our case, a reimplementation of prompt read can turn its new argument into a resumption point, that is, a point from where the program can be restarted. Lambda lifting [24] turns the resumption points into independent functions that can be moved to the top level, making them accessible to the code handling the next interaction. Defunctionalization [30] changes the representation of (define struct closure (code env) Closure = make closure Int Env) Env = ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, Nancy, France, September 1985.


Transformation-based Strategies for Lazy Functional.. - Alpuente, Falaschi.. (1999)   (Correct)

.... by using standard lambda lifting techniques (which can be thought of as an appropriate application of a definition introduction step followed by a folding step) For instance, if we consider again the rule double sum(X; Y) sum(Z; Z) where Z = sum(X; Y) we can transform it (by lambda lifting [24]) into the new pair of rules double sum(X; Y) ds aux(sum(X; Y) ds aux(Z) sum(Z; Z) Note that these rules can be directly generated from the initial definition by a definition introduction (ds aux(Z) sum(Z; Z) and then by folding the original rule at the expression sum(sum(X; Y) sum(X; ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Functional Programming Languages and Computer Architecture (Nancy,France), pages 190--203. Springer LNCS 201, 1985.


Compilation of a Specialized Functional Language for.. - Fradet, Mallet (2000)   (2 citations)  (Correct)

....to be executed locally on each processor. The transformation EC produces expressions in the intermediate language L 3 , very similar to L 2 , but in which no free variable occurs in the functional arguments of map or polyn . It aims at making parallel functions closed and is related to lifting [Joh85] The transformation EC is dened by local transformations applied iteratively to the program until a RR n Sigma3894 20 P. Fradet and J. Mallet xpoint is reached. In Figure 7, which describes the rule for poly2 , C denotes a context and FV[ Fun] denotes the free variable of Fun. The skeleton ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Functional Programming Languages and Computer Architecture, pages


The implementation of the Gofer functional programming system - Jones (1994)   (45 citations)  (Correct)

.... containing only closed, global functions known as supercombinators, a term coined by Hughes in his presentation of an algorithm for lambda lifting [18] The Gofer compiler includes an implementation of an alternative algorithm proposed by Johnsson, who also introduced the term lambda lifting [20]. Other descriptions of Johnsson s algorithm may be found in [48, Section 14.6] and in [49, Chapter 6] Up to this point, all of the program analyses and transformations that we have described have been fairly general, and largely independent of any particular implementation technique; we would ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Jouannaud, editor, Proceedings of the IFIP conference on Functional Programming Languages and Computer Architecture, pages 190--205, New York, 1985. Springer-Verlag. Lecture Notes in Computer Science, 201.


A Categorical and Graphical Treatment of Closure Conversion - Schweimeier, Jeffrey (1998)   (Correct)

....closure sharing better than level 1 normal forms, but this is left for future work. 6.3 Closure representation In this paper we have referred to the process of lifting functions to top level as closure conversion. In fact, this paper is part way between closure conversion and lambda lifting (Johnsson, 1985), since although we are explicitly representing closures as mkc nodes, closures have function type, and so we cannot directly extract the function and environment part from a closure. We can still address some issues in closure representation, for example we can flatten some closures using the ....

Johnsson, T., Lambda Lifting: Transforming Programs to Recursive Equations, in Proc. FPCA 1985.


GOld: a link-time optimizer for Scheme - Boucher (2000)   (Correct)

....4.3 Optimizations GOld performs three di erent optimizations: implicit annotation of source code, inlining of primitive procedures, and cross module inlining of user code. After these optimizations are performed, the usual Gambit C optimizations are applied ( reduction, lifting [19]) Implicit annotation. When appropriately annotated, Scheme programs can be compiled to very ecient code by Gambit C. Our rst optimization consists in annotating the abstract syntax tree (AST) of the source program, based on the global analysis results. GOld tries to add the following ....

T. Johnsson. Lambda-lifting: Transforming programs to recursive equations. In Proc. Conference on Functional Programming and Computer Architecture. Springer-Verlag, 1985.


Type-based Nondeterminism Checking in Functional Logic Programs - Hanus, Steiner (2000)   (Correct)

....only variables as arguments and the right hand side contains case expressions for pattern matching. Thus, expressions have the following 1 See [16] for a de nition of the one step relation ) form (we assume that lambda abstractions and local declarations are eliminated by lambda lifting [19]) e : x j f e1 : en j let x free in e j case e of p1 : e1 ; pn : en j fcase e of p1 : e1 ; pn : en j e1 or e2 f is a constructor or de ned function and p i are at patterns of the form C x1 : xn where C is a n ary data constructor. case and fcase are the rigid and ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Functions. In Functional Programming Languages and Computer Architecture, pp. 190-203. Springer LNCS 201, 1985.


Rules and Strategies for Transforming Functional and Logic.. - Pettorossi, Proietti (1996)   (51 citations)  (Correct)

....technique [Paige Koenig 82] and compare them with the strategies we have considered above. For other methods, such as: i) combinatory techniques [Turner 79] ii) supercombinator methods [Hughes 82] iii) local recursions [Bird 84a] iv) promotion strategies [Bird 84b] v) lambda liftings [Johnsson 85] and vi) lambda hoistings [Takeichi 87] we suggest to look at the original papers. There are some other techniques which have been proposed in the literature for transforming functional and logic programs. They are related to higher order features, in the sense that continuations and ....

Johnsson, T.: Lambda Lifting: Transforming Programs to Recursive Equations. Functional Programming Languages and Computer Architecture, Nancy (France) Lecture Notes in Computer Science 201, Springer Verlag (1985) 190--203


Building Query Optimizers with Combinators: Dissertation Proposal - Cherniack   (Correct)

....described in the literature, KOLA most closely resembles Curien s combinator set, but adjusted to account for sets and bags rather than lists, and avoiding the overly powerful combinators (App and ) that are expressive but difficult to optimize prior to their application to arguments. lifting [Joh85] and supercombinators [Hug84] are translation techniques that use variable sets of combinators. These techniques construct new combinators during each translation. The goal of this technique is to keep the number of combinators in the result small (the combinators generated tend to be fairly ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Conference on Functional Programming Languages and Computer Architecture, LNCS. Springer Verlag, 1985.


A Transformation System for Lazy Functional Logic Programs - Alpuente, Falaschi.. (1999)   (3 citations)  (Correct)

.... by using standard lambda lifting techniques (which can be thought of as an appropriate application of a definition introduction step followed by a folding step) For instance, if we consider again the rule double sum(X; Y) sum(Z; Z) where Z = sum(X; Y) we can transform it (by lambda lifting [19]) into the new pair of rules double sum(X; Y) ds aux(sum(X; Y) ds aux(Z) sum(Z; Z) Note that these rules can be directly generated from the initial definition by a definition introduction (ds aux(Z) sum(Z; Z) and then by folding the original rule at the expression sum(sum(X; Y) sum(X; ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In FPLCA'85, pages 190--203. Springer LNCS 201, 1985.


Using Parameterized Signatures to Express Modular Structure - Jones (1996)   (32 citations)  (Correct)

....argument structure x : functor f (x :SIG) SIG 0 = struct data List = Nil j Cons x :T List : end The solution in this case is to add an extra parameter to the datatype definition before moving it to the top level, as shown in the following code fragment. This is just a form of lifting [8, 25]: data f :List t = f :Nil j f :Cons t f :List f : SIG t SIG 0 (f :List t ) f x = Notice how the parameterized signatures in the type for f capture the relationship between the types involved in the argument x and those involved in the result f x . Because the form of higher order ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Jouannaud, editor, Proceedings of the IFIP conference on Functional Programming Languages and Computer Architecture, pages 190--205, New York, 1985. Springer-Verlag. Lecture Notes in Computer Science, 201.


An Attribute Grammar Evaluator in Haskell - Rushall (1992)   (Correct)

....program in a lazy functional language will be described in the next section. It is worth pointing out at this stage, that whilst the above example is a fairly trivial one, a similar technique can be applied to obtain single pass algorithms for much more complex tasks, such as lambda lifting [Joh85] and code generation. 4. Transforming Attribute Grammars into Lazy Functional Languages In [Joh87] Johnsson gives a simple transformation by which an attribute grammar can be expressed in a lazy functional language. This technique is applied to a number of example problems from [Bir84] ....

T. Johnsson, Lambda Lifting: Transforming Programs to Recursive Equations, Proceedings 1985 Conference on Functional Programming Languages and Computer Architecture, Nancy, France, 1985


Preserving Information during Online Partial Evaluation - Ruf, Weise (1992)   (Correct)

....scheme of [35] cannot be used here, as it only considers procedure arguments, not free variables, when determining when specializations can be re used. We solve these problems by disallowing nested procedures, transforming such programs to a flat form via a process similar to lambda lifting [23]. In this form, inner loops take their free variables as arguments, making them visible to the specialization cache and to the mechanism of [35] 3.5 Examples In this section, we demonstrate our fixpoint iteration mechanism on the examples of Section 2. 9 Under FUSE s termination criterion, a ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Jouannaud, editor, Conference on Functional Programming and Computer Architecture, Nancy. SpringerVerlag (LNCS 201), 1985.


A Taxonomy of Functional Language Implementations - Part II : .. - Douence, Fradet (1996)   (2 citations)  (Correct)

....p,m o Ag dsb [ l s x.E] r p o flushs 1,m ) o mkclos k,m o mkFun s o unwind s = dupls k,m o push s (stores p,m o Ag dsb [ l s x. E] r p o flushs 1,m ) o mkFun s (o mkApp s ) m o unwind s A preliminary step of the G machine is to transform (l lift) source functions into supercombinators [8]. This can be directly modeled by inserting copies of the environment (like the Ac1 scheme in [5] The mkbind less variations (like Ag dsb ) perform these copies (using mkclos and stores) and, in a way, integrate the l lifting process. The produced code models the usual G machine instructions, ....

....and especially the lack of clear description ( 12] presents mostly examples of final codes) makes the identification of compilation choices difficult. The G machine [9] and the spineless G machine [1] transform the source program in a (super)combinators set. The l lifting transformation [8] is modeled by the implicit copies of Ac dsb . A difference is that our grab s combinator performs a test for every argument, whereas the real machines perform only one test for all the arguments (by comparison of the arity with the activation record size) So, a n ary combinator grabs n should ....

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Proc. of FPCA'85, LNCS 201, pp. 190-203, 1985.


Polyvariant Specialisation for Higher-Order, Block-Structured .. - Malmkjær, Ørbæk (1995)   (Correct)

....of higher order values at the same time. The problem has been to rebuild the block structure in such a way that all names in the residual program appear in the correct scope. Instead, different mechanisms are employed to avoid the problem: removing blocks from the source program by lambda lifting [Joh85] (this is done by, e.g. Similix, Schism, and Pell Mell) or retaining blocks but either freezing higherorder arguments of specialisation points at the place of call (ML mix) or restricting the movement of closures upwards through scopes (Fuse) This paper presents an algorithm that allows ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In J-P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, number 201 in Lecture Notes in Computer Science, pages 190--203, Nancy, France, September 1985. 10


Implementing Escher on a Graph Reduction Machine - Eder (1999)   (Correct)

....which are not constructorbased (e.g. those in Booleans) are not translated into EKL. Instead, their functionality is hard wired into the machine model by providing special built in functions for them. Lifting: The Escher compiler uses the traditional way of lambda lifting which is described in [9]. The lifting of existential universal quantifiers is a new transformation. 8 The aim is to convert existential quantification into applications of the built in function sigma to a lifted lambda abstraction. Below, this process is illustrated on the function permutation whose definition is ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In J.-P. Jouannaud, editor, Proceedings IFIP Conference on Functional Programming and Computer Architecture, Lecture Notes in Computer Science 201, pages 190--205. Springer-Verlag, 1985.


Yet another way of Set-processing: The Escher style and its.. - Eder (1999)   (1 citation)  (Correct)

....the statement head and those in the set pattern(s) in the statement body will not be broken through later lambda lifting. Sets which are translated into lambda abstractions are called liftable sets, because they are later lambda lifted to the top level (using the traditional way of lambda lifting [16]) Translating into Escher Kernel Language: Next, the core Escher program is translated into EKL which is the language of EMA, both are described in detail in [6] EKL is a low level functional logic language which can be given a formal operational semantics expressed as a state transition ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Proceedings IFIP Conference on Functional Programming and Computer Architecture, Lecture Notes in Computer Science 201, pages 190--205. Springer-Verlag, 1985.


Transforming Conditional Rewrite Systems with Extra Variables.. - Ohlebusch (1999)   (1 citation)  (Correct)

....[Raa97] Acknowledgment: I thank Michael Hanus for the (email) discussion which led to the development of the transformation U . He also pointed out that the elimination of local definitions via program transformations is well known in the implementation of functional programming languages; see [Joh85]. ....

T. Johnsson. Lambda lifting: Transforming programs to recursive functions. In Functional Programming Languages and Computer Architecture, volume 201 of Lecture Notes in Computer Science, pages 190--203, Berlin, 1985. Springer-Verlag.


Compilation of Id - Ariola, Arvind (1991)   (3 citations)  (Correct)

....all algebraic types are translated into a single untyped dispatch operator. Dispatch n;m (i; E 1 ; Delta Delta Delta ; E i ; Delta Delta Delta E n ) Gamma Gamma E i Prior to translating Kid into P TAC, all nested expressions are lifted to the top level by a process known as lifting [8]. A Kid program after lifting only contains closed expressions. The translator, given a Kid program, produces SE : V ariable j Constant PF 1 : Allocate PF 2 : P select E : SE j PF n (SE; Delta Delta Delta ; SE) j Dispatch n (SE; E 1 ; Delta Delta Delta ; E n ) j FLoop(SE; ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Proc. Conf. on Functional Programming Languages and Computer Architecture, Nancy, France, September 1985.


Algebraic System Specification and Development.. - Cerioli, Gogolla, .. (1997)   (Correct)

....function graphs as set constants, which can be passed to other functions as higher order arguments. The resulting logic is close to calculi without the abstraction operator. This kind of logic also covers the equational theories obtained by lambda lifting applied to ML style functional programs [517]. Polymorphism Polymorphism is another very important and related notion. So far, there are four major kinds of polymorphism: overloading, coercion, subtype polymorphism and parametric polymorphism (see e.g. 188] The relation of all these kinds of polymorphism to order sortedness has been ....

T. Johnsson. Lambda-lifting: Transforming programs to recursive equations. In J.-P. Jouannaud, editor, Proceedings of 2nd Conference on Functional Programming Languages and Computer Architecture, Nancy(France), pages 190--203. Springer LNCS 201, 1985.


Cyclic Lambda Graph Rewriting - Ariola, Klop (1994)   (19 citations)  (Correct)

....as in [12] or, following the terminology of [5] A is flagged so that it will not be copied in case the redex is shared. This suggests that in order to avoid the extra complication of detecting mfe s at run time as in [28] an expression can be first pre processed by well known techniques [13, 14]. Then doing sharing of arguments is enough to capture the amount of sharing offered by Wadsworth s interpreter. Acknowledgements This work was done at the Dept. of Software Technology of CWI, and at the Dept. of Computer Science of the Free University. Z. Ariola thanks both CWI and the Free ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Proc. of Functional Programming Languages and Computer Architecture Conference, Nancy, France, Springer-Verlag LNCS 201, 1985.


Garbage Recycling: Transforming Programs to Reuse Garbage - Hamilton (1995)   (Correct)

....in the language consist of an expression to evaluate and a set of function definitions. Nested function definitions are not allowed in the language. Programs involving nested function definitions can be transformed into this restricted form of program using a technique called lambda lifting [ 13 ] . The only constants in the abstract syntax of the language are integers. Bound variables and function variables in the language are represented by strings of characters, and are elements of the domains Bv and Fv respectively. The basic functions are the built in functions of the language and ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Proceedings of the Workshop on Implementation of Functional Languages, pages 165--180, February 1985.


Higher Order Deforestation - Hamilton (1995)   (18 citations)  (Correct)

....assumed that the compiler for the language implements the full laziness technique described in [ 5 ] Nested function definitions are not allowed in the language. Programs involving nested definitions can be transformed into this restricted form of program using a technique called lambda lifting [ 7 ] . For the purposes of this paper, constants (e.g. numbers) and basic functions ( Gamma, etc. can be considered to be variables. Each constructor has a fixed arity (for example, N il has arity 0, and Cons has arity 2) and each constructor application must be saturated. It is assumed that the ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Proceedings of the Workshop on Implementation of Functional Languages, pages 165--180, February 1985.


Transforming Conditional Rewrite Systems with Extra Variables.. - Ohlebusch (1999)   (1 citation)  (Correct)

....[GW93] Acknowledgment: I thank Michael Hanus for the (email) discussion which led to the development of the transformation U . He also pointed out that the elimination of local definitions via program transformations is well known in the implementation of functional programming languages; see [Joh85]. ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Functions. In Functional Programming Languages and Computer Architecture, pages 190--203. LNCS 201, 1985.


Evaluation under λ-Abstraction - Xi (1996)   (Correct)

....corresponding to such redexes; a close correspondence between this calculus and the calculi in [18] and [3] can be established accordingly. It is this observation that motivates the paper. The problem of sharing evaluation under abstraction has lead to a great deal of study on lifting [12] and supercombinators [9] under the title full laziness or maximal laziness. Because of the ability of evaluating under directly, eval v hd can achieve what is beyond the scope of either lifting or supercombinators. Given a term M = z:x:y: BIG(IF(z; x; y) Theta(x; y) and a program P = ....

T. Johnsson (1985), Lambda lifting: transforming programs to recursive equations, In Proceedings of the Conference on Functional programming Languages and Computer Architecture, Nancy, pp. 190-203.


Constraint Functional Programming - Darlington, Guo (1995)   (1 citation)  (Correct)

....directed graphs are used as the representation of expressions in implementations of functional languages to support sharing, the result about narrowing in the paper can be extended to the graph reduction model. 3 Although the language is curried, we assume a supercombinator reduction model [Joh85]. Thus, an expression has the structure of a general finite tree. say that u is outer to v ( v is inner to u ) iff u v and u 6= v (denoted as u v ) Two incomparable occurrences u; v are denoted by u v. We define e=u as the subexpression of e at occurrence u, e(u) as the symbol at u and ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In 1985 Conference on Functional Languages and Computer Architectures, Nancy, France, Sept 1985.


The Many Disguises of Accumulation - Boiten (1991)   (7 citations)  (Correct)

.... used in conjunction with the tupling strategy [Pet84] Apart from accumulation, lambda abstraction can also be used to derive programs with continuations, e.g. for deriving complicated programs for traversing datastructures in one pass as in [Bir84b] Related techniques are described in [Hug82, Joh85, Tak87] 12 Hughes novel implementation of lists In [Hug86] the idea is presented that a list x could be represented by rep(x) y:x k y; with corresponding abstraction function abs(x) x[ It is shown how this allows a straightforward derivation of the fast reverse (cf. section 2) ....

T. Johnsson. Lambda-lifting: transforming programs to recursive equations. In J.P. Jouannaud, editor, Functional Programming and Computer Architecture, volume 201 of Lecture Notes in Computer Science, pages 190--203, Berlin, 1985. Springer-Verlag.


Full Lifting of Type Parameters - Minamide (1997)   (3 citations)  (Correct)

....deductive system that can represent various ways of type passing including Tolmach s approach and our approach. It is proved that this general translation preserves the type and operational behavior of a program. This general translation can be considered as a generalized version of lambda lifting [12] for type abstractions, and the similar translation is found in the study of coherence of ML by Jones [14] However, the restriction of the deductive system corresponding to full lifting does not gives rise to an algorithm of full lifting. Thus we develop a deterministic deductive system that ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Functional Programming Language and Computer Architecture, LNCS 201, pages 190--203. SpringerVerlag, 1985.


A Typed Functional Language for Expressing Register Usage - Agat (1998)   (2 citations)  (Correct)

....of data declarations, a sequence of declaration groups and finally a term e to evaluate as the main procedure of the program. A declaration group is a sequence of possibly mutually recursive combinator bindings. Recursion is only allowed for combinators, so a lambda lifting transformation [Joh85] must be used to lift recursive function definitions up to the top level when translating from a language with local recursive definitions to our language. The reason for treating functions and combinators differently is that they can be implemented differently. A function (lambda abstraction) ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Proceedings 1985 Conference on Functional Programming Languages and Computer Architecture, Lecture Notes in Computer Science 201, Nancy, France, 1985. Springer Verlag. Available from http://www.cs.chalmers.se/~johnsson.


Efficient High-Level Parallel Programming - Botorog, Kuchen (1997)   (6 citations)  (Correct)

....The translation of partial applications thus includes some form of lifting, i.e. unnesting of nested function 11 Nevertheless, a possible optimization would be to use this technique for the constant arguments of a partial application, since these are not bound to a certain scope. definitions [12], with the difference that not all parameters are added to the lifted function, but only the ones with local scope. Should the functional arguments have functional arguments of their own, then the latter have to be instantiated first. The instantiation procedure is thus applied ....

T. Johnsson, Lambda Lifting: Transforming Programs to Recursive Equations, in Proceedings of FPCA '85, Lecture Notes in Computer Science 201, (Springer, Berlin, 1985) 190--203.


Optimal Type Lifting - Saha, Shao (1998)   (9 citations)  (Correct)

....soundness theorems. 2.4 A closer look There are two transformations taking place simultaneously. One is the lifting of type applications and the other is the lifting of polymorphic function definitions. At first glance, the lifting of function definitions may seem similar to lambda lifting [10]. However the lifting in the two cases is different. Lambda lifting converts a program with local function definitions into a program with global function definitions whereas the lifting shown here preserves the nesting structure of the program. The lifting of type applications is similar in ....

....Haskell compiler [22] use an explicitly typed language as the intermediate language for the compilation. Lambda lifting and full laziness are part of the folklore of functional programming. Hughes [9] showed that by doing lambda lifting in a particular way, full laziness can be preserved. Johnsson [10] describes different forms of lambda lifting and the pros and cons of each. Peyton Jones [25, 23, 24] also described a number of optimizations which are similar in spirit but have totally different aims. Appel [2] describes let hoisting in the context of ML. In general, using correctness ....

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In The Second International Conference on Functional Programming Languages and Computer Architecture, pages 190--203, New York, September 1985. SpringerVerlag.


Optimising Partial Applications in TIM - Wakeling, Dix (1993)   (Correct)

....is unchanged. An observation about supercombinators, however, tells us that this interpretive overhead can be reduced without a separate stack for markers. 7 Supercombinators The TIM assumes that all programs have been converted either into supercombinators [5] or lambda lifted combinators [6]. Let us assume conversion to supercombinators as described in [5] Starting with the leftmost, innermost lambda abstraction of the program, every lambda abstraction v.E is converted into an application of a new supercombinator C to the maximal free expressions e 1 : e n of E. The new ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Proceedings of the 1985 Conference on Functional Programming Languages and Computer Architecture, pages 190--203. Springer-Verlag, September 1985. LNCS 201.


Models for Persistence in Lazy Functional Programming Systems - McNally (1993)   (96 citations)  (Correct)

....simultaneously if several processes could run in parallel on suitable hardware) may use this same closure without any copying. Each separate invocation of the function however will bind its own argument by placing it in the argument register MA. With this method, the operation of lambda lifting [Hugh84,John85,John87] is replaced by an operation carried out at run time but without extra penalty. The lambda lifting method involves transforming functions to others which are combinators i.e. those having no free variables. This is achieved by adding extra arguments (by source transformations) through which ....

Johnsson, T., Lambda Lifting: Transforming Programs to Recursive Equations, In Lecture Notes in Computer Science Vol. 201, SpringerVerlag, Ed. J-P.~Jouannaud --- Proc. Conference on Functional Languages and Computer Architecture, Nancy 1985 --- Also Aspenäs Workshop on Implementation of Functional Languages, Göteborg 1985


Extending First Order Deforestation - Hamilton (1995)   (4 citations)  (Correct)

....consist of an expression to evaluate and a set of function definitions. Nested function definitions are not allowed in the language. Programs involving nested function definitions can be transformed into this restricted form of program using a technique called lambda lifting (as described in [ 11 ] ) Some example definitions in the language are shown in Figure 2. append xs ys = case xs of N il : ys Cons x xs : Cons x (append xs ys) f latten xss = case xss of N il : N il Cons xs xss : append xs (f latten xss) reverse xs = case xs of N il : N il Cons x xs : append (reverse xs) Cons x N ....

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Proceedings of the Workshop on Implementation of Functional Languages, pages 165--180, February 1985.


Deriving a Lazy Abstract Machine - Sestoft (1997)   (46 citations)  (Correct)

....not harm lambda abstractions, which in the STG machine can appear only as right hand sides in letbindings. The STG machine seems to suffer the same potential space leak as our machine when a lambda abstraction ignores its argument, but in the STG machine this can be fixed easily. Lambda lifting (Johnsson, 1985) as used in the G machine automatically performs environment trimming by turning local function bindings into top level function bindings, passing any free variables as arguments. This may explain why lambda lifting works so well in lazy languages, in spite of its destroying scope information and ....

Johnsson, T. (1985). Lambda lifting: Transforming programs to recursive equations. Pages 190--205 of: Jouannaud, J.-P. (ed), Functional programming languages and computer architecture, Nancy, France, 1985. (Lecture notes in computer science, vol. 201). Berlin: Springer-Verlag.


Typed Closure Conversion - Yasuhiko Minamide Greg   (Correct)

No context found.

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In Functional Programming Language and Computer Architecture, LNCS 201, pages 190--203. SpringerVerlag, 1985.


LISP AND SYMBOLIC COMPUTATION: An International.. - Call-By-Need And..   (Correct)

No context found.

Johnsson, Thomas. Lambda lifting: transforming programs to recursive equations. In Jouannaud, J.-P., editor, Conference on Functional Programming Languages and Computer Architecture, Nancy, SpringerVerlag (September 1985) 190--203.


Implementing Escher on a Graph Reduction Machine - Kerstin Eder University   (Correct)

No context found.

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In J.-P. Jouannaud, editor, Proceedings IFIP ConferenceonFunctional Programming and Computer Architecture, Lecture Notes in Computer Science 201, pages 190#205. Springer-Verlag, 1985.


Static Single Information from a Functional Perspective - Singer   (Correct)

No context found.

T. Johnsson. Lambda lifting: transforming programs to recursive equations. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, volume 201 of Lecture Notes in Computer Science. Springer-Verlag, 1985.


Rules + Strategies for Transforming Lazy Functional.. - Alpuente, Falaschi.. (2004)   (Correct)

No context found.

T. Johnsson. Lambda Lifting: Transforming Programs to Recursive Equations. In Functional Programming Languages and Computer Architecture (Nancy,France), pages 190--203. Springer LNCS 201, 1985.


Automatically Restructuring Programs for the Web - Jacob Matthews Jacobm (2003)   (Correct)

No context found.

Johnsson, T.: 1985, `Lambda lifting: transforming programs to recursive equations'. In: Proceedings of the Conference on Functional Programming Languages and Computer Architecture. Nancy, France.


Web Interactions - Graunke (2003)   (Correct)

No context found.

Johnsson, T. Lambda lifting: transforming programs to recursive equations. In Proceedings of the Conference on Functional Programming Languages and Computer Architecture, Nancy, France, September 1985.


Analysis and Efficient Implementation of Functional Programs - Sestoft (1991)   (43 citations)  (Correct)

No context found.

T. Johnsson. Lambda lifting: Transforming programs to recursive equations. In J.- P. Jouannaud, editor, Functional Programming Languages and Computer Architecture, Nancy, France. (Lecture Notes in Computer Science, vol. 201), pages 190--203. Springer-Verlag, 1985.


Design and Implementation of a Partial Evaluation-Based Compiler .. - Freericks (1996)   (Correct)

No context found.

T. Johnsson, Lambda Lifting: Transforming Programs to Recursive Equations, in: [49], pp. 190-203

First 50 documents  Next 50

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