39 citations found. Retrieving documents...
Anders Bondorf. Improving binding times without explicit CPS-conversion. In 1992.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Continuation-based Partial Evaluation without Continuations - Thiemann (2003)   (2 citations)  (Correct)

....time (and which are not) It is also a drawback because some programs require non trivial transformation (binding time improvements) before they specialize well. Hence, some research has been geared towards automatizing these transformations and including them into partial evaluation systems [1, 7, 8, 16, 20]. The present work concerns continuation based partial evaluation, which incorporates one of the most essential binding time improvements for call by value functional programming languages. It was pioneered by Bondorf, Consel, and Danvy [1, 3] and later re ned and explained by Danvy, Hatcli , ....

....them into partial evaluation systems [1, 7, 8, 16, 20] The present work concerns continuation based partial evaluation, which incorporates one of the most essential binding time improvements for call by value functional programming languages. It was pioneered by Bondorf, Consel, and Danvy [1, 3] and later re ned and explained by Danvy, Hatcli , Lawall, and the present author [13, 16, 17] The basic idea is that code may be generated interleaved with specialization time computations. For example let x = e in 4) let x = e in 21 that is, the code generation for the surrounding let ....

[Article contains additional citation context not shown here]

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Proc. 1992 ACM Conference on Lisp and Functional Programming, pages 1-10, San Francisco, California, USA, June 1992. 14


The Formal Relationship Between Direct and Continuation-Passing.. - Sabry (1994)   (9 citations)  (Correct)

....We gratefully thank Cormac Flanagan for implementing this experiment. 119 Chapter 6 Correspondence of Data Flow Analyzers The final component of compilers that we will study is data flow analysis. The literature generally supports the idea that CPS improves the precision of data flow analysis [10, 15, 33, 34, 58, 92]. Although much of the evidence is informal, investigations by Nielson [72] and Burn Filho [33, 34] support, to some degree, the idea with formal results. However, their results do not pinpoint the source of increased abstract information and do not explain the observation of many people that ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the ACM Conference on Lisp and Functional Programming (1992) 1--10. 149


Syntactic Accidents in Program Analysis: On the Impact of the.. - Damian, Danvy (2000)   (9 citations)  (Correct)

....effects. Similarly, the constraint over the branches of a conditional is introduced because one cannot decide statically which conditional branch should be selected. The above mentioned constraint on the body of a letexpression can be relaxed if one uses a continuation based program specializer [2, 10, 18]. The constraint connecting the branches of a test with the test itself can be relaxed as well if one allows the same continuation based specializer to lift the test above the context, either by duplicating the context or by using a let expression. Given such a specializer, we can show that ....

....relocates potentially static contexts inside definitely dynamic contexts (let expressions and conditionals) thereby providing a bindingtime improvement. To this end, the CPS transformation itself is continuation based [7] which paved the way to continuation based partial evaluation [2, 18]. Hatcli# and Danvy have characterized the full e#ect of continuation based partial evaluation as online let flattening in Moggi s computational meta language [10] This characterization justifies why o#ine let flattening is also, partially, a binding time improvement [13] In any case, o#ine let ....

Anders Bondorf. Improving binding times without explicit cps-conversion. In William Clinger, editor, Proceedings of the


Binding-time Analysis for Polymorphic Types - Heldal, Hughes (2001)   (3 citations)  (Correct)

....need be annotated with a binding time, and only function arguments need be coerced. Constants and expressions are always static, and are coerced to be dynamic where necessary. let expressions are always dynamic, but their bodies may even so be static since we use Bondorf s CPS specialisation [3], which moves the context of a let into its body, where it can be specialised. Applications to binding times and coercions always take place during specialisation, and so need no annotation. We have already seen integer coercions. A coercion OE 1 b1 b2 OE 2 coerces a function with ....

A. Bondorf. Improving binding times without explicit cps-conversion. In 1992 ACM Conference on Lisp and Functional Programming. San Francisco, California, pages 1--10, June 1992.


Is Continuation-Passing Useful for Data Flow Analysis? - Sabry, Felleisen (1994)   (21 citations)  (Correct)

