| N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994. |
....2 Abstract Interpretation of Flowchart Programs The principles of abstract interpretation were established for flowchart programs by Cousot and Cousot [11] and most of the material in this section is a review of their work. Precedents for the use of traces as seen in this section are found in [16, 32, 31]. Figure 1 shows a flowchart program that uses a storage vector with a single variable, x. A state is a storage vector, program point pair, v pp, and state transitions are listed in AbsVal = fe; og v x : x div2 e x : succ x v x : x div2 o x : succ x; Abstract ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, N. Hagiya, and S. Masahiko, editors, Logic, Language, and Computation: a Festscrift in Honor of Satoru Takasu, pages 206--224. Lecture Notes in Computer Science 792, SpringerVerlag, 1994.
.... in particular driving, and is based on perfect process trees [12] Connections between inverse computation and logic programming are discussed in [1, 4] partial deduction and driving were formally related in [14] An abstract framework for describing partial evaluation and supercompilation is [19]. A comprehensive bibliography on supercompilation can be found in [15] To conclude, there exists only a small number of papers addressing inverse computation in the context of functional languages. With the exception of [26, 4] we know of no paper addressing inverse computation in imperative ....
N. D. Jones. The essence of program transformation by partial evaluation and driving. In N. D. Jones et al. (eds.), Logic, Language and Computation. LNCS 792, 206--224. Springer-Verlag, 1994.
....the bad states violating the specification, work backwards and show that no initial state leads to such a bad state. Abstraction Based Partial Deduction The relationship between abstract interpretation and program specialisation has been observed and several formal frameworks have been developed [6, 10, 9]. Abstraction based partial deduction (APD) combines these two approaches and can thereby solve specialisation and analysis tasks which are outside the reach of either method alone [12, 11] It was shown that program specialisation combined with abstract interpretation can vastly improve the power ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, M. Hagiya, M. Sato (eds.) Logic, Language and Computation, LNCS 792, 206--224. Springer-Verlag, 1994.
....Unfortunately, the most sophisticated specialization systems [1, 8, 30] specialize programs only with respect to concrete values and not abstractions. Many researchers have recognized the utility of abstraction based specialization (ABPS) In particular, Consel and Khoo [9] and Jones [22] have developed formal frameworks to support the idea. Despite these significant efforts, the technology has not been incorporated into full fledged implementations. It seems that there have not been enough interesting applications to justify the cost of extending systems to include ABPS. 1.1 ....
....(as required by our tools) using abstraction based program specialization. This formal presentation provides the foundation for a full scale ABPS system currently being implementing for a large subset of Ada. 1. 2 Related work Since we rely heavily on ideas of Consel and Khoo [9] and Jones [22], we briefly summarize their work below, and describe how we modify and extend it to satisfy our requirements. Consel and Khoo [9] give a framework for abstraction based partial evaluation of first order functional programs. The system is parameterized on algebras that define the meaning of ....
[Article contains additional citation context not shown here]
Neil D. Jones. The essence of program transformation by partial evaluation and driving. In Masahiko Sato Neil D. Jones, Masami Hagiya, editor, Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, pages 206--224. Springer-Verlag, April 1994.
....developed. For instance, 39] presents a general methodology which can be seen as a common pattern of reasoning when performing program specialization in functional as well as logic programming and also explains the various correspondences which can be established among different techniques. In [29], an abstract framework is developed to describe program specialization. Traditional partial evaluation [30] and Turchin s driving transformation [43] are shown as instances of the new framework. Recently, a unified framework for the partial evaluation of languages which integrate features from ....
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994.
....ensures termination of program transformers; rather, we are concerned with a general method to prove that such techniques are correct. This work is part of a larger effort to understand the relation between deforestation, supercompilation, partial deduction, and other program transformers better [17, 18, 20, 36, 37] and to develop a unifying theory for such transformers. 2 Trees in Transformation We now proceed to show how program transformers may be viewed as maps that manipulate certain trees, following Pettorossi and Proietti [30] Example 1. Consider a functional program appending two lists. a( vs) ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language, and Computation, volume 792 of Lecture Notes in Computer Science, pages 206--224. Springer-Verlag, 1994. Festschrift in honor of S.Takasu.
....argument contains a defined function symbol. Our method is also useful for non lazy narrowing strategies, such as innermost narrowing. Also in this case the resulting program must be constructor based. The extension of our method is easy [1] Our method passes the so called Knuth Morris Pratt test [14, 22], i.e. the specialization of a naive pattern matcher w.r.t. a fixed pattern essentially obtains the efficiency of the Knuth, Morris and Pratt matching algorithm [26] We show that the inclusion of a normalization process between narrowing steps not only saves time and space but also yields a ....
.... , and subsequently evaluating new terms according to our method, gives the program : After the post processing renaming transformation, the specialized program is: We finally illustrate the power of the call by name PE procedure on the matching program of [26] This example is discussed by [22, 37, 38], among others. A standard example in the literature on PE is the derivation of an efficient string matcher by PE of a (more or less) naive pattern matcher w.r.t. a given pattern [14, 38] The source program listed below checks whether a string pattern occurs within another string by iteratively ....
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, , pages 206--224. Springer LNCS 792, 1994.
....in the previous section, the ones dealing with partial deduction address local termination, and so do not generally ensure termination. The present work belongs to a line of work which aims at a better understanding of supercompilation and its relation to other program transformations; e.g. [6, 7, 8, 10, 18, 19, 15]. Acknowledgements The authors are indebted to V.F. Turchin for sharing with us his many insights and to B. Martens for helpful discussions. Thanks to M. Alpuente for insightful comments on a previous draft, to the anonymous referees for constructive feedback, and to the TOPPS group at DIKU for ....
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. N.D. Jones, et al. (eds.), Logic, Language and Computation. LNCS 792, 206-224, Springer-Verlag 1994.
....wsg (y : ys) y : f ys vs ws g z zs ws 4 = z : zs f[ ws; y : ys) y : g ys wsg) Fig. 20. Improved double append in CBN CPS and DS 9 Related Work Our paper is a step in the current efforts at DIKU to better understand the relationship between different transformation techniques [Sor94, Glu94, Glu94a, Jon94]. Such efforts facilitate exchange of 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 ....
N. D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N. D. Jones and M. Hagiya and M. Sato (eds.), Logic, Language and Computation. LNCS Vol. 792, 206-224, Springer-Verlag 1994.
.... a comprehensive methodology summarized as supercompilation [Tur80a, Tur86] It strictly contains partial evaluation as well as Wadler s more recent invention deforestation [Wad90] but driving and supercompilation have taken longer to be recognized in the context of program specialization, e.g. [Jon94]. However, the functional language used in this paper does not allow function calls inside constructor expression, and hence deforestation as known in functional languages is not applicable. We chose this simplification of the functional language since logic languages do not allow predicates ....
....of the constants from the original program are gone in the residual functional program, but remain in the residual logic program. In partial deduction one needs an extra renaming phase with structure specialization to do this, see [Kom92, Gal93] A similar approach for specialization is taken in [Jon94]. Proietti and Pettorossi [Pro93] argue that renaming should be incorporated into a partial deducer directly, and that partial deduction be carried out in a unfold fold transformation (of logic programs) style which is similar to our driving. 6 Applications In this section we consider two ....
N. D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N. D. Jones and M. Hagiya and M. Sato (eds.), Logic, Language and Computation. Lecture Notes in Computer Science, Vol. 792, 206-224, Springer-Verlag 1994.
....Fig. 14. Information propagation. the outcome of tests. In constraint based propagation the transformer explicitly maintains sets of constraints recording previous tests (restrictions [84, 34] Depending on the programming language other abstract properties may be propagated, e.g. [72, 15, 77, 43]. Evaluation strategy. One can view a program transformer as an extension of an interpreter, e.g. 34, 31, 61, 74] This implies that the transformer has an evaluation strategy that it inherits from the underlying interpreter. More concretely, the transformer processes nested function calls in ....
....be any logic system, for example predicate logic, and may be undecidable for certain logic formulas. In this view, positive supercompilation can be seen as propagating structural predicates that can always be resolved. Abstract interpretation can be used to propagate additional information, e.g. [43, 64]. These observations are summarized in Fig. 15. For a more detailed discussion on information propagation see [34, 75, 38, 74, 76] and for more on evaluation strategies see [13, 61] These papers also give examples of optimizations that require the transformer to use a specific evaluation ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language, and Computation, vol. 792 of LNCS, pp. 206--224. Springer-Verlag, 1994. Festschrift in honor of S.Takasu.
....In online systems evaluation of expressions is decided on the fly as it is done in APROPOS . As noted in [CD93] one can also combine online and offline methods to get the best of both. We have also looked into self application of APROPOS , but do not yet have any interesting results. As noted in [Jon94], one might need a preprocessing phase rather different from binding time analysis. In order to achieve this, one has to find general, but powerful rules when to specialize or evaluate a goal. 5 Conclusion We used techniques found in partial evaluators to implement a supercompiler for Prolog. We ....
N. D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In Logic, Language and Computation, volume 792. Springer LNCS, 1994.
.... by term rewriting on one dimensional representations destroy the beauty and many of the advantages of the big step framework [15, 23] In this paper, we develop an on line partial evaluator that lets a big step semantics be evaluated in two dimensional, small step style, in the spirit of Jones [16] and Stoughton [29] Also, we extend big step semantics so that data structure values (e.g. closures and Computing and Information Sciences Department, 234 Nichols Hall, Manhattan, KS 66506 USA. schmidt cis.ksu.edu. Phone: 1 913 532 6350; Fax: 1 913 532 7353. Ibraheem is supported by a ....
....standard examples. Our motivations for these efforts are two fold: ffl We desire a semantically sound and general technique for exposing the semantic control flow graph of a program, much like that employed by Gallagher and Lafave [11] so that static analysis (especially abstract interpretation [4, 5, 16, 24] and model checking [2, 6, 9] can be conducted on top of the resulting graph. ffl We desire a foolproof methodology for incremental static analysis, along the lines of Codish, Debray, and Giacobazzi [3] where incomplete or modular programs can be analyzed as best as possible, and the ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In N.D. Jones, N. Hagiya, and S. Masahiko, editors, Logic, Language, and Computation: a Festscrift in Honor of Satoru Takasu, pages 206--224. Lecture Notes in Computer Science 792, Springer-Verlag, 1994.
....by enumerating all reachable transition system states while checking that the specification is satisfied at each state. While this method of verification by exhaustive checking is exponential in the worse case, it has been used to effectively validate many applications including network protocols [13, 20, 23], graphical user interfaces [9] railway interlocking systems [6] and industrial control systems [4, 11] Applying finite state verification to software systems is a challenging problem since the state space for a typical software system is far larger (conceptually, it is infinite) and less ....
....small finite state spaces. For example, in a communication system the data in transit can be abstracted to a single point domain when verifying properties of the protocol control logic thereby simplifying the transition system. To date, most finite state verification tools, such as SPIN [13], SMV [19] and INCA [3] have not been targeted at mainstream programming languages, although FLAVERS [10] processes Ada source programs. In addition, these FSV have not dealt with some fundamental program structures that are used widely in practice. For example, most tools cannot handle ....
Neil D. Jones. The essence of program transformation by partial evaluation and driving. In Masahiko Sato Neil D. Jones, Masami Hagiya, editor, Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, pages 206--224. Springer-Verlag, April 1994.
....PLAN P UDP TCP IP Application Component IP PLAN P IP PLAN P Standard Router UDP TCP Figure 1. PLAN P software architecture Partial evaluation is an automatic program transformation that, when applied to interpreters, transforms a language interpreter into a program generator for that language [13]. Traditionally, this program generator generates programs in source code form. Consel and Noel have developed a technique, called run time specialization, which permits partial evaluation to be performed at run time [9] When applied to interpreters, the result is a program generator that ....
N.D. Jones. The essence of program transformation by partial evaluation and driving. In Masahiko Sato Neil D. Jones, Masami Hagiya, editor, Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, pages 206--224. Springer-Verlag, April 1994.
....used varies across tools. For example, in addition to constant propagation, the FLAVERS system [Dwyer and Clarke 1994] picks up information as it moves across conditional statements in a manner analogous to supercompilation (a particularly strong form of partial evaluation) Gluck and Klimov 1993; Jones 1994; S rensen et al. 1994; Turchin 1986] Thus, using partial evaluation based on both concrete and abstract properties (e.g. Consel and Khoo 1993; Jones 1994; Jones 1997] as a preprocessing step allows one to increase the power of analyses without modifying existing FSV tools. 2.2 Bounded ....
.... conditional statements in a manner analogous to supercompilation (a particularly strong form of partial evaluation) Gluck and Klimov 1993; Jones 1994; S rensen et al. 1994; Turchin 1986] Thus, using partial evaluation based on both concrete and abstract properties (e.g. Consel and Khoo 1993; Jones 1994; Jones 1997] as a preprocessing step allows one to increase the power of analyses without modifying existing FSV tools. 2.2 Bounded Static Variation In the absence of information on what might be an effective abstraction of a program variable s value domain, many FSV techniques choose a safe ....
Jones, N. D. 1994. The essence of program transformation by partial evaluation and driving. In M. S. Neil D. Jones, Masami Hagiya Ed., Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, pp. 206--224. Springer-Verlag.
....could achieve degrees of specialization beyond what could be done by projections alone. It became clear that what was happening was a kind of online abstract interpretation of the relational rather than independent attribute sort, and this was formulated in language independent terms in [22]. Code size explosion. PE sometimes gives rise to specialized programs too large to be of practical use (though it rarely happens when compiling by specalizing interpreters) Insight has been gained into this problem, and parts have been solved, e.g. by the code duplication analysis which is now ....
N. D. Jones,The Essence of Program Transformation by Partial Evaluation and Driving, in Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, edited by Masahiko Sato N. D. Jones, Masami Hagiya, pages 206-224, S-V, April 1994.
....2 The formulation of our two components is inspired by Wadler s formulation of deforestation (Wadler, 1990) This choice makes it easy to explain the essence of driving and its relation to techniques used in other transformers, e.g. deforestation. The paper is based on (S rensen, Gluck and Jones, 1994) and (S rensen, 1994a) It belongs to a line of work which aims at a better understanding of supercompilation and its relation to other program transformers (Gluck and Klimov, 1993; Jones, 1994; Gluck and J rgensen, 1994; Gluck and S rensen, 1994; Nielsen and S rensen, 1995) The remainder of the ....
....techniques used in other transformers, e.g. deforestation. The paper is based on (S rensen, Gluck and Jones, 1994) and (S rensen, 1994a) It belongs to a line of work which aims at a better understanding of supercompilation and its relation to other program transformers (Gluck and Klimov, 1993; Jones, 1994; Gluck and J rgensen, 1994; Gluck and S rensen, 1994; Nielsen and S rensen, 1995) The remainder of the paper is organized as follows. In Section 2 the object language is presented. In Section 3 we introduce the KMP test which allows us to assess the amount of information that a program ....
Jones, N.D. 1994. The essence of program transformation by partial evaluation and driving.
No context found.
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994.
No context found.
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994.
No context found.
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In N.D. Jones, M. Hagiya, and M. Sato, editors, Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994.
No context found.
N.D. Jones. The Essence of Program Transformation by Partial Evaluation and Driving. In Logic, Language and Computation, pages 206--224. Springer LNCS 792, 1994.
No context found.
Neil D. Jones. The essence of program transformation by partial evaluation and driving. In Masahiko Sato Neil D. Jones, Masami Hagiya, editor, Logic, Language and Computation, a Festschrift in honor of Satoru Takasu, pages 206--224. Springer-Verlag, April 1994.
No context found.
N. D. Jones. The essence of program transformation by partial evaluation and driving. In M. S. Neil D. Jones, Masami Hagiya, editor, Logic, Language and Computation, LNCS 792, pages 206-224. Springer-Verlag, 1994.
No context found.
Jones, Neil. The essence of program transformation by partial evaluation and driving. In: Proc. of The Atlantique Worlshop on Semantics Based Program Manipulation, N.Jones and C.Talcott Ed. Copenhagen University, pp.134-147, 1994.
First 50 documents
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