## Occam's Razor in Metacomputation: the Notion of a Perfect Process Tree (1993)

Citations: | 63 - 14 self |

### BibTeX

@INPROCEEDINGS{Glück93occam'srazor,

author = {Robert Glück and Andrei V. Klimov},

title = {Occam's Razor in Metacomputation: the Notion of a Perfect Process Tree},

booktitle = {},

year = {1993},

pages = {112--123},

publisher = {Springer-Verlag}

}

### Years of Citing Articles

### OpenURL

### Abstract

We introduce the notion of a perfect process tree as a model for the full propagation of in forma tion in metacomputation. Starting with constant propagation we construct step-by-step the driving mechanism used in supercompilation which ensures the perfect propagation of information. The concept of a simple supercompiler based on perfect driving coupled with a simple folding strategy is explained. As an example we demonstrate that specializing a naive pattern matcher with respect to a fixed pattern obtains the efficiency of a matcher generated by the Knuth, Morris & Pratt al gorithm.

### Citations

650 | Partial Evaluation and Automatic Program Generation - Jones, Gomard, et al. - 1993 |

649 |
Fast pattern matching in strings
- Morris, Pratt
- 1977
(Show Context)
Citation Context ...(Fig. 2) with respect to a fixed pattern we show that perfect driving coupled with a simple folding strategy obtains the efficiency of a matcher generated by the Knuth, Morris & Pratt (KMP) algorithm =-=[15]-=-. This effect is achieved without the need for an ‘insightful reprogramming’ of the naive matcher as necessary for partial evaluation [5,11]. The complexity of the specialized algorithm is O (n), wher... |

118 | Danvy O., Automatic autoprojection of recursive equations with global variables and abstract data types
- Bondorf
(Show Context)
Citation Context ...ows: 1) Dynamic conditionals are considered for folding. 2) Two configurations represent the same set of states. The method of dynamic conditionals is a well-known technique in program specialization =-=[22,3]-=-: only those program points are considered for folding which introduce a branching (the conditional can not be decided, it is ‘dynamic’). When the descriptions of two configurations are identical (i.e... |

117 |
Mix: a self-applicable partial evaluator for experiments in compiler generation
- Jones, Sestoft, et al.
- 1989
(Show Context)
Citation Context ...on cntr returns BOTH and an environment for each branch). This implements what is known as constant propagation , and corresponds to first-order partial evaluators based on constant propagation (e.g. =-=[12]-=-). Remark. It was noticed [12] that the test const?sdoes not require the values proper and may be approximated in a separate pre-processing phase, called binding-time analysis . This granted the first... |

68 |
Binding time analysis for higher order untyped functional languages
- Consel
- 1990
(Show Context)
Citation Context ...Partially Static Structures A simple extension is the propagation of partially static structures in driving. This corresponds to first-order partial evaluators using partially static structures (e.g. =-=[16,10,2,4]-=-). This extension completes the construction of the function dev (in the following we will refine the handling of contractions during driving). Configuration. The description of a configuration is ref... |

48 |
Automatic program specialization: a re-examination from basic principles
- Jones
- 1988
(Show Context)
Citation Context ...Partially Static Structures A simple extension is the propagation of partially static structures in driving. This corresponds to first-order partial evaluators using partially static structures (e.g. =-=[16,10,2,4]-=-). This extension completes the construction of the function dev (in the following we will refine the handling of contractions during driving). Configuration. The description of a configuration is ref... |

45 |
Partially static structures in a self-applicable partial evaluator
- Mogensen
- 1988
(Show Context)
Citation Context ...Partially Static Structures A simple extension is the propagation of partially static structures in driving. This corresponds to first-order partial evaluators using partially static structures (e.g. =-=[16,10,2,4]-=-). This extension completes the construction of the function dev (in the following we will refine the handling of contractions during driving). Configuration. The description of a configuration is ref... |

43 | Danvy O., Partial evaluation of pattern matching in strings
- Consel
- 1989
(Show Context)
Citation Context ...atcher generated by the Knuth, Morris & Pratt (KMP) algorithm [15]. This effect is achieved without the need for an ‘insightful reprogramming’ of the naive matcher as necessary for partial evaluation =-=[5,11]-=-. The complexity of the specialized algorithm is O (n), where n is the length of the string. The naive algorithm has complexity O(m.n), where msis the length of the pattern. devs:: Tree → Cenv → Tree ... |

34 |
A self-applicable partial evaluator for term rewriting systems
- Bondorf
- 1989
(Show Context)
Citation Context |

16 |
Towards multiple self-application
- Glück
- 1991
(Show Context)
Citation Context ...ing language, called Refal [24]. Applications of supercompilation include, among others, program specialization, program inversion and theorem proving. Other related aspects have been investigated in =-=[1,7,8,13,14,17,18,26]-=-. The notion of perfect process graphs and perfect driving were introduced in [22,23]. The language S-Graph is closely related to Turchin’s Refal graphs [25]. But due to SGraph’s simpler data structur... |

15 |
The language Refal, the theory of compilation and metasystem analysis
- Turchin
- 1980
(Show Context)
Citation Context .... In the following we refer to process graphs when we mean correct process graphs. Graph Developers.sHow can one construct a process graph for a program and an initial configuration? Supercompilation =-=[22,24]-=- uses two methods for graph development: drivingsand folding . Driving . This is a general method for constructing a (potentially infinite) processstrees(a process graph that happens to be a tree) by ... |