....11, 12, 17] Compiler writers believe that the intermediate representation based on CPS eases the production of code and facilitates optimizations. Numerous people also argue that the CPS transformation increases the precision of the data flow analysis that is necessary for advanced optimizations [2, 3, 5, 6, 16]. 2 Even though CPS programs are widely accepted as an advantageous intermediate representation, few compiler writers can pinpoint what distinguishes the CPS representation from other intermediate representations or precisely why it is better. In an attempt to understand the principles of ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the ACM Conference on Lisp and Functional Programming (1992) 1--10.


A Generic Framework for Specialization (Abridged Version) - Thiemann   (Correct)

....p and can transmit useful feedback to the user of the system. The specialized program is built from pieces of the original source program. The inverse translation is hard wired into the specializer. Examples of this approach are Bondorf s specializer in extended continuationpassing style [4] and a specializer for call by value lambda calculus with first class references in extended continuation passing store passing style [17] Specializer in Direct Style with Monadic Operators Here we depart from writing the specializer in a pure language and use a meta interpreter eval = eval v ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Proc. 1992 ACM Conference on Lisp and Functional Programming, pages 1--10, San Francisco, California, USA, June 1992. 13


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

....that further optimizations on the generated code can be useful. It may be possible, through the use of an j v like 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 ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In 1992 ACM Conference on Lisp and Functional Programming. San Francisco, California (June 1992), pp. 1--10.


A Type-directed, On-line, Partial Evaluator for a Polymorphic.. - Sheard (1997)   (Correct)

.... smart primitives actually probes the actual values of the static inputs. Two of the harder problems in partial evaluation are pushing a static context over a dynamic branch such as an if or case, and handling higher order functions. The first has been handled by continuation based specialization[6, 4], and the second by a closure analysis[14, 15, 3, 5] In reification based systems, higher order functions are treated like any other function, and static contexts are handled implicitly by the use of the shift and reset control operators which abstract the current context and push it into the ....

A. Bondorf. Improving binding times without explicit cps-conversion. In 1992 ACM Conference in Lisp and Functional Programming, San Francisco, California (Lisp Pointers, vol. V, no. 1, 1992), pages 1--10. New York: ACM, 1992.


The Essence of Eta-Expansion in Partial Evaluation - Danvy, Malmkjær, Palsberg (1995)   (24 citations)  (Correct)

