{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:56:11Z","timestamp":1776891371836,"version":"3.51.2"},"reference-count":40,"publisher":"Centre pour la Communication Scientifique Directe (CCSD)","issue":"1","license":[{"start":{"date-parts":[[2008,1,1]],"date-time":"2008-01-01T00:00:00Z","timestamp":1199145600000},"content-version":"unspecified","delay-in-days":0,"URL":"https:\/\/www.cambridge.org\/core\/terms"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":["J. Funct. Prog."],"published-print":{"date-parts":[[2008,1]]},"abstract":"<jats:title>Abstract<\/jats:title>\n                  <jats:p>\n                    This paper presents an operational semantics for the core of Scheme. Our specification improves over the denotational semantics from the Revised\n                    <jats:sup>5<\/jats:sup>\n                    Report on Scheme specification in four ways. First, it covers a larger part of the language, specifically\n                    <jats:italic>eval<\/jats:italic>\n                    ,\n                    <jats:bold>quote<\/jats:bold>\n                    ,\n                    <jats:italic>dynamic-wind<\/jats:italic>\n                    , and the top level. Second, it models multiple values in a way that does not require changes to unrelated parts of the language. Third, it provides a faithful model of Scheme's undefined order of evaluation. Finally, we have implemented our specification in PLT Redex, a domain-specific language for writing operational semantics. The implementation allows others to experiment with our specification and allows us to build a specification test suite, which improves our confidence that our system is a faithful model of Scheme. In addition to a specification of Scheme, this paper contributes three novel modeling techniques for Felleisen Hieb-style rewriting semantics. All three techniques are applicable to a wider range of problems than modeling Scheme, and they combine seamlessly in our model, suggesting that they would scale to complete models of other languages.\n                  <\/jats:p>","DOI":"10.1017\/s0956796807006478","type":"journal-article","created":{"date-parts":[[2007,8,1]],"date-time":"2007-08-01T05:21:12Z","timestamp":1185945672000},"page":"47-86","source":"Crossref","is-referenced-by-count":11,"title":["An operational semantics for Scheme"],"prefix":"10.46298","volume":"18","author":[{"given":"JACOB","family":"MATTHEWS","sequence":"first","affiliation":[]},{"given":"ROBERT BRUCE","family":"FINDLER","sequence":"additional","affiliation":[]}],"member":"25203","published-online":{"date-parts":[[2008,1,1]]},"reference":[{"key":"S0956796807006478_manual_ref-4","unstructured":"Dybvig, R. K. (2005) Chez Scheme version 7 user's guide. Cadence Research Systems. Available at: http:\/\/www.scheme.com\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-2","doi-asserted-by":"crossref","unstructured":"Clinger, W. D. & Hansen, L. T. (1994) Lambda, the ultimate label, or a simple optimizing compiler for Scheme. ACM symposium on Lisp and Functional Programming. SIGPLAN Lisp Pointers 7(3) (July\u2013September 1994). Available at: http:\/\/www.ccs.neu.edu\/home\/will\/Larceny\/. Accessed date: July 6, 2007.","DOI":"10.1145\/182590.156786"},{"key":"S0956796807006478_manual_ref-18","doi-asserted-by":"publisher","DOI":"10.1145\/29873.30392"},{"key":"S0956796807006478_manual_ref-26","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190220"},{"key":"S0956796807006478_manual_ref-22","unstructured":"Lee, D. K. , Crary, K. & Harper, R. (2006) Mechanizing the Metatheory of Standard ML. Tech. rept. CMU-CS-06-138. Carnegie Mellon University. Available at: http:\/\/www.cs.cmu.edu\/crary\/papers\/2006\/tslf.pdf. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-15","unstructured":"GNU. (2006). MIT\/GNU Scheme 7.7.90+. Available at: http:\/\/www.gnu.org\/software\/mit-scheme\/ Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-37","unstructured":"Sussman, G. J. & Guy, L. S. Jr. (1975) Scheme: An interpreter for extended lambda calculus. Tech. rept. AI Lab Memo AIM-349. MIT AI Lab."},{"key":"S0956796807006478_manual_ref-38","unstructured":"van Straaten, A. (2002) An executable denotational semantics for scheme. Available at: http:\/\/www.appsolutions.com\/SchemeDS. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-14","unstructured":"Gasbichler, M. , Knauel, E. , Sperber, M. & Kelsey, R. A. (2003) How to add threads to a sequential language without getting tangled up. In Workshop on Scheme and Functional Programming."},{"key":"S0956796807006478_manual_ref-30","doi-asserted-by":"publisher","DOI":"10.1145\/507635.507642"},{"key":"S0956796807006478_manual_ref-19","first-page":"16","volume-title":"ACM SIGPLAN International Conference on Functional Programming (ICFP)","author":"Herman","year":"2004"},{"key":"S0956796807006478_manual_ref-3","unstructured":"Dybvig, K. , Clinger, W. , Flatt, M. , Sperber, M. & van Straaten, A. (2006, June). The R6RS status report. Available at: http:\/\/www.schemers.org\/Documents\/Standards\/Charter\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-1","doi-asserted-by":"publisher","DOI":"10.1145\/277650.277719"},{"key":"S0956796807006478_manual_ref-23","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800000125"},{"key":"S0956796807006478_manual_ref-25","unstructured":"Matthews, J. & Findler, R. B. (2005) An operational semantics for R5RS Scheme. In Workshop on Scheme and Functional Programming."},{"key":"S0956796807006478_manual_ref-17","unstructured":"Harper, R. & Stone, C. (1996) A Type-Theoretic Account of Standard ml 1996 (version 2). Tech. rept. CMU-CS-96-136R. School of Computer Science, Carnegie Mellon University."},{"key":"S0956796807006478_manual_ref-31","doi-asserted-by":"publisher","DOI":"10.1007\/BF01128408"},{"key":"S0956796807006478_manual_ref-24","volume-title":"Operational semantics for Scheme via term rewriting.","author":"Matthews","year":"2005"},{"key":"S0956796807006478_manual_ref-16","doi-asserted-by":"publisher","DOI":"10.21236\/ADA258635"},{"key":"S0956796807006478_manual_ref-27","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-25979-4_21"},{"key":"S0956796807006478_manual_ref-11","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796899003329"},{"key":"S0956796807006478_manual_ref-10","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(87)90109-5"},{"key":"S0956796807006478_manual_ref-6","unstructured":"Felleisen, M. (1987) The Calculi of lambda-v-cs Conversion: A Syntactic Theory of Control and State in Imperative Higher-Order Programming Languages. Ph.D. thesis, Indiana University."},{"key":"S0956796807006478_manual_ref-32","unstructured":"Project, GNU. (2005) Guile reference manual. Available at: http:\/\/www.gnu.org\/software\/guile\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-12","unstructured":"Flatt, M. (2006). PLT MzScheme: Language manual. Technical Report PLT-TR2006-1-v352. PLT Scheme Inc. Available at: http:\/\/www.plt-scheme.org\/techreports\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-21","doi-asserted-by":"crossref","first-page":"26","DOI":"10.1145\/290229.290234","article-title":"Revised5 report of the algorithmic language Scheme","volume":"33","author":"Kelsey","year":"1998","journal-title":"ACM SIGPLAN Notices"},{"key":"S0956796807006478_manual_ref-34","doi-asserted-by":"publisher","DOI":"10.1017\/CBO9780511574962"},{"key":"S0956796807006478_manual_ref-35","unstructured":"Serrano, M. (2006) Bigloo: A Practical Scheme compiler. Available at: http:\/\/www-sop.inria.fr\/mimosa\/fp\/Bigloo\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-13","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-48737-9_7"},{"key":"S0956796807006478_manual_ref-39","unstructured":"Winkelmann, F. L. (2006) Chicken: A practical and portable scheme system. Available at: http:\/\/www.call-with-current-continuation.org\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-20","unstructured":"Kelsey, R. , Rees, J. & Sperber, M. (2005) Scheme 48. Available at: http:\/\/s48.org\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-36","unstructured":"Sitaram, D. (2003) Porting Scheme programs. In Scheme and Functional Programming Workshop."},{"key":"S0956796807006478_manual_ref-7","doi-asserted-by":"publisher","DOI":"10.1145\/62678.62686"},{"key":"S0956796807006478_manual_ref-33","article-title":"An operational semantics for Scheme","volume":"2","author":"Ramsdell","year":"1992","journal-title":"Lisp Point."},{"key":"S0956796807006478_manual_ref-5","unstructured":"Feeley, M. (2006) Gambit-C, version 4.0 beta 17. Available at: http:\/\/www.iro.umontreal.ca\/gambit\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-8","unstructured":"Felleisen, M. & Flatt, M. (2006) Programming languages and lambda calculi. Unpublished manuscript. Available at: http:\/\/www.cs.utah.edu\/plt\/publications\/pllc.pdf. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-9","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(92)90014-7"},{"key":"S0956796807006478_manual_ref-28","unstructured":"Miller, S. G. & Radestock, M. (2006) SISC for seasoned schemers. Available at: http:\/\/sisc.sourceforge.net\/. Accessed date: July 6, 2007."},{"key":"S0956796807006478_manual_ref-29","article-title":"M-LISP: A representation-independent dialect of LISP with reduction semantics","volume":"14","author":"Muller","year":"1992","journal-title":"ACM Transact. Program. Lang. Syst."},{"key":"S0956796807006478_manual_ref-40","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"}],"container-title":["Journal of Functional Programming"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/www.cambridge.org\/core\/services\/aop-cambridge-core\/content\/view\/S0956796807006478","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2026,4,22]],"date-time":"2026-04-22T20:19:10Z","timestamp":1776889150000},"score":1,"resource":{"primary":{"URL":"https:\/\/www.cambridge.org\/core\/product\/identifier\/S0956796807006478\/type\/journal_article"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,1]]},"references-count":40,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2008,7]]}},"alternative-id":["S0956796807006478"],"URL":"https:\/\/doi.org\/10.1017\/s0956796807006478","relation":{},"ISSN":["0956-7968","1469-7653"],"issn-type":[{"value":"0956-7968","type":"print"},{"value":"1469-7653","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,1]]}}}