Partial-evaluation techniques for concurrent programs

Author(s):  
Mihnea Marinescu ◽  
Benjamin Goldberg
1997 ◽  
Vol 32 (12) ◽  
pp. 47-62 ◽  
Author(s):  
Mihnea Marinescu ◽  
Benjamin Goldberg

2009 ◽  
Vol 160 (2) ◽  
pp. 162-181 ◽  
Author(s):  
Pascual Julián ◽  
Ginés Moreno ◽  
Jaime Penabad

10.29007/rfbk ◽  
2018 ◽  
Author(s):  
Kenichi Asai ◽  
Yukiyoshi Kameyama

Partial evaluation and staging are two of the well-known symbolicmanipulation techniques of programs which generate efficientspecialized code. On one hand, partial evaluation provides us with anautomatic means to separate a program into two (or more) stages butits behavior is perceived as hard to control. On the other hand,staging (or staged calculus) requires us to manually separate aprogram but with full control over its behavior. In the previouswork, the first author introduced a framework to relate the twotechniques, giving a unified view to the two techniques. In thispaper, we extend the framework to handle the cross-stage persistence(CSP) and show that the 2-level staging annotation obtained by theautomatic separation is the best staging annotation in a system whereCSP is allowed for base-type values only. In the presence of CSP forhigher-type values, on the other hand, there is no single annotationthat is better than all the other annotations.


2000 ◽  
Vol 7 (31) ◽  
Author(s):  
Bernd Grobauer ◽  
Julia L. Lawall

Specializing string matchers is a canonical example of partial evaluation.<br /> A naive implementation of a string matcher repeatedly matches a<br />pattern against every substring of the data string; this operation should<br />intuitively benefit from specializing the matcher with respect to the pattern.<br /> In practice, however, producing an efficient implementation by <br />performing this specialization using standard partial-evaluation techniques<br />has been found to require non-trivial binding-time improvements. Starting<br /> with a naive matcher, we thus present a derivation of a binding-time<br />improved string matcher. We prove its correctness and show that specialization<br /> with respect to a pattern yields a matcher with code size linear<br />in the length of the pattern and running time linear in the length of its<br />input. We then consider several variants of matchers that specialize well,<br />amongst them the first such matcher presented in the literature, and we<br />demonstrate how variants can be derived from each other systematically.


Sign in / Sign up

Export Citation Format

Share Document