....1) 3 ( 2 d 0) 1) to state this code duplication explicitly by garnishing one s source programs with eta redexes (see [15, Section 10.1. 4, Item (2) and [15, Section 12.4] for two separate explanations) This solution has been consistently maintained in the later versions of Similix [3, 5], and adopted in LambdaMix [12, 15] It seems that this decision, together with the forward nature of binding time analysis [9] have created the need for binding time improvements: ffl Eta expansion prevents the dynamization of higherorder values and contexts. Delta expansion prevents the ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.


Partial Evaluation for Higher-Order Languages with State - Thiemann, Dussart (1996)   (13 citations)  (Correct)

....This is similar to the introduction of let expressions in our specializer. 7. 3 Specialization with Continuations Continuation based partial evaluation started of with Consel and Danvy s improvement of static data flow by CPS transforming the source program before specializing it [18] Bondorf [10] avoids CPS in residual programs by writing the specializer itself using continuations and liberalizing the binding time analysis in the same way as Consel and Danvy. Lawall and Danvy [48] reexpress Bondorf s specializer in direct style plus control operators to gain efficiency. Moura, Consel, and ....

....single assignment form [21] and apply analysis techniques developed for pure functional programs. This parallels Consel and Danvy s use of the CPS transformation [18] In our work we use Consel and Danvy s approach as a proof device. In practice, our specializer rephrases Bondorf s specializer [10] in the style of Consel and Danvy [18] using A normal form instead of CPS for the residual code and, of course, adding store passing. Our actual implementation generalizes Lawall and Danvy s direct style specializer. Interestingly, Hatcliff and Danvy [39] have specified and proved correct a ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Proc. 1992 ACM Conference on Lisp and Functional Programming, pages 1--10, San Francisco, California, USA, June 1992.


Eta-Expansion does the Trick - Danvy, Malmkjær, Palsberg (1996)   (2 citations)  (Correct)

....time. This context move can be achieved either by a source transformation such as the CPS transformation or by delimiting the static continuation of the specializer and relocating it inside the reconstructed expression. Both of these continuation based methods are documented in the literature [Bondorf 1992; Consel and Danvy 1991; Jones et al. 1993; Lawall and Danvy 1995] Note that this change in the specializer requires a corresponding change in the binding time analysis. 1.5 Eta Expansion Jones, Gomard, and Sestoft list eta expansion as an effective binding time improvement [Jones et al. 1993] ....

....Also like Gomard and Jones, only static terms are typed. Our partial evaluator provides a proper treatment of disjoint sums, where a dynamic sum of two static values is not approximated to be dynamic if its context of use is static. Instead, this context is duplicated during specialization. Bondorf [1992] has given a specification of this technique, but no proof of correctness. The technique is also used to specify one pass CPS transformations [Danvy and Filinski 1990] Like the CPS transformation, the specification can be specified both purely functionally or in a more direct style, using ....

Bondorf, A. 1992. Improving binding times without explicit cps-conversion. In Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, W. Clinger, Ed. LISP Pointers 5, 1 (June), 1--10.


Call-By-Name CPS-Translation as a Binding-Time Improvement - Nielsen, Sørensen (1995)   (7 citations)  (Correct)

....gives roughly if x = 0 then (v:v 7) 9 else (v:v 7) 13 which partial evaluation can transform to if x = 0 then 16 else 20. A similar effect is obtained if the partial evaluator adopts an explicit context distribution rule that moves the context 7 into the branches of the conditional. Bondorf [Bon92] shows how such manipulations can be incorporated elegantly by writing the specializer itself in CPS. Lawall and Danvy adopt a language with control operators to include such manipulations in a direct style (DS) specializer [Law94] However, these methods cannot handle dynamic, recursive data ....

....ideas between different techniques. Our results are related to previous work on partial evaluation and the CBV CPS translation. In [Con91, Dan91] it was explained how CBV CPS can improve the specialization of programs by allowing static information to propagate across dynamic contexts. Later work [Bon92, Bon94, Law94] describes an extension of standard partial evaluation called CPS specialization; CPS specialization of a program achieves the same effect as plain partial evaluation of the CBV CPS translated program. This paper explains the analogous situation for the CBN CPS translation; CBN CPS is to ....

A. Bondorf. Improving Binding Times without Explicit CPS-Conversion. In ACM Lisp and Functional Programming Conference. San Francisco, California, June 1992.


The Essence of Compiling with Continuations - Flanagan, Sabry, Duba, Felleisen (1993)   (143 citations)  (Correct)

....Essence of Compiling with Continuations Cormac Flanagan Amr Sabry Bruce F. Duba Matthias Felleisen Department of Computer Science Rice University Houston, TX 77251 1892 Abstract In order to simplify the compilation process, many compilers for higher order languages use the continuationpassing style (CPS) transformation in a first phase to generate an intermediate representation of the source program. The salient aspect of this intermediate form is that ....

....the language of continuation passing style (CPS) terms as their intermediate representation for programs [2, 14, 18, 19] This strategy apparently offers two major advantages. First, Plotkin [16] showed that the value calculus based on Supported in part by NSF grants CCR 89 17022 and CCR 91 22518 and Texas ATP grant 91 003604014. To appear in: 1993 Conference on Programming Language Design and Implementation. June 21 25, 1993 Albuquerque, New Mexico the fi value rule is an operational semantics for the source language, that the conventional full calculus is a semantics for the ....

[Article contains additional citation context not shown here]

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the 1992 ACM Conference on Lisp and Functional Programming (1992), pp. 1--10.


The Formal Relationship between Direct and Continuation-Passing.. - Sabry (1994)   (9 citations)  (Correct)

....We gratefully thank Cormac Flanagan for implementing this experiment. 119 Chapter 6 Correspondence of Data Flow Analyzers The final component of compilers that we will study is data flow analysis. The literature generally supports the idea that CPS improves the precision of data flow analysis [10, 15, 33, 34, 58, 92]. Although much of the evidence is informal, investigations by Nielson [72] and Burn Filho [33, 34] support, to some degree, the idea with formal results. 16 However, their results do not pinpoint the source of increased abstract information and do not explain the observation of many people that ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the ACM Conference on Lisp and Functional Programming (1992) 1--10. 149


Type-Directed Partial Evaluation - Danvy (1996)   (92 citations)  (Correct)

.... standpoint [29] In practice, this decision created the need for source binding time improvements in offline partial evaluation [36, Chapter 12] In contrast, binding time coercions improve binding times without explicit eta conversion , to paraphrase the title of Bondorf s LFP 92 paper [7] a property which should prove crucial for multi level binding time analyses since it eliminates the need for (unfathomed) multilevel binding time improvements [26] Thus Mix like partial evaluation [36] and type directed partial evaluation fundamentally contrast when it comes to dynamic ....

Anders Bondorf. Improving binding times without explicit cps-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.


Continuation-Based Partial Evaluation - Lawall, Danvy (1993)   (32 citations)  (Correct)

....back into the direct style world. As a consequence, the source program remains in the familiar direct style. Alternatively, this binding time improvement can be integrated into the specializer. Then the source program is completely unchanged. Bondorf develops such a specializer in two steps [3]. First, the specializer (PEd) is rewritten in CPS by hand (PEc ) to make its continuations explicitly accessible. Then, the continuations are manipulated in non standard ways (PE 0 c ) so that, in effect, static values reach their consumer statically, i.e. at partial evaluation time. ....

.... specializer PE 0 c precisely correspond to the effect of the control operators shift and reset [13, 14] and that inserting shift and reset at a few selected places (PE 0 d ) and then converting the specializer into CPS (PE 0 c ) automatically yields Similix s continuationbased specializer [3]. This makes it possible to keep both the source program and the specializer in the familiar direct style. Our approach is characterized by the following diagram: PEd PE 0 d PE 0 c manual binding time improvement (Section 2) F NaN F NaN automatic CPS transformation F NaN F NaN fflffl ....

[Article contains additional citation context not shown here]

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Clinger [4], pages 1--10.


Is Continuation-Passing Useful for Data Flow Analysis? - Sabry, Felleisen (1994)   (21 citations)  (Correct)

....10, 11, 17] Compiler writers believe that the intermediate representation based on CPS eases the production of code and facilitates optimizations. Numerous people also argue that the CPS transformation increases the precision of the data flow analysis that is necessary for advanced optimizations [2, 3, 5, 6, 16]. 1 Even though CPS programs are widely accepted as an advantageous intermediate representation, few compiler writers can pinpoint the advantages of the CPS representation over other intermediate representations. In an attempt to understand the principles of compiling with continuations and to ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the ACM Conference on Lisp and Functional Programming (1992) 1--10.


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

