| Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Hudak and Jones [27], pages 223--233. |
....h 4 is abstracted away from the definition of M) E = L (M (h 4) L x = x 2) x 3) M x y = x y E can now be evaluated as depicted in figure 3.3: only one copy of h 4 then ever exists. In some sense, fully lazy evaluation guarantees that redices present in the source program are not copied [HG91] However, when looking at a program written in a high level functional language, it is a rather tricky issue to see which subcomputations are shared (when the program 30 ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## S ....
....come up rather independently in various disguises several places in the recent years: in [AT89] it is denoted partial memoization and is worked out for an eager, first order combinator language a system was implemented (guided by instructions from the user) and proved correct. in [HG91] the concept (which is there christened complete laziness) is elaborated in a higher order setting; one of the main purposes is to argue that partial evaluation for higher order languages is able to achieve strictly more sharing than full laziness their treatment being a source of ....
Carsten Kehler Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut. (Sigplan Notices, vol. 26, no. 9), 1991.
....of a pattern in a text, a partial evaluator specializes this string matcher with respect to a pattern and yields a residual program that traverses the text in linear time. The problem was first stated by Yoshihiko Futamura in 1987 [15] and since then, it has given rise to a variety of solutions [2, 3, 10, 13, 14, 16, 19, 25, 28, 29, 32, 33]. For 15 years, however, it has also been pointed out that the traditional solution only solves half of the problem. Indeed, the Knuth Morris Pratt matcher first produces a next table in time linear in the length of the pattern and then traverses the text in time linear in the length of the ....
....i.e. in some sense, as fully lazy functional programs. These programs, given e#cient memoization capabilities, are the lazy functional equivalent of the Morris Pratt and Knuth Morris Pratt imperative matchers. Holst and Gomard as well as Kaneko and Takeichi made a similar observation [19, 22]. In particular, these programs work in linear time. Finally, we would like to point out that the Knuth Morris Pratt matcher is not an end in itself. Fifteen years ago, this example was used to show that partial evaluators needed considerable power (be it polyvariant program point 10 ....
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Hudak and Jones [20], pages 223--233.
....(else (loop (cdr values) index 1) Rewriting program fragments into continuation passing style is a general way to allow static information to escape out of a dynamic conditional expression. Introducing continuation passing style for improving binding times is discussed in [Dan91] and [HG91], and the idea is put into a more general framework in [CD91] See also [Bon92] 7.2.3 Specialization points and dynamic choice of static values There are two user controlled features regarding specialization memoization points in Similix (controlling memoization manually is quite subtle, so it ....
Carsten Kehler Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'91, Yale University, New Haven, Connecticut. SIGPLAN Notices, volume 26, 9, pages 223-233, ACM Press, June 1991.
....a dynamic control flow. Data flow and control flow binding time improvements respectively amount to improve the static data flow and the static control flow of a source program. The data flow aspects have been recently clarified [17, 18] but the control flow aspects still remain a research topic [6, 8, 10, 39, 45]. The program calculus for Moggi s computational metalanguage includes monadic laws. Let us show how a partial evaluator applying monadic laws to restructure source programs captures the essence of control based bindingtime improvements. For example, the program f : x : 2) f 1) 3 can ....
.... prevented a class of loss of static information across procedures, and they provided a syntactic characterization of this class [10] Holst and Gomard observed that part of the same effect (intra procedural and insensitive to call unfolding) could be obtained by flattening each source procedure [39]. Bondorf, Danvy, and Lawall observed that a further part of the same effect (accounting for call unfolding, but not crossing specialization points) could be obtained by specific control operations in the specializer itself [6, 45] rather than by CPS transforming the program before partial ....
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Paul Hudak and Neil D. Jones, editors, Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation, SIGPLAN Notices, Vol. 26, No 9, pages 223--233, New Haven, Connecticut, June 1991. ACM Press.
....have been carried out. Jones et al. 12] and Amtoft [2] present a modified 32 version of a matcher that standard partial evaluation can specialize into an e# cient matcher. Srensen et al. 21] presents a version that is basically equivalent to the variant of Jones et al. Holst and Gomard [10] and Kaneko and Takeichi [14] show how to generate e#cient matchers with variants of a specialization scheme called fully lazy evaluation. Other work on applying partial evaluation to string matching is mainly concerned with identifying the additional features that must be added to the standard ....
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Hudak and Jones [11], pages 62--71.
.... 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 flattening is known to be part of the CPS transformation [9] What had not been shown before, however, and what we do address here, is whether such improvements worsen binding times elsewhere in a source program. 6. CONCLUSION AND ISSUES Observing that program analyses ....
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Paul Hudak and Neil D. Jones, editors, Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, SIGPLAN Notices, Vol. 26, No 9, pages 223--233, New Haven, Connecticut, June 1991. ACM Press.
.... thesis [9, 10] It is now a standard technique that is taught in introductory textbooks [1] The partial evaluation community also exploits this style and a set of transformations to improve the staging properties to specialize programs and generate compilers efficiently [14] Holst and Gomard [13] show that the same style and very similar transformations enable a lazy functional programming language to achieve similar specialization effects as partial evaluators. In contrast, we are considering staging for strict functional programs. One of our sources of inspiration is Augustsson s ....
Carsten Kehler Holst and Carsten Krough Gomard. Partial evaluation is fuller laziness. In Paul Hudak and Neil D. Jones, editors, Proc. ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation PEPM '91, pages 223--233, New Haven, CT, June 1991. ACM. SIGPLAN Notices 26(9).
....program fragments into continuation passing style is a general way to allow static information to escape out of a dynamic conditional expression. Introducing continuation 54 7 HOW TO OBTAIN GOOD RESULTS WHEN USING SIMILIX passing style for improving binding times is discussed in [Dan91] and [HG91], and the idea is put into a more general framework in [CD91] See also [Bon92] 7.2.3 Specialization points and dynamic choice of static values There are two user controlled features regarding specialization memoization points in Similix (controlling memoization manually is quite subtle, so it ....
Carsten Kehler Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Symposium on Partial Evaluation and Semantics-Based Program Manipulation, PEPM'91, Yale University, New Haven, Connecticut. SIGPLAN Notices, volume 26, 9, pages 223--233, ACM Press, June 1991. REFERENCES 77
....a dynamic control flow. Data flow and control flow binding time improvements respectively amount to improve the static data flow and the static control flow of a source program. The data flow aspects have been recently clarified [17, 18] but the control flow aspects still remain a research topic [6, 8, 10, 39, 45]. The program calculus for Moggi s computational metalanguage includes monadic laws. Let us show how a partial evaluator applying monadic laws to restructure source programs captures the essence of control based bindingtime improvements. For example, the program f : x : 2) f 1) 3 can ....
.... prevented a class of loss of static information across procedures, and they provided a syntactic characterization of this class [10] Holst and Gomard observed that part of the same effect (intra procedural and insensitive to call unfolding) could be obtained by flattening each source procedure [39]. Bondorf, Danvy, and Lawall observed that a further part of the same effect (accounting for call unfolding, but not crossing specialization points) could be obtained by specific control operations in the specializer itself [6, 45] rather than by CPS transforming the program before partial ....
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Paul Hudak and Neil D. Jones, editors, Proceedings of the ACM SIGPLAN Symposium on Partial Evaluation and SemanticsBased Program Manipulation, SIGPLAN Notices, Vol. 26, No 9, pages 223--233, New Haven, Connecticut, June 1991. ACM Press.
....method of partial evaluation used. The rewritings are semantics preserving transformations that aim to make more parts of a program static such that the partial evaluator can do more work, hence the name binding time improvements . For further discussions of binding time improvements see [HH91] HG91] or [Bon91b] Here is a list of the important binding time improvements we have used: ffl Using static information about dynamic data. ffl Transformations into continuation passing style. ffl Simulating partially static data structures to achieve variable splitting [Ses85] ffl Removal of ....
Carsten Kehler Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Symposium on Partial Evaluation and SemanticsBased Program Manipulation, Yale University, New Haven, Connecticut. SIGPLAN Notices, volume 26, 9, pages 223--233, ACM Press, June 1991.
No context found.
Carsten K. Holst and Carsten K. Gomard. Partial evaluation is fuller laziness. In Hudak and Jones [27], pages 223--233.
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