{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,4,29]],"date-time":"2026-04-29T19:30:35Z","timestamp":1777491035784,"version":"3.51.4"},"publisher-location":"Berlin, Heidelberg","reference-count":39,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540009047","type":"print"},{"value":"9783540365792","type":"electronic"}],"license":[{"start":{"date-parts":[[2003,1,1]],"date-time":"2003-01-01T00:00:00Z","timestamp":1041379200000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":["link.springer.com"],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2003]]},"DOI":"10.1007\/3-540-36579-6_11","type":"book-chapter","created":{"date-parts":[[2007,6,7]],"date-time":"2007-06-07T18:15:58Z","timestamp":1181240158000},"page":"138-152","update-policy":"https:\/\/doi.org\/10.1007\/springer_crossmark_policy","source":"Crossref","is-referenced-by-count":98,"title":["Polyglot: An Extensible Compiler Framework for Java"],"prefix":"10.1007","author":[{"given":"Nathaniel","family":"Nystrom","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Michael R.","family":"Clarkson","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Andrew C.","family":"Myers","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2003,2,28]]},"reference":[{"key":"11_CR1","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"278","DOI":"10.1007\/3-540-57877-3_19","volume-title":"Proceedings of the 5th International Compiler Construction Conference (CC\u201994)","author":"M. Alt","year":"1994","unstructured":"Martin Alt, Uwe A\u03b2mann, and Hans van Someren. Cosy compiler phase embedding with the CoSy compiler model. In Peter A. Fritzson, editor, Proceedings of the 5th International Compiler Construction Conference (CC\u201994), volume 786 of Lecture Notes in Computer Science, pages 278\u2013293, Edinburgh, UK, April 1994."},{"key":"11_CR2","doi-asserted-by":"crossref","unstructured":"Jason Baker and Wilson C. Hsieh. Maya: Multiple-dispatch syntax extension in Java. In Proc. of theACMSIGPLAN\u2019 02 Conference on Programming Language Design and Implementation (PLDI), pages 270\u2013281, Berlin, Germany, June 2002.","DOI":"10.1145\/512561.512562"},{"key":"11_CR3","doi-asserted-by":"crossref","unstructured":"Don Batory, Bernie Lofaso, and Yannis Smaragdakis. JTS: tools for implementing domainspecific languages. In Proceedings Fifth International Conference on Software Reuse, pages 143\u201353, Victoria, BC, Canada, 1998. IEEE.","DOI":"10.1109\/ICSR.1998.685739"},{"key":"11_CR4","unstructured":"Gilad Bracha. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah, 1992."},{"key":"11_CR5","doi-asserted-by":"crossref","unstructured":"Craig Chambers. Object-oriented multi-methods in Cecil. In Ole Lehrmann Madsen, editor, Proceedings of the 6th European Conference on Object-Oriented Programming (ECOOP), volume 615, pages 33\u201356, Berlin, Heidelberg, NewYork, Tokyo, 1992. Springer-Verlag.","DOI":"10.1007\/BFb0053029"},{"issue":"10","key":"11_CR6","first-page":"130","volume":"35","author":"C. Clifton","year":"2000","unstructured":"Curtis Clifton, Gary T. Leavens, Craig Chambers, and Todd Millstein. MultiJava: Modular open classes and symmetric multiple dispatch for Java. In OOPSLA 2000 Conference on Object-Oriented Programming, Systems, Languages, and Applications, Minneapolis, Minnesota, volume 35(10), pages 130\u2013145, 2000.","journal-title":"OOPSLA 2000 Conference on Object-Oriented Programming, Systems, Languages, and Applications, Minneapolis, Minnesota"},{"key":"11_CR7","doi-asserted-by":"crossref","unstructured":"Robert DeLine and Manuel F\u00e4hndrich. Enforcing high-level protocols in low-level software. In Proceedings of the ACM Conference on Programming Language Design and Implementation, pages 59\u201369, June 2001.","DOI":"10.1145\/381694.378811"},{"key":"11_CR8","doi-asserted-by":"crossref","unstructured":"Dawson Engler, Benjamin Chelf, Andy Chou, and Seth Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Proceedings of Fourth Usenix Symposium on Operating Systems Design and Implementation, San Diego, California, October 2000.","DOI":"10.21236\/ADA419626"},{"key":"11_CR9","unstructured":"Robert Bruce Findler, Cormac Flanagan, Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. DrScheme: A pedagogic programming environment for Scheme. In Proc. International Symposium on Programming Languages: Implementations, Logics, and Programs, pages 369\u2013388, 1997."},{"key":"11_CR10","doi-asserted-by":"crossref","unstructured":"Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge, Greg Nelson, James B. Saxe, and Raymie Stata. Extended static checking for Java. In Proc. of the ACM SIGPLAN\u2019 02 Conference on Programming Language Design and Implementation (PLDI), pages 234\u2013245, Berlin, Germany, June 2002.","DOI":"10.1145\/512529.512558"},{"key":"11_CR11","doi-asserted-by":"crossref","unstructured":"Matthew Flatt, Shriram Krishnamurthi, and Matthias Felleisen. Classes and mixins. In Conference Record ofPOPL98:The25THACMSIGPLAN-SIGACTSymposium on Principles of Programming Languages, San Diego, California, pages 171\u2013183, New York, NY, 1998.","DOI":"10.1145\/268946.268961"},{"key":"11_CR12","doi-asserted-by":"crossref","unstructured":"D. K. Frayne and Keith Playford. The Java syntactic extender (JSE). In Proceedings of the 2001 Conference on Object Oriented Programming Systems Languages and Applications (OOPSLA\u2019 01), pages 31\u201342, Tampa, FL, USA, 2001.","DOI":"10.1145\/504282.504285"},{"key":"11_CR13","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E. Gamma","year":"1994","unstructured":"Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. AddisonWesley, Reading, MA, 1994."},{"key":"11_CR14","unstructured":"James Gosling, Bill Joy, and Guy Steele. The Java Language Specification. Addison-Wesley, August 1996. ISBN 0-201-63451-1."},{"key":"11_CR15","unstructured":"Carl Gunter and John C. Mitchell, editors. Theoretical aspects of object-oriented programming. MIT Press, 1994."},{"issue":"1","key":"11_CR16","doi-asserted-by":"publisher","first-page":"37","DOI":"10.1016\/S0167-6423(02)00109-0","volume":"47","author":"G. Hedin","year":"2002","unstructured":"G\u00f6rel Hedin and Eva Magnusson. JastAdd-an aspect-oriented compiler construction system. Science of Computer Programming, 47(1):37\u201358, November 2002.","journal-title":"Science of Computer Programming"},{"key":"11_CR17","unstructured":"Scott E. Hudson, Frank Flannery, C. Scott Ananian, Dan Wang, and Andrew Appel. CUP LALR parser generator for Java, 1996. Software release. Located at http:\/\/www.cs.princeton.edu\/~appel\/modern\/java\/CUP\/ ."},{"key":"11_CR18","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"153","DOI":"10.1007\/3-540-63827-X_56","volume-title":"Proc. ISCOPE\u2019 97","author":"Y. Ichisugi","year":"1997","unstructured":"Yuuji Ichisugi and Yves Roudier. The extensible Java preprocessor kit and a tiny data-parallel Java. In Proc. ISCOPE\u2019 97, LNCS 1343, pages 153\u2013160. Springer, 1997."},{"key":"11_CR19","unstructured":"Richard Kelsey, William Clinger, and Jonathan Rees (editors). Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9):26\u201376, October 1998. Available at http:\/\/www.schemers.org\/Documents\/Standards\/R5RS ."},{"key":"11_CR20","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"220","DOI":"10.1007\/BFb0053381","volume-title":"Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP\u201997)","author":"G. Kiczales","year":"1997","unstructured":"Gregor Kiczales, John Lamping, Anurag Mendhekar, Chris Maeda, Cristina Videira Lopes, Jean-Marc Loingtier, and John Irwin. Aspect-oriented programming. In Proceedings of 11th European Conference on Object-Oriented Programming (ECOOP\u201997), number 1241 in Lecture Notes in Computer Science, pages 220\u2013242, Jyv\u00e4skyl\u00e4, Finland, June 1997. Springer-Verlag."},{"key":"11_CR21","series-title":"Technical Report","volume-title":"JPP: A Java pre-processor","author":"J. R. Kiniry","year":"1998","unstructured":"Joseph R. Kiniry and Elaine Cheong. JPP: A Java pre-processor. Technical Report CS-TR-98-15, California Institute of Technology, Pasadena, CA, September 1998."},{"key":"11_CR22","doi-asserted-by":"crossref","unstructured":"Shriram Krishnamurthi, Matthias Felleisen, and Daniel P. Friedman. Synthesizing objectoriented and functional design to promote re-use. In Proc. ECOOP\u2019 98, pages 91\u2013113, 1998.","DOI":"10.1007\/BFb0054088"},{"key":"11_CR23","doi-asserted-by":"crossref","unstructured":"Gary T. Leavens, K. Rustan M. Leino, Erik Poll, Clyde Ruby, and Bart Jacobs. JML: notations and tools supporting detailed design in Java. In OOPSLA 2000 Companion, pages 105\u2013106, Minneapolis, Minnesota, 2000.","DOI":"10.1145\/367845.367996"},{"key":"11_CR24","doi-asserted-by":"crossref","unstructured":"Jed Liu and Andrew C. Myers. JMatch: Abstract iterable pattern matching for Java. In Proc. 5th Int\u2019l Symp. on Practical Aspects of Declarative Languages, New Orleans, LA, January 2003.","DOI":"10.1007\/3-540-36388-2_9"},{"key":"11_CR25","doi-asserted-by":"crossref","unstructured":"Todd Millstein, Colin Bleckner, and Craig Chambers. Modular typechecking for hierarchically extensible datatypes and functions. In Proc. 7th ACM SIGPLAN International Conference on Functional Programming (ICFP), pages 110\u2013122, Philadelphia, PA, USA, October 2002.","DOI":"10.1145\/583852.581489"},{"key":"11_CR26","doi-asserted-by":"crossref","unstructured":"Andrew C. Myers. JFlow: Practical mostly-static information flowcontrol. In Proc. 26thACM Symp. on Principles of Programming Languages (POPL), pages 228\u2013241, San Antonio, TX, January 19991.","DOI":"10.1145\/292540.292561"},{"key":"11_CR27","doi-asserted-by":"crossref","unstructured":"Andrew C. Myers, Joseph A. Bank, and Barbara Liskov. Parameterized types for Java. In Proc. 24th ACM Symp. on Principles of Programming Languages (POPL), pages 132\u2013145, Paris, France, January 1997.","DOI":"10.1145\/263699.263714"},{"key":"11_CR28","doi-asserted-by":"crossref","unstructured":"Martin Odersky and Philip Wadler. Pizza into Java: Translating theory into practice. In Proc. 24th ACM Symp. on Principles of Programming Languages (POPL), pages 146\u2013159, Paris, France, January 1997.","DOI":"10.1145\/263699.263715"},{"key":"11_CR29","doi-asserted-by":"crossref","unstructured":"Terence Parr and Russell Quong. ANTLR: A predicated-LL(k) parser generator. Journal of Software Practice and Experience, 25(7), 1995.","DOI":"10.1002\/spe.4380250705"},{"key":"11_CR30","unstructured":"John C. Reynolds. User-defined types and procedural data structures as complementary approaches to data abstraction. In Stephen A. Schuman, editor, New Directions in Algorithmic Languages, pages 157\u2013168. Institut de Recherche d\u2019Informatique et d\u2019Automatique, Le Chesnay, France, 1975. Reprinted in [15], pages 13\u201323."},{"key":"11_CR31","unstructured":"Richard Snodgrass. The Scorpion system, August 1995. Software release. Located at ftp:\/\/ftp.cs.arizona.edu\/scorpion ."},{"key":"11_CR32","series-title":"Lect Notes Comput Sci","doi-asserted-by":"crossref","first-page":"290","DOI":"10.1007\/3-540-17189-4_104","volume-title":"Proceedings of the InternationalWorkshop on Advanced Programming Environments","author":"R. Snodgrass","year":"1986","unstructured":"Richard Snodgrass and Karen Shannon. Supporting flexible and efficient tool integration. In Proceedings of the InternationalWorkshop on Advanced Programming Environments, number 244 in Lecture Notes in Computer Science, pages 290\u2013313, Trondheim, Norway, June 1986."},{"key":"11_CR33","unstructured":"Sun Microsystems. Java Language Specification, version 1.0 beta edition, October 1995. Available at ftp:\/\/ftp.javasoft.com\/docs\/javaspec.ps.zip ."},{"key":"11_CR34","series-title":"Lect Notes Comput Sci","doi-asserted-by":"publisher","first-page":"119","DOI":"10.1007\/3-540-45046-7_7","volume-title":"Reflection and Software Engineering","author":"M. Tatsubori","year":"2000","unstructured":"Michiaki Tatsubori, Shigeru Chiba, Marc-Oliver Killijian, and Kozo Itano. OpenJava: A class-based macro system for Java. In Walter Cazzola, Robert J. Stroud, and Francesco Tisato, editors, Reflection and Software Engineering, LNCS 1826, pages 119\u2013135. Springer-Verlag, July 2000."},{"key":"11_CR35","unstructured":"J. Vlissides. Visitors in frameworks. C++ Report, 11(10), November 1999."},{"issue":"12","key":"11_CR36","doi-asserted-by":"publisher","first-page":"31","DOI":"10.1145\/193209.193217","volume":"29","author":"R. P. Wilson","year":"1994","unstructured":"R. P. Wilson, R. S. French, C. S. Wilson, S. P. Amarasinghe, J. M. Anderson, S.W. K. Tjiang, S.-W. Liao, C.-W. Tseng, M. W. Hall, M. S. Lam, and J. L. Hennessy. SUIF: An infrastructure for research on parallelizing and optimizing compilers. SIGPLAN Notices, 29(12):31\u201337, 1994.","journal-title":"SIGPLAN Notices"},{"key":"11_CR37","doi-asserted-by":"crossref","unstructured":"Steve Zdancewic, Lantian Zheng, Nathaniel Nystrom, and Andrew C. Myers. Untrusted hosts and confidentiality: Secure program partitioning. In Proc. 18th ACM Symp. on Operating System Principles (SOSP), pages 1\u201314, Banff, Canada, October 2001.","DOI":"10.1145\/502059.502036"},{"key":"11_CR38","doi-asserted-by":"crossref","unstructured":"Matthias Zenger and Martin Odersky. Extensible algebraic datatypes with defaults. In Proc. 6th ACM SIGPLAN International Conference on Functional Programming (ICFP), Firenze, Italy, September 2001.","DOI":"10.1145\/507635.507665"},{"key":"11_CR39","unstructured":"Matthias Zenger and Martin Odersky. Implementing extensible compilers. In ECOOPWorkshop on Multiparadigm Programming with Object-Oriented Languages, Budapest, Hungary, June 2001."}],"container-title":["Lecture Notes in Computer Science","Compiler Construction"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/3-540-36579-6_11","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,17]],"date-time":"2025-01-17T01:54:02Z","timestamp":1737078842000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/3-540-36579-6_11"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003]]},"ISBN":["9783540009047","9783540365792"],"references-count":39,"URL":"https:\/\/doi.org\/10.1007\/3-540-36579-6_11","relation":{},"ISSN":["0302-9743"],"issn-type":[{"value":"0302-9743","type":"print"}],"subject":[],"published":{"date-parts":[[2003]]},"assertion":[{"value":"28 February 2003","order":1,"name":"first_online","label":"First Online","group":{"name":"ChapterHistory","label":"Chapter History"}}]}}