....code. Additionally, there is a lift construct that coerces first order values to code. Underlining indicates code generation. The superscript 3 produces fresh variables. Multiple occurrences of, say, x 3 denote the same variable. The specializer employs continuation based partial evaluation [3, 7, 38] to generate code in ANF. Whenever a piece of code denoting a serious computation (a non value) is constructed, it is wrapped in a let expression with a fresh variable which is used in place of the piece of code. This happens in the rules for primitive operations and applications. The let ....

....is also a suitable candidate for composition with a compiler in the same way as shown in this work. Partial evaluation [8,30] is an automatic program transformation that specializes programs with respect to parts of the input which are known in advance. Continuationbased partial evaluation [3, 38] is the enabling technology that makes our specializer suited to generate code in ANF. The partial evaluator that we use is the ANF version of Consel and Danvy s [7] initial approach to improve the results of partial evaluation by CPS transformation. The original application of our specializer is ....

Anders Bondorf. Improving binding-times without explicit CPS conversion. In Symp. Lisp and Functional Programming '92, pages 1--10, San Francisco, Ca., June 1992. ACM.


Foundations for Partial Evaluation of Functional Languages with.. - Hatcliff   (Correct)

....under call by name: let y 3 ( let y 1 ( tick in let y 2 ( tick in unit p5q) in succ y 3 : 6) 3. 3 Control based binding time improvements Not all programs specialize equally well, and there has been a good deal of work dealing with how programs may be rearranged to yield better specialization [2, 3, 11]. The metalanguage elegantly captures a common pattern of rearrangements (called control based binding time improvements) via the monadic laws. As illustration, consider the example at line (4) in a situation where we are deciding not to execute the tick operation at specialization time. In this ....

....evaluation. Hatcliff and Danvy [9] present a detailed formalization of partial evaluation using the computational metalanguage as an intermediate language. The correctness of binding time analysis and soundness of specialization are proven, a formalization of continuation based specialization [2, 11] is given, and it is proven that the monadic laws can capture the same effect as continuation based specialization without introducing continuations. Dussart, Hughes, and Thiemann [5] use the computational metalanguage as a foundation for extending type specialization [10] to functional languages ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.


The Essence of Eta-Expansion in Partial Evaluation - Danvy, Malmkjaer, Palsberg (1995)   (24 citations)  (Correct)

....state this code duplication explicitly by garnishing one s source programs with eta redexes (see Section 10.1. 4, Item (2) and Section 12.4 of Jones, Gomard, and Sestoft s textbook [15] for two separate explanations) This solution has been consistently maintained in the later versions of Similix [3], 5] and adopted in Lambda Mix [12] 15] It seems that this decision, together with the forward nature of binding time analysis [9] have created the need for binding time improvements: ffl Eta expansion prevents the dynamization of higher order values and contexts. Delta expansion prevents ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.


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

