{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,7,12]],"date-time":"2024-07-12T17:40:25Z","timestamp":1720806025084},"reference-count":41,"publisher":"Elsevier BV","license":[{"start":{"date-parts":[[2019,4,1]],"date-time":"2019-04-01T00:00:00Z","timestamp":1554076800000},"content-version":"tdm","delay-in-days":0,"URL":"https:\/\/www.elsevier.com\/tdm\/userlicense\/1.0\/"}],"funder":[{"DOI":"10.13039\/501100000038","name":"NSERC","doi-asserted-by":"publisher","award":["RGPIN-2017-04471"],"id":[{"id":"10.13039\/501100000038","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["elsevier.com","sciencedirect.com"],"crossmark-restriction":true},"short-container-title":["Journal of Computer Languages"],"published-print":{"date-parts":[[2019,4]]},"DOI":"10.1016\/j.jvlc.2018.10.006","type":"journal-article","created":{"date-parts":[[2019,2,10]],"date-time":"2019-02-10T23:47:40Z","timestamp":1549842460000},"page":"222-240","update-policy":"http:\/\/dx.doi.org\/10.1016\/elsevier_cm_policy","source":"Crossref","is-referenced-by-count":0,"special_numbering":"C","title":["Refining semantics for multi-stage programming"],"prefix":"10.1016","volume":"51","author":[{"ORCID":"http:\/\/orcid.org\/0000-0003-1049-8132","authenticated-orcid":false,"given":"Rui","family":"Ge","sequence":"first","affiliation":[]},{"given":"Ronald","family":"Garcia","sequence":"additional","affiliation":[]}],"member":"78","reference":[{"key":"10.1016\/j.jvlc.2018.10.006_bib0001","series-title":"Domain-Specific Program Generation: International Seminar","first-page":"30","article-title":"A gentle introduction to multi-stage programming","volume":"3016","author":"Taha","year":"2004"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0002","series-title":"Partial Evaluation and Automatic Program Generation","author":"Jones","year":"1993"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0003","series-title":"Advanced Functional Programming: Third International School, AFP\u201998","first-page":"207","article-title":"Using MetaML: a staged programming language","volume":"1608","author":"Sheard","year":"1999"},{"issue":"4\u20135","key":"10.1016\/j.jvlc.2018.10.006_bib0004","doi-asserted-by":"crossref","first-page":"705","DOI":"10.1017\/S0956796812000238","article-title":"Systematic abstraction of abstract machines","volume":"22","author":"Van Horn","year":"2012","journal-title":"J. Funct. Program."},{"key":"10.1016\/j.jvlc.2018.10.006_sbref0005","series-title":"Proceedings of the IFIP TC 2\/WG2. 2 Working Conference on Formal Description of Programming Concepts Part III, Ebberup, Denmark","first-page":"193","article-title":"Control operators, the secd-machine, and the lambda-calculus","author":"Felleisen","year":"1986"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0006","series-title":"Proceedings of the 14th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL \u201987","article-title":"A calculus for assignments in higher-order languages","author":"Felleisen","year":"1987"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0007","series-title":"Semantics Engineering with PLT Redex","author":"Felleisen","year":"2009"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0008","series-title":"Proceedings of the ACM Annual Conference, ACM \u201972","first-page":"717","article-title":"Definitional interpreters for higher-order programming languages","volume":"2","author":"Reynolds","year":"1972"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0009","series-title":"Proceedings of the 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM \u201997","first-page":"203","article-title":"Multi-stage programming with explicit annotations","author":"Taha","year":"1997"},{"issue":"4","key":"10.1016\/j.jvlc.2018.10.006_bib0010","doi-asserted-by":"crossref","first-page":"308","DOI":"10.1093\/comjnl\/6.4.308","article-title":"The mechanical evaluation of expressions","volume":"6","author":"Landin","year":"1964","journal-title":"Comput. J."},{"issue":"3","key":"10.1016\/j.jvlc.2018.10.006_bib0011","doi-asserted-by":"crossref","first-page":"157","DOI":"10.1145\/365230.365257","article-title":"The next 700 programming languages","volume":"9","author":"Landin","year":"1966","journal-title":"Commun. ACM"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0012","series-title":"Proceedings of the 17th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL \u201990","first-page":"31","article-title":"Explicit substitutions","author":"Abadi","year":"1990"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0013","series-title":"Automata, Languages and Programming: 12th Colloquium, ICALP \u201985","first-page":"130","article-title":"Categorical combinatory logic","volume":"194","author":"Curien","year":"1985"},{"key":"10.1016\/j.jvlc.2018.10.006_sbref0014","series-title":"Technical Report","article-title":"Explicit Substitution: Tutorial & Survey","author":"Rose","year":"1996"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0015","series-title":"Refining Semantics for Multi-stage Programming","author":"Ge","year":"2016"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0016","series-title":"Proceedings of the STACS \u201987","first-page":"22","article-title":"Natural semantics","author":"Kahn","year":"1987"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0017","series-title":"A Structural Approach to Operational Semantics","author":"Plotkin","year":"1981"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0018","first-page":"17","article-title":"A structural approach to operational semantics","volume":"60\u201361","author":"Plotkin","year":"2004","journal-title":"J. Logic Algebraic Program."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0019","doi-asserted-by":"crossref","first-page":"3","DOI":"10.1016\/j.jlap.2004.03.009","article-title":"The origins of structural operational semantics","volume":"60\u201361","author":"Plotkin","year":"2004","journal-title":"J. Logic Algebraic Program."},{"issue":"2","key":"10.1016\/j.jvlc.2018.10.006_bib0020","doi-asserted-by":"crossref","first-page":"235","DOI":"10.1016\/0304-3975(92)90014-7","article-title":"The revised report on the syntactic theories of sequential control and state","volume":"103","author":"Felleisen","year":"1992","journal-title":"Theor. Comput. Sci."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0021","series-title":"Proceedings of the 16th ACM SIGPLAN International Conference on Generative Programming: Concepts and Experiences, GPCE \u201917","first-page":"2","article-title":"Refining semantics for multi-stage programming","author":"Ge","year":"2017"},{"issue":"1","key":"10.1016\/j.jvlc.2018.10.006_bib0022","doi-asserted-by":"crossref","first-page":"211","DOI":"10.1016\/S0304-3975(00)00053-0","article-title":"Metaml and multi-stage programming with explicit annotations","volume":"248","author":"Taha","year":"2000","journal-title":"Theor. Comput. Sci."},{"issue":"2","key":"10.1016\/j.jvlc.2018.10.006_bib0023","doi-asserted-by":"crossref","first-page":"125","DOI":"10.1016\/0304-3975(75)90017-1","article-title":"Call-by-name, call-by-value and the lambda-calculus","volume":"1","author":"Plotkin","year":"1975","journal-title":"Theor. Comput. Sci."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0024","series-title":"Proceedings of the 2000 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-based Program Manipulation, PEPM \u201900","first-page":"34","article-title":"A sound reduction semantics for untyped cbn multi-stage computation. or, the theory of metaml is non-trival","author":"Taha","year":"1999"},{"key":"10.1016\/j.jvlc.2018.10.006_sbref0025","series-title":"Multistage Programming: Its Theory and Applications","author":"Taha","year":"1999"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0026","series-title":"Applied Semantics","first-page":"378","article-title":"Operational semantics and program equivalence","author":"Pitts","year":"2002"},{"issue":"2","key":"10.1016\/j.jvlc.2018.10.006_bib0027","doi-asserted-by":"crossref","first-page":"189","DOI":"10.1016\/0890-5401(91)90066-B","article-title":"Telescopic mappings in typed lambda calculus","volume":"91","author":"de Bruijn","year":"1991","journal-title":"Inf. Comput."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0028","series-title":"Programming Languages and Systems: 8th European Symposium on Programming, ESOP \u201999","first-page":"193","article-title":"An idealized metaml: simpler, and more expressive","volume":"1576","author":"Moggi","year":"1999"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0029","series-title":"Automata, Languages and Programming: 25th International Colloquium, ICALP\u201998 Proceedings","first-page":"918","article-title":"Multi-stage programming: axiomatization and type safety","volume":"1443","author":"Taha","year":"1998"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0030","series-title":"Advanced Topics in Bisimulation and Coinduction","first-page":"233","article-title":"Enhancements of the Bisimulation proof method","volume":"52","author":"Pous","year":"2012"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0031","series-title":"Introduction to Bisimulation and Coinduction","author":"Sangiorgi","year":"2011"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0032","series-title":"Proceedings of the 2008 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM \u201908","first-page":"147","article-title":"Closing the stage: from staged code to typed closures","author":"Kameyama","year":"2008"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0033","series-title":"Proceedings of the 2009 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation, PEPM \u201909","first-page":"111","article-title":"Shifting the stage: staging with delimited control","author":"Kameyama","year":"2009"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0034","series-title":"Proceedings of the 30th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL \u201903","first-page":"26","article-title":"Environment classifiers","author":"Taha","year":"2003"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0035","series-title":"Proceedings of the 5th ACM SIGPLAN International Conference on Principles and Practice of Declaritive Programming, PPDP \u201903","first-page":"8","article-title":"A functional correspondence between evaluators and abstract machines","author":"Ager","year":"2003"},{"issue":"ICFP","key":"10.1016\/j.jvlc.2018.10.006_bib0036","doi-asserted-by":"crossref","first-page":"12:1","DOI":"10.1145\/3110256","article-title":"Abstracting definitional interpreters (functional pearl)","volume":"1","author":"Darais","year":"2017","journal-title":"Proc. ACM Program. Lang."},{"issue":"1","key":"10.1016\/j.jvlc.2018.10.006_bib0037","doi-asserted-by":"crossref","DOI":"10.1145\/1297658.1297664","article-title":"A concrete framework for environment machines","volume":"9","author":"Biernacka","year":"2007","journal-title":"ACM Trans. Comput. Logic"},{"issue":"26","key":"10.1016\/j.jvlc.2018.10.006_bib0038","article-title":"Refocusing in reduction semantics","volume":"11","author":"Danvy","year":"2004","journal-title":"BRICS Rep. Ser."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0039","series-title":"Programming Languages and Systems","first-page":"357","article-title":"Reasoning about multi-stage programs","author":"Inoue","year":"2012"},{"key":"10.1016\/j.jvlc.2018.10.006_bib0040","doi-asserted-by":"crossref","first-page":"e22","DOI":"10.1017\/S0956796816000253","article-title":"Reasoning about multi-stage programs","volume":"26","author":"Inoue","year":"2016","journal-title":"J. Funct. Program."},{"key":"10.1016\/j.jvlc.2018.10.006_bib0041","series-title":"Proceedings of the SAIG 2001 Semantics, Applications, and Implementation of Program Generation: Second International Workshop","first-page":"2","article-title":"Accomplishments and research challenges in meta-programming","volume":"2196","author":"Sheard","year":"2001"}],"container-title":["Journal of Computer Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1045926X18302039?httpAccept=text\/xml","content-type":"text\/xml","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/api.elsevier.com\/content\/article\/PII:S1045926X18302039?httpAccept=text\/plain","content-type":"text\/plain","content-version":"vor","intended-application":"text-mining"}],"deposited":{"date-parts":[[2020,2,27]],"date-time":"2020-02-27T17:51:18Z","timestamp":1582825878000},"score":1,"resource":{"primary":{"URL":"https:\/\/linkinghub.elsevier.com\/retrieve\/pii\/S1045926X18302039"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,4]]},"references-count":41,"alternative-id":["S1045926X18302039"],"URL":"https:\/\/doi.org\/10.1016\/j.jvlc.2018.10.006","relation":{},"ISSN":["2590-1184"],"issn-type":[{"value":"2590-1184","type":"print"}],"subject":[],"published":{"date-parts":[[2019,4]]},"assertion":[{"value":"Elsevier","name":"publisher","label":"This article is maintained by"},{"value":"Refining semantics for multi-stage programming","name":"articletitle","label":"Article Title"},{"value":"Journal of Computer Languages","name":"journaltitle","label":"Journal Title"},{"value":"https:\/\/doi.org\/10.1016\/j.jvlc.2018.10.006","name":"articlelink","label":"CrossRef DOI link to publisher maintained version"},{"value":"article","name":"content_type","label":"Content Type"},{"value":"\u00a9 2019 Elsevier Ltd. All rights reserved.","name":"copyright","label":"Copyright"}]}}