14 |
Application of metasystem transition to function inversion and transformation
- Glück, Turchin
(Show Context)
Citation Context ...ry predicates, assuming the use of a theorem prover. Disunification in GPC was considered in [19]. It is not surprising, that the same optimal pattern matcher can be achieved by a Refal supercompiler =-=[9]-=-. Note that we used only a small part of the supercompilation methodology: perfect driving for a language with tree-structured data coupled with a simple folding strategy. 8 Conclusion We introduced a... |

11 |
Equivalent transformations of recursive functions defined in Refal. In: Teoria Jazykov i Metody
- Turchin
- 1972
(Show Context)
Citation Context ...onstructing a (potentially infinite) processstrees(a process graph that happens to be a tree) by step-wise exploring all possible computations of a program p starting from an initial configuration cis=-=[20,22,24]-=-. At any point during driving one has a perhaps incomplete process tree and a way to extend the process tree by adding a new node. Driving follows all possible computa tion processes starting from an ... |

8 |
Semantic definitions in Refal and automatic production of compilers
- Turchin
(Show Context)
Citation Context ...his is extra work. Thus infeasible branches introduce additional tests and thereby degrade the efficiency of feasible walks. The more in terpretive an algorithm is, the less perfect its process graph =-=[23]-=-. Example. Consider the following fragment of a graph (or the program represented by it — we will not distinguish here). The branches 'Bsand 'C are in feasible, and the tests EQA?2 and EQA?3 are redun... |

6 |
Metacomputation and program testing
- Abramov
- 1993
(Show Context)
Citation Context ...ing language, called Refal [24]. Applications of supercompilation include, among others, program specialization, program inversion and theorem proving. Other related aspects have been investigated in =-=[1,7,8,13,14,17,18,26]-=-. The notion of perfect process graphs and perfect driving were introduced in [22,23]. The language S-Graph is closely related to Turchin’s Refal graphs [25]. But due to SGraph’s simpler data structur... |

6 |
Takano A., Essence of generalized partial computation
- Futamura, Nogi
- 1991
(Show Context)
Citation Context ...om performing such subtle tasks. Generalized Partial Computation (GPC), another principle for program specialization based on partial evaluation and theorem proving, achieves the same optimal version =-=[6]-=-. In its essence GPC is related to driving, but differs in the propagation of arbitrary predicates, assuming the use of a theorem prover. Disunification in GPC was considered in [19]. It is not surpri... |

5 |
Generalized partial computation using disunification to solve constraints
- Takano
- 1993
(Show Context)
Citation Context ...me optimal version [6]. In its essence GPC is related to driving, but differs in the propagation of arbitrary predicates, assuming the use of a theorem prover. Disunification in GPC was considered in =-=[19]-=-. It is not surprising, that the same optimal pattern matcher can be achieved by a Refal supercompiler [9]. Note that we used only a small part of the supercompilation methodology: perfect driving for... |

3 | Towards multiple self-application - Glck - 1991 |

3 |
Projections for knowledge based systems
- Glück
- 1992
(Show Context)
Citation Context ...ing language, called Refal [24]. Applications of supercompilation include, among others, program specialization, program inversion and theorem proving. Other related aspects have been investigated in =-=[1,7,8,13,14,17,18,26]-=-. The notion of perfect process graphs and perfect driving were introduced in [22,23]. The language S-Graph is closely related to Turchin’s Refal graphs [25]. But due to SGraph’s simpler data structur... |

2 |
A metaevaluator for the language Refal. Basic concepts and examples
- Romanenko
- 1987
(Show Context)
Citation Context |

2 |
Equivalent transformations of Refal programs. In: Avtomatizirovannaja Sistema upravlenija stroitel'stvom
- Turchin
- 1974
(Show Context)
Citation Context ...F5 [stail-6])s(CALL F1 [stail-6])))s'FAILURE)) Fig. 10. KMP-like residual program for the pattern AAB. 7 Related Work The principles of driving were first formulated in the early seventies by Turchin =-=[20,21]-=- and further developed in the eighties [22,24]. From its very inception, supercompilation has been tied to a specific programming language, called Refal [24]. Applications of supercompilation include,... |

2 |
Sestoft P., Partial Evaluation and Automatic Program Generation
- Jones, Gomard
- 1993
(Show Context)
Citation Context ...atcher generated by the Knuth, Morris & Pratt (KMP) algorithm [15]. This effect is achieved without the need for an ‘insightful reprogramming’ of the naive matcher as necessary for partial evaluation =-=[5,11]-=-. The complexity of the specialized algorithm is O (n), where n is the length of the string. The naive algorithm has complexity O(m.n), where msis the length of the pattern. devs:: Tree → Cenv → Tree ... |

1 | Projections for knowledge based systems - Gl��ck - 1992 |

1 |
Dynamic specialization in extended functional language with monotone objects
- unknown authors
- 1991
(Show Context)
Citation Context |

1 |
Inversion and metacomputation
- Yu
- 1991
(Show Context)
Citation Context |

1 |
Driving for Refal-4 programs. Keldysh Institute of Applied Mathemat - ics
- Romanenko
- 1987
(Show Context)
Citation Context |