.... written in languages with arbitrary monadic effects (nontermination, state, exceptions, control, nondeterminism) Recently, traditional specialization based on the lambda calculus has been extended to manipulate continuations in order to improve binding times (continua tion based specialization) [3,5,9,25,37]. We show that several of these approaches do not extend straightforwardly to specializers that are sound in all monadic models. We then present a new continuation passing style (CPS) transformation on the two level computational lambda calculus that, when composed with a traditional specializer, ....

....then this annotation is a consequence of the well formedness criterion found in the textbook by Jones and others [24, sec. 10.1.4] if the header term a b of the let expression is dynamic then so is E and the entire expression. As observed by the developers of continuation based partial evaluation [3,25], fewer subterms can be annotated as static without getting stuck terms because fi 0 V has no rule to propagate the context of a dynamic let expression to its body, even though such a transformation is semantically correct. Therefore a calculus that is sound while keeping the number of stuck ....

[Article contains additional citation context not shown here]

Anders Bondorf. Improving binding-times without explicit CPS conversion. In Proc. 1992 ACM Conference on Lisp and Functional Programming, pages 1--10, San Francisco, California, USA, June 1992.


Cogen in Six Lines - Thiemann (1996)   (15 citations)  (Correct)

....problems disappear: the PGG only handles syntax trees of the language, it does not contain an interpreter, and all language features can be freely used inside the PGG as well as in the generating extensions. An important feature of offline partial evaluators is continuation based specialization [12, 5, 8, 24, 25]. It is a fully automatic binding time improving transformation that facilitates avoiding duplication of computation, thereby simplifying unfolding strategies and the implementation of partially static data. We develop multi level continuation based specialization and extend the approach to the ....

....i 1 = Jp ann i K inp i This observation has been exploited by Gluck and J rgensen [16] who present a library of functions to interpret multi level annotated programs as multi level generating extensions. We extend their approach by integrating it with continuation based partial evaluation [5, 24], once in continuation passing style and once in direct style with control operators. 4 Continuation Based Reduction Context propagation is an important binding time improvement. The standard example is (let x = d in 17) p ann 0 = JbtaK p b p gen 0 = Jred genK p ann 0 p ann 1 = Jp gen ....

[Article contains additional citation context not shown here]

A. Bondorf. Improving binding-times without explicit CPS conversion. In Proc. Conference on Lisp and Functional Programming, pages 1--10, San Francisco, CA, USA, June 1992.


Sort Inference in Action Semantics - Brown (1996)   (1 citation)  (Correct)

....compiler generation system. There have been a number of partial evaluators that have been used to generate compilers. The first partial evaluator, called MIX, was developed at the University of Copenhagen by Gomard and Jones[GJ91] More recently, both Consel[Con88,Con93] and Bondorf[Bon91,Bon92] have developed partial evaluators called SCHISM and SIMILIX respectively. SIMILIX has been applied to the partial evaluation of an action notation interpreter[BP93] and is discussed in Section 3.5.2. In the next section, we will use SCHISM to illustrate the operation of a typical partial ....

