{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:54:13Z","timestamp":1776891253668,"version":"3.51.2"},"reference-count":26,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"5","license":[{"start":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T00:00:00Z","timestamp":1226016000000},"content-version":"unspecified","delay-in-days":4450,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[1996,9]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>This paper describes a compiling graph reduction system which realizes the reduction semantics of a fully-fledged applied \u03bb-calculus. High-level functional programs are conceptually executed as sequences of program transformations governed by full \u03b2-reductions. They may be carried out step-by-step, and intermediate programs may be displayed in high-level notation, rendering the system suitable for interactive program design, high-level debugging, and also for teaching basic programming language concepts and language interpretation. Run-time efficiency for production runs is achieved by means of an abstract stack machine ASM which serves as an intermediate level of code generation. It employs multiple stacks for reasonably fast function calls, optimized tail-end recursions, and earliest possible releases of subgraphs that are no longer needed. The ASM involves an interpreter if and only if potential naming conflicts need to be resolved when reducing partial function applications.<\/jats:p>","DOI":"10.1017\/s0956796800001957","type":"journal-article","created":{"date-parts":[[2008,11,7]],"date-time":"2008-11-07T11:10:39Z","timestamp":1226056239000},"page":"723-756","source":"Crossref","is-referenced-by-count":6,"title":["\u03c0-RED\n                    <sup>+<\/sup>\n                    An interactive compiling graph reduction system for an applied \u03bb-calculus"],"prefix":"10.46298","volume":"6","author":[{"given":"Dietmar","family":"G\u00e4rtner","sequence":"first","affiliation":[]},{"given":"Werner E.","family":"Kluge","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2008,11,7]]},"reference":[{"key":"S0956796800001957_ref019","volume-title":"The Implementation of Functional Programming Languages","author":"Peyton Jones","year":"1987"},{"key":"S0956796800001957_ref018","volume-title":"Internal Report Nr. 9419","author":"Kluge","year":"1994"},{"key":"S0956796800001957_ref017","doi-asserted-by":"crossref","unstructured":"Johnsson T. (1984) Efficient compilation of lazy evaluation, SIGPLAN Compiler Construction Conference, Montreal, Quebec.","DOI":"10.1145\/502874.502880"},{"key":"S0956796800001957_ref016","doi-asserted-by":"crossref","unstructured":"Johnson T. (1985) Lambda lifting: transforming programs to recursive equations, Proc. Conf. on Functional Programming and Computer Architecture: Lecture Notes in Computer Science 201,pp. 190\u2013203. Springer-Verlag.","DOI":"10.1007\/3-540-15975-4_37"},{"key":"S0956796800001957_ref015","doi-asserted-by":"crossref","unstructured":"Hughes R. J. M. (1982) Super-combinators \u2013 a new implementation technique for applicative languages, Proc. ACM Conf. on LISP and Functional Programming, pp. 1\u201319. Pittsburgh, PA,","DOI":"10.1145\/800068.802129"},{"key":"S0956796800001957_ref013","doi-asserted-by":"publisher","DOI":"10.1145\/130697.130699"},{"key":"S0956796800001957_ref014","first-page":"382","author":"Hudak","year":"1985"},{"key":"S0956796800001957_ref012","volume-title":"Introduction to Combinators and \u03bb-Calculus","author":"Hindley","year":"1986"},{"key":"S0956796800001957_ref011","volume-title":"Standard ML","author":"Harper","year":"1986"},{"key":"S0956796800001957_ref010","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/37.3.177"},{"key":"S0956796800001957_ref025","unstructured":"Allegro CL User Guide (1992) Vol. 1, Version 4.1, Franz Inc."},{"key":"S0956796800001957_ref008","doi-asserted-by":"crossref","unstructured":"Fairbairn J. and Wray S. C. (1988) TIM: a simple lazy abstract machine to execute super-combinators, Proc. Conf. on Functional Programming and Computer Architecture: Lecture Notes in Computer Science 274, pp. 34\u201345. Springer-Verlag.","DOI":"10.1007\/3-540-18317-5_3"},{"key":"S0956796800001957_ref023","doi-asserted-by":"publisher","DOI":"10.1002\/spe.4380090105"},{"key":"S0956796800001957_ref007","doi-asserted-by":"publisher","DOI":"10.1073\/pnas.20.11.584"},{"key":"S0956796800001957_ref005","volume-title":"The Calculi of \u03bb-Conversion","author":"Church","year":"1941"},{"key":"S0956796800001957_ref002","doi-asserted-by":"crossref","unstructured":"Berkling K. J. (1974) Reduction languages for reduction machines, Proc. 2nd Int. Symp. on Comp. Arch., pp. 133\u2013140. ACM\/IEEE.","DOI":"10.1145\/641675.642112"},{"key":"S0956796800001957_ref001","doi-asserted-by":"publisher","DOI":"10.1145\/359576.359579"},{"key":"S0956796800001957_ref020","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000319"},{"key":"S0956796800001957_ref022","doi-asserted-by":"publisher","DOI":"10.1007\/BF03037478"},{"key":"S0956796800001957_ref009","first-page":"92","volume-title":"Proc. 4th Int. Workshop on the Parallel Implementation of Functional Languages","author":"Gaertner","year":"1992"},{"key":"S0956796800001957_ref021","volume-title":"Functional Programming and Parallel Graph Rewriting","author":"Plasmeijer","year":"1993"},{"key":"S0956796800001957_ref003","doi-asserted-by":"publisher","DOI":"10.1016\/1385-7258(72)90034-0"},{"key":"S0956796800001957_ref004","volume-title":"The ML\/LCF\/HOPE Newsletter","author":"Cardelli","year":"1983"},{"key":"S0956796800001957_ref026","unstructured":"Sun Common LISP 4.0 User's Guide (1990) SUN Microsystems Inc."},{"key":"S0956796800001957_ref024","doi-asserted-by":"publisher","DOI":"10.1145\/15042.15053"},{"key":"S0956796800001957_ref006","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(87)90020-7"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796800001957","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:18:14Z","timestamp":1776889094000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796800001957\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1996,9]]},"references-count":26,"journal-issue":{"issue":"5","published-print":{"date-parts":[[1996,9]]}},"alternative-id":["S0956796800001957"],"URL":"https:\/\/doi.org\/10.1017\/s0956796800001957","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[1996,9]]}}}