Jones N.D.Partial evaluation and automatic program generation.1999
.pdfBibliography 401
[199]F. Nielson, `A formal type system for comparing partial evaluators', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 349{384, Amsterdam: North-Holland, 1988.
[200]F. Nielson, `Two-level semantics and abstract interpretation', Theoretical Computer Science { Fundamental Studies, 69:117{242, 1989.
[201]F. Nielson and H.R. Nielson, Two-Level Functional Languages, volume 34 of Tracts in Theoretical Computer Science, Cambridge: Cambridge University Press, 1992.
[202]H.R. Nielson and F. Nielson, `Automatic binding time analysis for a typed -calculus',
Science of Computer Programming, 10:139{176, 1988.
[203]H.R. Nielson and F. Nielson, `Transformations on higher-order functions', in Fourth International Conference on Functional Programming Languages and Computer Architecture, London, England, September 1989, pp. 129{143, Reading, MA: Addison-Wesley, 1989.
[204]H.R. Nielson and F. Nielson, `Using transformation in the implementation of higher-order functions', Journal of Functional Programming, 1(4):459{494, 1991.
[205]V. Nirkhe and W. Pugh, `Partial evaluation and high-level imperative programming languages with applications in hard real-time systems', in Nineteenth ACM Symposium on Principles of Programming Languages, Albuquerque, New Mexico, January 1992, pp. 269{ 280, New York: ACM, 1992.
[206]S. Oliver and N. D. Jones, `Interpreting transition matrices - a novel application of microprogramming', in ACM SIGMINI-SIGPLAN Interface Meeting on the Small Processor Environment, pp. 70{77, New York: ACM, 1976.
[207]B.N. Ostrovski, `Implementation of controlled mixed computation in system for automatic development of language-oriented parsers', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 385{403, Amsterdam: NorthHolland, 1988.
[208]S. Owen, `Issues in the partial evaluation of meta-interpreters', in H. Abramson and M.H. Rogers (eds.), Meta-Programming in Logic Programming, pp. 319{340, Cambridge, MA: MIT Press, 1989.
[209]F.G. Pagan, `On the generation of compilers from language de nitions', Information Processing Letters, 10(2):104{107, March 1980.
[210]F.G. Pagan, `Converting interpreters into compilers', Software | Practice and Experience, 18(6):509{527, June 1988.
[211]F.G. Pagan, `Partial computation as a practical aid in the compiler construction course', SIGCSE Bulletin, 21(2):2{8, June 1989.
[212]F.G. Pagan, `Comparative e ciency of general and residual parsers', Sigplan Notices, 25(4):59{65, April 1990.
[213]F.G. Pagan, Partial Computation and the Construction of Language Processors, Englewood Cli s, NJ: Prentice Hall, 1991.
[214]L. Paulson, `A semantics-directed compiler generator', in Ninth ACM Symposium on Principles of Programming Languages, pp. 224{233, New York: ACM, 1982.
[215]L. Paulson, `Compiler generation from denotational semantics', in B. Lorho (ed.), Methods and Tools for Compiler Construction, pp. 219{250, Cambridge: Cambridge University Press, 1984.
[216]T.J. Penello, `Very fast LR parsing', in Sigplan '86 Conference on Compiler Construction, Palo Alto, California (Sigplan Notices, vol. 21, no. 7, July 1986), pp. 145{151, ACM, 1986.
402 Bibliography
[217]K. Pingali and A. Rogers, `Compiler parallelization of simple for a distributed memory machine', in International Conference on Parallel Programming, St. Charles IL, August 1990, 1990.
[218]U.F. Pleban, `Compiler prototyping using formal semantics', in Symposium on Compiler Construction (Sigplan Notices, vol. 19, no. 6, June 1984), pp. 94{105, New York: ACM, 1984.
[219]G. Plotkin, `Call-by-name, call-by-value and the lambda-calculus', Theoretical Computer Science, 1:125{159, 1975.
[220]G.D. Plotkin, A Structural Approach to Operational Semantics, Technical Report FN-19, DAIMI, Aarhus University, Denmark, 1981.
[221]C. Pu, H. Massalin, and J. Ioannidis, `The synthesis kernel', Computing Systems, 1(1):11{ 32, 1988.
[222]J. C. Reynolds, `Types, abstraction, and parametric polymorphism', in R. E. A. Mason (ed.), Information Processing '83. Proceedings of the IFIP 9th World Computer Congress, pp. 513{523, IFIP, Amsterdam: North-Holland, 1983.
[223]J.C. Reynolds, `De nitional interpreters for higher-order programming languages', in ACM Annual Conference, Boston, MA, August 1972, pp. 717{740, New York: ACM, 1972.
[224]G. Richardson, `The realm of Nevryon', Micro User, June 1991.
[225]A. Rogers and K. Pingali, `Process decomposition through locality of reference', in 1989 SIGPLAN Conference on Programming Language Design and Implementation, Portland OR, June 1989, pp. 69{80, New York: ACM, 1989.
[226]H. Rogers, Theory of Recursive Functions and E ective Computability, New York: McGraw-Hill, 1967.
[227]S.A. Romanenko, `A compiler generator produced by a self-applicable specializer can have a surprisingly natural and understandable structure', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 445{463, Amsterdam: North-Holland, 1988.
[228]S.A. Romanenko, `Arity raiser and its use in program specialization', in N. Jones (ed.),
ESOP '90. 3rd European Symposium on Programming, Copenhagen, Denmark, May 1990 (Lecture Notes in Computer Science, vol. 432), pp. 341{360, Berlin: Springer-Verlag, 1990.
[229]E. Ruf, `Topics in online partial evaluation', Ph.D. thesis, Stanford University, California, February 1993. Published as technical report CSL-TR-93-563.
[230]E. Ruf and D. Weise, Opportunities for Online Partial Evaluation, Technical Report CSL-TR-92-516, Computer Systems Laboratory, Stanford University, Stanford, CA, April 1992.
[231]E. Ruf and D. Weise, Preserving Information during Online Partial Evaluation, Technical Report CSL-TR-92-517, Computer Systems Laboratory, Stanford University, Stanford, CA, April 1992.
[232]E. Ruf and D. Weise, `On the specialization of online program specializers', Journal of Functional Programming, 1993. To appear.
[233]B. Rytz and M. Gengler, `A polyvariant binding time analysis', in Partial Evaluation and Semantics-Based Program Manipulation, San Francisco, California, June 1992 (Technical Report YALEU/DCS/RR-909), pp. 21{28, New Haven, CT: Yale University, 1992.
[234]S. Safra and E. Shapiro, `Meta interpreters for real', in H.-J. Kugler (ed.), Information Processing 86, Dublin, Ireland, pp. 271{278, Amsterdam: North-Holland, 1986.
Bibliography 403
[235]D. Sahlin, `The Mixtus approach to automatic partial evaluation of full Prolog', in S. Debray and M. Hermenegildo (eds.), Logic Programming: Proceedings of the 1990 North American Conference, Austin, Texas, October 1990, pp. 377{398, Cambridge, MA: MIT Press, 1990.
[236]D. Sahlin, `An automatic partial evaluator for full prolog', Ph.D. thesis, Kungliga Tekniska H•ogskolan, Stockholm, Sweden, 1991. Report TRITA-TCS-9101.
[237]C. Sakama and H. Itoh, `Partial evaluation of queries in deductive databases', New Generation Computing, 6(2,3):249{258, 1988.
[238]W.L. Scherlis, `Expression procedures and program derivation', Ph.D. thesis, Stanford University, California, August 1980. Stanford Computer Science Report STAN-CS-80-818.
[239]W.L. Scherlis, `Program improvement by internal specialization', in Eighth ACM Symposium on Principles of Programming Languages, Williamsburg, Virginia, January 1981, pp. 41{49, New York: ACM, 1981.
[240]D.A. Schmidt, `Compiler generation from lambda calculus de nitions of programming languages', Ph.D. thesis, Kansas State University, Kansas, USA, 1981.
[241]D.A. Schmidt, Denotational Semantics, Boston, MA: Allyn and Bacon, 1986.
[242]D.A. Schmidt, `Static properties of partial evaluation', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 465{483, Amsterdam: North-Holland, 1988.
[243]R. Schooler, `Partial evaluation as a means of language extensibility', Master's thesis, MIT/LCS/TR-324, Laboratory for Computer Science, MIT, Cambridge, Massachusetts, August 1984.
[244]D.S. Scott, Lectures on a Mathematical Theory of Computation, Technical Report PRG-19, Programming Research Group, Oxford University, 1981.
[245]P. Sestoft, `The structure of a self-applicable partial evaluator', in H. Ganzinger and N.D. Jones (eds.), Programs as Data Objects, Copenhagen, Denmark, 1985 (Lecture Notes in Computer Science, vol. 217), pp. 236{256, Berlin: Springer-Verlag, 1986.
[246]P. Sestoft, `Automatic call unfolding in a partial evaluator', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 485{506, Amsterdam: North-Holland, 1988.
[247]P. Sestoft, `Replacing function parameters by global variables', Master's thesis, DIKU, University of Copenhagen, Denmark, October 1988.
[248]P. Sestoft and A.V. Zamulin, `Annotated bibliography on partial evaluation and mixed computation', New Generation Computing, 6(2, 3):309{354, 1988.
[249]P. Sestoft and A.V. Zamulin, `Annotated bibliography on partial evaluation and mixed computation', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 589{622, Amsterdam: North-Holland, 1988.
[250]D. Sherman, R. Strandh, and I. Durand, `Optimization of equational programs using partial evaluation', in Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, vol. 26, no. 9, September 1991), pp. 72{82, New York: ACM, 1991.
[251]M. Sintzo , `Calculating properties of programs by valuations on speci c models', in ACM Conference on Proving Assertions about Programs, Las Cruces, Mexico (Sigplan Notices, vol. 7. no. 1, January 1972), pp. 203{207, New York: ACM, 1972.
404 Bibliography
[252]D.A. Smith, `Partial evaluation of pattern matching in constraint logic programming languages', in Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, vol. 26, no. 9, September 1991), pp. 62{71, New York: ACM, 1991.
[253]B. Steensgaard and M. Marquard, `Parameter splitting in a higher order functional language'. Student Project 90-7-1, DIKU, University of Copenhagen, Denmark, August 1990.
[254]L. Sterling and R.D. Beer, `Incremental avor-mixing of meta-interpreters for expert system construction', in Proc. 3rd Symposium on Logic Programming, Salt Lake City, Utah, pp. 20{27, New York: IEEE Computer Society, 1986.
[255]L. Sterling and R.D. Beer, `Metainterpreters for expert system construction', Journal of Logic Programming, 6:163{178, 1989.
[256]J.E. Stoy, Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory, Cambridge, MA: MIT Press, 1977.
[257]R.S. Sundaresh, `Building incremental programs using partial evaluation', in Partial Evaluation and Semantics-Based Program Manipulation, New Haven, Connecticut (Sigplan Notices, vol. 26, no. 9, September 1991), pp. 83{93, New York: ACM, 1991.
[258]R.S. Sundaresh and P. Hudak, `Incremental computation via partial evaluation', in
Eighteenth Annual ACM Symposium on Principles of Programming Languages, Orlando, Florida, pp. 1{13, New York: ACM, January 1991.
[259]A. Takeuchi, `A nity between meta interpreters and partial evaluation', in H.-J. Kugler (ed.), Information Processing 86, Dublin, Ireland, pp. 279{282, Amsterdam: NorthHolland, 1986.
[260]A. Takeuchi and K. Furukawa, `Partial evaluation of Prolog programs and its application to meta programming', in H.-J. Kugler (ed.), Information Processing 86, Dublin, Ireland, pp. 415{420, Amsterdam: North-Holland, 1986.
[261]A. Tarski, `A lattice-theoretical xpoint theorem and its applications', Paci c Journal of Mathematics, 5:285{309, 1955.
[262]M. Tofte, Compiler Generators. What They Can Do, What They Might Do, and What They Will Probably Never Do, volume 19 of EATCS Monographs on Theoretical Computer Science, Berlin: Springer-Verlag, 1990. Earlier version: DIKU Report 84/8, DIKU, University of Copenhagen, Denmark, 1984.
[263]V.F. Turchin (ed.), Basic Refal and Its Implementation on Computers, Moscow: GOSSTROI SSSR, TsNIPIASS, 1977. (In Russian).
[264]V.F. Turchin, `A supercompiler system based on the language Refal', SIGPLAN Notices, 14(2):46{54, February 1979.
[265]V.F. Turchin, `Semantic de nitions in Refal and automatic production of compilers', in N.D. Jones (ed.), Semantics-Directed Compiler Generation, Aarhus, Denmark (Lecture Notes in Computer Science, vol. 94), pp. 441{474, Berlin: Springer-Verlag, 1980.
[266]V.F. Turchin, `The use of metasystem transition in theorem proving and program optimization', in J. De Bakker and J. van Leeuven (eds.), Automata, Languages and Programming. Seventh ICALP, Noordwijkerhout, The Netherlands (Lecture Notes in Computer Science, vol. 85), pp. 645{657, Berlin: Springer-Verlag, 1980.
[267]V.F. Turchin, `The concept of a supercompiler', ACM Transactions on Programming Languages and Systems, 8(3):292{325, July 1986.
Bibliography 405
[268]V.F. Turchin, `Program transformation by supercompilation', in H. Ganzinger and N.D. Jones (eds.), Programs as Data Objects, Copenhagen, Denmark, 1985 (Lecture Notes in Computer Science, vol. 217), pp. 257{281, Berlin: Springer-Verlag, 1986.
[269]V.F. Turchin, `The algorithm of generalization in the supercompiler', in D. Bj rner, A.P. Ershov, and N.D. Jones (eds.), Partial Evaluation and Mixed Computation, pp. 531{549, Amsterdam: North-Holland, 1988.
[270]V.F. Turchin, R.M. Nirenberg, and D.V. Turchin, `Experiments with a supercompiler', in
1982 ACM Symposium on Lisp and Functional Programming, Pittsburgh, Pennsylvania,
pp.47{55, New York: ACM, 1982.
[271]F. van Harmelen and A. Bundy, `Explanation-based generalisation = partial evaluation',
Arti cial Intelligence, 36:401{412, 1988.
[272]R. Venken, `A Prolog meta-interpreter for partial evaluation and its application to source to source transformation and query-optimisation', in T. O'Shea (ed.), ECAI-84, Advances in Arti cial Intelligence, Pisa, Italy, pp. 91{100, Amsterdam: North-Holland, 1984.
[273]R. Venken and B. Demoen, `A partial evaluation system for Prolog: Some practical considerations', New Generation Computing, 6(2,3):279{290, 1988.
[274]P. Wadler, `Deforestation: Transforming programs to eliminate trees', in H. Ganzinger (ed.), ESOP'88. 2nd European Symposium on Programming, Nancy, France, March 1988 (Lecture Notes in Computer Science, vol. 300), pp. 344{358, Berlin: Springer-Verlag, 1988.
[275]P. Wadler, `Theorems for free!', in Fourth International Conference on Functional Programming Languages and Computer Architecture, London, England, September 1989, pp. 347{359, Reading, MA: Addison-Wesley, 1989.
[276]M. Wand, `Continuation-based program transformation strategies', Journal of the ACM, 27(1):164{180, January 1980.
[277]M. Wand, `Deriving target code as a representation of continuation semantics', ACM Transactions on Programming Languages and Systems, 4(3):496{517, July 1982.
[278]M. Wand, `From interpreter to compiler: A representational derivation', in H. Ganzinger and N.D. Jones (eds.), Programs as Data Objects, Copenhagen, Denmark, 1985 (Lecture Notes in Computer Science, vol. 217), pp. 306{324, Berlin: Springer-Verlag, 1986.
[279]M. Wand, `Specifying the correctness of binding-time analysis', in Twentieth ACM Symposium on Principles of Programming Languages, Charleston, South Carolina, January 1993,
pp.137{143, ACM, New York: ACM, 1993.
[280]B. Wegbreit, `Goal-directed program transformation', IEEE Transactions on Software Engineering, SE-2(2):69{80, June 1976.
[281]D. Weise, R. Conybeare, E. Ruf, and S. Seligman, `Automatic online partial evaluation', in J. Hughes (ed.), Functional Programming Languages and Computer Architecture, Cambridge, Massachusetts, August 1991 (Lecture Notes in Computer Science, vol. 523), pp. 165{191, Berlin: Springer-Verlag, 1991.
408 Index
composition, 25, 338 |
Darlington, J., 347, 350, 374 |
symbolic, 338, 360 |
data division, 98 |
computation duplication, 119 |
data type, 32, 325 |
computational state, 77 |
de Schreye, D., 371 |
partial, 77 |
dead static variable, 95 |
computer graphics, 278 |
debugger |
concretization function, 312 |
binding-time, 151 |
con guration, 369 |
decreased in loop, 302 |
con uence property, 349 |
de nition, 3, 351, 374 |
congruence, 109 |
de nition of partial evaluation, 4 |
for pointers, 244 |
deforestation, 358, 360 |
uniform, 77 |
dependency analysis, 198, 302 |
congruent, 103 |
dependency constraint rules, 181 |
cons point analysis, 224 |
dependent sum, 332 |
Consel, C., 130, 150, 218, 224, 264, 270, 368, |
depends |
370{373 |
along path, 302 |
consistent annotation, 105, 123 |
over assignment sequence, 302 |
constant propagation, 286 |
depthrst specialization, 236 |
constraint, 105 |
determinacy analysis, 198 |
dependency rules, 181 |
DFA |
equational, 177, 181 |
generation of, 196, 268 |
inequality, 177, 181 |
discarding |
normal form, 176 |
of side-e ects, 119 |
normalization, 179, 180 |
divide and conquer, 281 |
reduction, 180 |
division, 77, 102 |
used for binding-time analysis, 175 |
nite, 83 |
constraint system, 177 |
monovariant, 96, 103 |
construction, 31 |
pointwise, 94 |
constructor, 31, 325 |
polyvariant, 96, 103 |
context, 348 |
uniform, 77 |
continuation, 219 |
uniformly congruent, 77 |
continuation passing style, 116, 218, 270 |
double append, 351 |
conversion to, 270 |
double encoding, 256 |
advantages, 270 |
double self-application, 14 |
disadvantages, 272 |
driving, 369 |
continuation variable, 238 |
dubious variable, 301 |
continuation-based reduction, 218 |
duplicable, 119 |
contraction, 369 |
duplication, 119 |
control function, 57 |
harmless, 121 |
control operators (Prolog), 193 |
of side-e ects, 119 |
Core C, 245 |
D(V ) (strictly decreasing), 303 |
two-level, 246, 247 |
Dybkj r, H., 141, 372 |
correctness |
dynamic, 77, 102, 166, 197 |
fold/unfold, 354 |
always, 149 |
Courcelle, B., 354 |
context, 111, 112, 208 |
Cousot, P., 310 |
control ow, 233 |
Cousot, R., 310 |
de nitely, 145 |
CPS, see continuation passing style |
goal, 197 |
curried, 28 |
memory allocation, 243 |
Curry, H.B., 28 |
statement, 230 |
|
variable, 301 |
Danvy, O., 130, 150, 204, 218, 264, 270, 272, |
|
368, 370{373 |
Earley, J., 8, 372, 374 |