....Palsberg then considered a different approach to constructing an action semantics directed compiler generator. In conjunction with Bondorf[BP93] he developed an action compiler using the technique of partial evaluation (as explained in Section 3.3. 2) Using Bondorf s partial evaluator SIMILIX[Bon91,Bon92], they generate an action compiler by partially evaluating an action interpreter written in SCHEME. The action interpreter is systematically derived from the operational semantics of their subset of action notation, and they note that it is only about one third of the size of the action compiler ....

A. Bondorf. Improving bindings times without explicit cps-conversion. In ACM Conference on Lisp and Functional Programming, pages 1--10, 1992.


Type Specialisation for the lambda-calculus, or A New Paradigm.. - Hughes   (Correct)

....However, they cannot represent disjunctive static information as we do using dynamic sums, and they do not use the information obtained to change the representation of dynamic values. Continuation based specialisation (invented by Consel and Danvy [CD91] and further developed by Bondorf [Bon92]) also enables dynamic conditionals to yield static results, by moving the context (represented as a continuation) into the branches. A dynamic conditional in a context C C[if b then e 1 else e 2 ] is specialised instead as if b then C[e 1 ] else C[e 2 ] Obviously, if e 1 and e 2 are static, then ....

Anders Bondorf. Improving binding times without explicit cps-conversion. In 1992 ACM Conference on Lisp and Functional Programming. San Francisco, California, pages 1--10, June 1992.


Fast and Effective Procedure Inlining - Waddell, Dybvig (1997)   (7 citations)  (Correct)

....offline algorithm performs in three. They do not consider the more difficult problem of inlining functions called more than once. Bondorf uses an abstract interpreter written in continuation passing style (CPS) to improve the accuracy of binding time analysis in an off line partial evaluator [7]. The CPS structure of the interpreter enables him to move static contexts into binding forms, thereby reducing the need to CPS convert source programs as part of binding time improvement. We achieve a similar effect in direct style via our contexts, which abstract the relevant information about ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Proceedings of the 1992 ACM Conference on LISP and Functional Programming, pages 1--10, 1992.


Partial Evaluation: Principles and Perspectives - Consel, Danvy (1993)   (3 citations)  (Correct)

....a string, and then a newline. In addition, occurrences of some static data in the residual program signify that, in the source program, the static data are not processed independently of the dynamic data. This leads to strategies for restructuring source programs to improve their binding times [14, 15, 30]. Independently of the two points above, one is often surprised to find redundant tests in one s residual programs usually a tell tale of unexpected redundancies in the source programs. As such, a partial evaluator is a useful programming tool. 3 State of the Art We first review the state of ....

....on a fixed specialization strategy [16] The system handles recursive equations, customizable primitive operators and global side effects. It also includes a binding time debugger [88] Since then, it has been extended to handle higher order functions [13] and more recently partially static values [15]. Today, the new version of Similix is based on Henglein s efficient type inference for binding time analysis [60] Similix is freely available and is used as a black box in Harnett and Montenyohl s investigation of programming languages [59] Independently, Gengler and Rytz have extended the ....

A. Bondorf. Improving binding times without explicit CPS-conversion. In ACM Conference on Lisp and Functional Programming, pages 1--10, 1992.


Is Continuation-Passing Useful for Data Flow Analysis? - Amr Sabry (1994)   (21 citations)  (Correct)

....11, 12, 17] Compiler writers believe that the intermediate representation based on CPS eases the production of code and facilitates optimizations. Numerous people also argue that the CPS transformation increases the precision of the data flow analysis that is necessary for advanced optimizations [2, 3, 5, 6, 16]. 2 Even though CPS programs are widely accepted as an advantageous intermediate representation, few compiler writers can pinpoint what distinguishes CPS from other intermediate representations or precisely why it is better. In an attempt to understand the principles of compiling with ....

Bondorf, A. Improving binding times without explicit CPS-conversion. In Proceedings of the ACM Conference on Lisp and Functional Programming (1992) 1--10.


Towards Partial Evaluation of Full Scheme - Thiemann (1996)   (11 citations)  (Correct)

