{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T23:05:15Z","timestamp":1779836715034,"version":"3.53.1"},"reference-count":38,"publisher":"Cambridge University Press (CUP)","issue":"3","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":5608,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1993,7]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    A common technique for improving the speed of program specialization is to specialize the program specializer itself on the program to be specialized, creating a custom\n                    <jats:italic>program generator<\/jats:italic>\n                    . Much research has been devoted to the problem of generating\n                    <jats:italic>efficient<\/jats:italic>\n                    program generators, which do not perform reductions at program generation time which could instead have been performed when the program generator was constructed. The conventional wisdom holds that only program specializers using\n                    <jats:italic>binding-time approximations<\/jats:italic>\n                    can be specialized into such efficient program generators. This paper argues that this is not the case, and demonstrates that the specialization of a nontrivial\n                    <jats:italic>online<\/jats:italic>\n                    program specializer similar to the original \u2018naive MIX\u2019 can indeed yield an efficient program generator. The key to our argument is that, while the use of\n                    <jats:italic>binding-time information<\/jats:italic>\n                    at program generator generation time is necessary for the construction of an efficient custom specializer, the use of explicit\n                    <jats:italic>binding-time approximation<\/jats:italic>\n                    techniques is not. This allows us to distinguish the problem at hand (i.e. the use of binding-time information during program generator generation) from particular solutions to that problem (i.e. offline specialization). We show that, given a careful choice of specializer data structures, and sufficiently powerful specialization techniques, binding-time information can be inferred and utilized without explicit approximations. This allows the construction of efficient, optimizing program generators from online program specializers.\n                  <\/jats:p>","DOI":"10.1017\/s0956796800000745","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:13:56Z","timestamp":1226056436000},"page":"251-281","source":"Crossref","is-referenced-by-count":11,"title":["On the specialization of online program specializers"],"prefix":"10.1017","volume":"3","author":[{"given":"Erik","family":"Ruf","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Daniel","family":"Weise","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"56","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800000745_ref006","doi-asserted-by":"crossref","unstructured":"Consel C. , & Danvy O. (1990) From Interpreting to Compiling Binding Times. Pages 88\u2013105 of: Jones N. (ed), Proceedings of the 3rd European Symposium on Programming.Springer-Verlag, LNCS 432.","DOI":"10.1007\/3-540-52592-0_57"},{"key":"S0956796800000745_ref002","doi-asserted-by":"publisher","DOI":"10.1016\/0004-3702(76)90011-4"},{"key":"S0956796800000745_ref035","doi-asserted-by":"publisher","DOI":"10.1145\/5956.5957"},{"key":"S0956796800000745_ref031","volume-title":"Preserving Information during Online Partial Evaluation","author":"Ruf","year":"1992"},{"key":"S0956796800000745_ref004","volume-title":"Binding Time Analysis and the Taming of Self-Application","author":"Bondorf","year":"1988"},{"key":"S0956796800000745_ref027","first-page":"1","article-title":"Revised4 Report on the Algorithmic Language Scheme","volume":"4","author":"Rees","year":"1991","journal-title":"LISP Pointers"},{"key":"S0956796800000745_ref030","volume-title":"Opportunities for Online Partial Evaluation","author":"Ruf","year":"1992"},{"key":"S0956796800000745_ref007","doi-asserted-by":"publisher","DOI":"10.1016\/0020-0190(77)90078-3"},{"key":"S0956796800000745_ref012","volume-title":"Experiments with a self-applicable supercompiler","author":"Gl\u00fcck","year":"1989"},{"key":"S0956796800000745_ref001","doi-asserted-by":"crossref","unstructured":"Aiken A. , & Murphy B. R. (1991) Static Type Inference in a Dynamically Typed Language. Pages 279\u2013290 of: Eighteenth Annual ACM Symposium on Principles of Programming Languages.","DOI":"10.1145\/99583.99621"},{"key":"S0956796800000745_ref024","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_8"},{"key":"S0956796800000745_ref010","first-page":"45","article-title":"Partial evaluation of computation process\u2014an approach to a compiler-compiler","volume":"2","author":"Futamura","year":"1971","journal-title":"Systems, Computers, Controls"},{"key":"S0956796800000745_ref020","unstructured":"Jones N. D. , Gomard C. , & Sestoft P. (1993) Partial Evaluation and Automatic Program Generation. (in progress)."},{"key":"S0956796800000745_ref005","unstructured":"Consel C. (1989) Analyse de programmes, Evaluation partielle et G\u00e9n\u00e9ration de compilateurs. Ph.D. thesis, Universit\u00e9 de Paris 6, Paris, France. 109 pages. (In French)."},{"key":"S0956796800000745_ref011","first-page":"309","volume-title":"Partial Evaluation and Semantics-Based Program Manipulation","volume":"26","author":"Gl\u00fcck","year":"1991"},{"key":"S0956796800000745_ref037","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_9"},{"key":"S0956796800000745_ref034","volume-title":"Rabbit: A Compiler for Scheme","author":"Steele","year":"1978"},{"key":"S0956796800000745_ref029","unstructured":"Ruf E. (1993) Topics in Online Partial Evaluation. Ph.D. thesis, Stanford University, Stanford, CA. Published as Stanford Technical Report CSL-TR-93-563, March 1993."},{"key":"S0956796800000745_ref026","doi-asserted-by":"crossref","unstructured":"Peterson J. (1989) Untagged data in tagged languages: choosing optimal representations at compile time. Pages 89\u201399 of: Proceedings of the 4th ACM Conference on Functional Programming Languages and Computer Architecture.","DOI":"10.1145\/99370.99377"},{"key":"S0956796800000745_ref018","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-15976-2_6"},{"key":"S0956796800000745_ref023","first-page":"137","volume-title":"The Practice of Prolog","author":"Lakhotia","year":"1991"},{"key":"S0956796800000745_ref013","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000058"},{"key":"S0956796800000745_ref021","unstructured":"Kahn K. M. (1982) A partial evaluator of Lisp programs written in Prolog. Pages 19\u201325 of: Caneghem M. V. (ed), First International Logic Programming Conference."},{"key":"S0956796800000745_ref016","doi-asserted-by":"publisher","DOI":"10.1007\/3540543961_23"},{"key":"S0956796800000745_ref033","unstructured":"Schooler R. (1984) Partial Evaluation as a means of Language Extensibility. M.S. thesis, MIT, Cambridge, MA. Published as MIT\/LCS\/TR-324."},{"key":"S0956796800000745_ref003","unstructured":"Bondorf A. (1990) Self-Applicable Partial Evaluation. Ph.D. thesis, DIKU, University of Copenhagen, Denmark. Revised version: DIKU Report 90\/17."},{"key":"S0956796800000745_ref015","doi-asserted-by":"crossref","unstructured":"Henglein F. (1992) Global Tagging Optimization by Type Inference. Pages 205\u2013215 of: Proceedings of the 1992 ACM Conference on Lisp and Functional Programming (LISP Pointers vol. 5, no. 1, January-March 1992).","DOI":"10.1145\/141478.141542"},{"key":"S0956796800000745_ref019","first-page":"9","article-title":"Mix: A self-applicable partial evaluator for experiments in compiler generation","volume":"1","author":"Jones","year":"1988","journal-title":"Lisp and Symbolic Computation"},{"key":"S0956796800000745_ref008","first-page":"391","volume-title":"Formal Description of Programming Concepts","author":"Ershov","year":"1978"},{"key":"S0956796800000745_ref025","unstructured":"Mogensen T. (1989) Binding Time Aspects of Partial Evaluation. Ph.D. thesis, DIKU, University of Copenhangen, Copenhagen, Denmark."},{"key":"S0956796800000745_ref028","doi-asserted-by":"crossref","unstructured":"Romanenko S. (1990) Arity Raiser and Its Use in Program Specialization. Pages 341\u2013360 of: Jones N. (ed), ESOP \u201890. 3rd European Symposium on Programming, Copenhagen, Denmark, May 1990. (Lecture Notes in Computer Science, vol. 432). Springer-Verlag.","DOI":"10.1007\/3-540-52592-0_73"},{"key":"S0956796800000745_ref009","volume-title":"Special Issue: Selected Papers from the Workshop on Partial Evaluation and Mixed Computation","volume":"6","author":"Ershov","year":"1988"},{"key":"S0956796800000745_ref014","unstructured":"Haraldsson A. (1977) A Program Manipulation System Based on Partial Evaluation. Ph.D. thesis, Link\u00f6ping University. Published as Link\u00f6ping Studies in Science and Technology Dissertation No. 14."},{"key":"S0956796800000745_ref022","unstructured":"Katz M. , & Weise D. (1992) Towards a New Perspective on Partial Evaluation. Pages 29\u201337 of: ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Directed Program Manipulation. Proceedings available as YALEU\/DCS\/RR-909."},{"key":"S0956796800000745_ref032","unstructured":"Sahlin D. (1991) An Automatic Partial Evaluator for Full Prolog. Ph.D. thesis, Kungliga Tekniska H\u00f6gskolan, Stockholm, Sweden. Report TRITA-TCS-9101, 170 pages."},{"key":"S0956796800000745_ref017","first-page":"210","volume-title":"Draft Proceedings, Fourth Annual Glasgow Workshop on Functional Programming, Skye","author":"Holst","year":"1991"},{"key":"S0956796800000745_ref038","first-page":"573","volume-title":"Partial Evaluation and Mixed Computation","author":"Young","year":"1988"},{"key":"S0956796800000745_ref036","first-page":"531","volume-title":"Partial Evaluation and Mixed Computation","author":"Turchin","year":"1988"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800000745","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,5,26]],"date-time":"2026-05-26T22:35:11Z","timestamp":1779834911000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800000745\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1993,7]]},"references-count":38,"journal-issue":{"issue":"3","published-print":{"date-parts":[[1993,7]]}},"alternative-id":["S0956796800000745"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800000745","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1993,7]]}}}