....the assumption so as to guarantee properties of the free variables of lambda abstractions. The rules for lifting of static base values in a dynamic context [LIFT] for the conditional [COND, COND D] and for top level function calls [CALL, CALL D] are standard for continuation based specialization [4, 22], save for the fact that [CALL D] the memoizing call) demands that the types of all its arguments are memoizable. However, the treatment of constants and operators is more liberal than usual: The standard rules for them [7] CONST STD] A K : S [OP STD] A 2E1 : S : A 2En : S A (O 2E1 ....

....Outline of the Specializer A specification of the specializer for the full language treated in this paper is bound to be bulky. Therefore, we confine the specification to a simple but illustrative subset which excludes multi argument and variadic functions. It is a continuation based specializer [4, 22] which makes the treatment of call cc explicit. In Fig. 14 we define the specializer S that maps a two level expression, an environment, and a specialization continuation to a specialization value. On the right side of the definition we use a call by value lambda with the McCarthy conditional ; ....

A. Bondorf. Improving binding-times without explicit CPS conversion. In Proc. Conference on Lisp and Functional Programming, pages 1--10, San Francisco, CA, USA, June 1992.


Generating a Compiler for a Lazy Language by Partial Evaluation - Jørgensen (1992)   (3 citations)  (Correct)

.... static data structures: This means that Similix does not perform simple reduction like: car (cons expr1 expr2) expr1 The fundamental reason for this is that it is hard to handle such transformations in a semantically safe way in a strict language (however, a solution is outlined in [Bon92] If evaluation of expr2 may not terminate then this implies that the left hand side of the rule may not terminate, but the same does not hold for the right hand side (this gets even worse if expr2 contains side effects) 3 The BAWL language We will not give a formal description of the syntax ....

Anders Bondorf. Improving binding times without explicit cps-conversion. 1992. Forthcoming.


A Tour of Schism: A Partial Evaluation System For Higher-Order.. - Consel (1993)   (55 citations)  (Correct)

....language [JGB 90, Gom92] It includes on a monovariant binding time analysis based on type inference [Gom90] This partial evaluator handles a simple language and does not deal with partially static data. This breakthrough was followed by two binding time based partial evaluators: Similix [Bon91, Bon92] and Schism [Con90] Each system is an extension of a firstorder partial evaluator [BD91, Con89] They both treat a subset of Scheme, and are based on a monovariant binding time analysis that deals with data structures. Similix handles restricted side effects on variables. Recently, Gengler and ....

....direct style excerpts of the specializer. However, in practice a specializer written in continuation passing style (CPS) performs better because it exposes more static computations and achieves part of the effect of converting a program into CPS [CD91] Similix has also adopted this strategy [Bon92]. defineType AExpr (Id Expr) Ev Expr) AType Symbol) ParLookup Symbol) ParLookupFreeze Symbol) IfReduce AExpr AExpr AExpr) IfRecons AExpr AExpr AExpr) IfFreeze AExpr AExpr AExpr) OpSelect IdValue) AbsSelect AbsId StatFreeVars LiftFreeVars) AbsFreeze AbsId) Appl InstPat PropPat SbtPat ....

A. Bondorf. Improving binding times without explicit CPS-conversion. In ACM Conference on Lisp and Functional Programming, pages 1--10, 1992.


Two Flavors of Offline Partial Evaluation - Helsen, Thiemann (1998)   (2 citations)  (Correct)

....for example, traditional systems must use a closure based representation for functions to be able to compare them. 3. 3 Continuation based reduction Continuation based reduction is a commonly used name for a contextual bindingtime improving transformation which takes place during specialization [7]. Continuations are one implementation technique for it. Its main use is the implementation of non standard reductions in two level calculi and of dynamic choice of static values [20] Both systems make use of the same technique to guarantee sound specialization in the presence of computational ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In Proc. 1992 ACM Conference on Lisp and Functional Programming, pages 1--10, San Francisco, California, USA, June 1992.


Separating Stages in the Continuation-Passing Style.. - Lawall, Danvy (1993)   (13 citations)  (Correct)

....call by value CPS transformation is a more basic CPS transformation, in some sense. 9 Issues and Future Work The CPS transformation must offer useful properties because it is used in many places: for flow analysis [32] for parallelization [19] for compiling [1, 33] and for partial evaluation [2, 6], to name a few. Yet it is not easy to pinpoint which properties CPS offers that are not already there in DS, besides the obvious: CPS terms are a subset of DS terms and thus they can be modeled and processed in a simpler way. A staged CPS transformation such as the one presented here enables one ....

....yields a CPS term. Therefore, CoreCPS enjoys the same traditional advantages as CPS and leads to naturally forward program analyses 4 [6] and simpler program analyzers [32] Accordingly, compile time analyses still yield more precise results, both intra procedurally and inter procedurally [2, 6], given CoreCPS transformed terms [28] Compile time analyses benefit from CPS to differing degrees. Binding time analysis produces better information on CPS terms because information moves across the boundaries of conditionals and procedure calls. Here sequencing order is irrelevant, so ordinary ....

Anders Bondorf. Improving binding times without explicit CPS-conversion. In LFP'92 [21], pages 1--10.


Improving CPS-Based Partial Evaluation: Writing Cogen by Hand - Bondorf, Dussart (1994)   (15 citations)  Self-citation (Bondorf)   (Correct)

....compilers that spend much of their time on coding and decoding. By writing cogen by hand, the coding problem is eliminated [HL91, BW93] Specializers written in continuation passing style (abbreviated cps ) perform better than specializers written in direct style (abbreviated ds ) [Bon92]. For example, a specializer written in cps straightforwardly handles nonunfoldable let expressions with static body. The contribution of this paper is to combine the idea of hand writing cogen with cps based specialization. We develop a handwritten cps cogen which is superior to a ds cogen for ....

....a (handwritten) cps specializer Scp . See the horizontal arrows in Figure 1. ds specializer S d Gamma ds cogen C d # # cps specializer Scp Gamma cps cogen Ccp Figure 1: Overview The cps specializer Scp can be derived from the dsspecializer S d (the leftmost vertical arrow in Figure 1) [Bon92]. We shall derive the cps cogen Ccp from the cpsspecializer Scp . In Section 4 we briefly discuss how to derive Ccp from C d instead (rightmost vertical arrow) this derivation is relevant if one is to hand write a cps cogen for a language where a handwritten ds cogen already exists. We shall ....

[Article contains additional citation context not shown here]

Anders Bondorf. Improving binding times without explicit cps-conversion. In 1992 ACM Conference on Lisp and Functional Programming. San Francisco, California. LISP Pointers V, 1, pages 1--10, June 1992.


Staging Dynamic Programming Algorithms - Kedar Swadi Kswadi (2005)   (Correct)

No context found.

Anders Bondorf. Improving binding times without explicit CPS-conversion. In 1992.


Domain-Specific Languages in Software Development - and the.. - Christensen (2003)   (1 citation)  (Correct)

No context found.

Anders Bondorf. Improving binding times without explicit CPS-conversion. In ACM Conference on Lisp and Functional Programming, pages 1-- 10. ACM Press, 1992.


Separating Stages in the Continuation-Passing Style.. - Lawall, Danvy (1993)   (13 citations)  (Correct)

No context found.

Anders Bondorf. Improving binding times without explicit CPS-conversion. In LFP'92 [21], pages 1--10.


Foundations for Partial Evaluation of Functional Programs with.. - Hatcliff (1998)   (4 citations)  (Correct)

No context found.

Anders Bondorf. Improving binding times without explicit CPS-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.


Design, Analysis and Reasoning about Tools: Abstracts from.. - Nielson, (Ed.) (1993)   (Correct)

No context found.

A. Bondorf, "Improving binding times without explicit CPS-conversion," in 1992 ACM Conference on Lisp and Functional Programming. San Francisco, California, pp. 1-10, 1992. [DART-17].


A Computational Formalization for Partial Evaluation - Hatcliff, Danvy (1997)   (23 citations)  (Correct)

No context found.

Anders Bondorf. Improving binding times without explicit cps-conversion. In William Clinger, editor, Proceedings of the 1992 ACM Conference on Lisp and Functional Programming, LISP Pointers, Vol. V, No. 1, pages 1--10, San Francisco, California, June 1992. ACM Press.

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