{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,31]],"date-time":"2026-03-31T20:12:14Z","timestamp":1774987934458,"version":"3.50.1"},"publisher-location":"Berlin, Heidelberg","reference-count":25,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540235804","type":"print"},{"value":"9783540301752","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2004]]},"DOI":"10.1007\/978-3-540-30175-2_12","type":"book-chapter","created":{"date-parts":[[2010,9,23]],"date-time":"2010-09-23T19:34:58Z","timestamp":1285270498000},"page":"225-243","source":"Crossref","is-referenced-by-count":7,"title":["Taming Macros"],"prefix":"10.1007","author":[{"given":"Ryan","family":"Culpepper","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","reference":[{"key":"12_CR1","first-page":"26","volume":"33","author":"R. Kelsey","year":"1998","unstructured":"Kelsey, R., Clinger, W., Rees (ed.), J.: Revised5 report of the algorithmic language Scheme. ACM SIGPLAN Notices\u00a033, 26\u201376 (1998)","journal-title":"ACM SIGPLAN Notices"},{"key":"12_CR2","doi-asserted-by":"crossref","unstructured":"Kohlbecker, E.E., Wand, M.: Macros-by-example: Deriving syntactic transformations from their specifications. In: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 77\u201384 (1987)","DOI":"10.1145\/41625.41632"},{"key":"12_CR3","doi-asserted-by":"publisher","first-page":"711","DOI":"10.1145\/6424.315691","volume":"29","author":"J. Bentley","year":"1986","unstructured":"Bentley, J.: Programming pearls: little languages. Commun. ACM\u00a029, 711\u2013721 (1986)","journal-title":"Commun. ACM"},{"key":"12_CR4","series-title":"Springer Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"254","DOI":"10.1007\/BFb0027798","volume-title":"Concurrency and Parallelism, Programming, Networking, and Security","author":"O. Shivers","year":"1996","unstructured":"Shivers, O.: A universal scripting framework, or lambda: the ultimate little language. In: Concurrency and Parallelism, Programming, Networking, and Security. Springer Lecture Notes in Computer Science, pp. 254\u2013265. Springer, Heidelberg (1996)"},{"key":"12_CR5","unstructured":"Culpepper, R., Felleisen, M.: Well-shaped macros. In: Proceedings of the Fourth Workshop on Scheme and Functional Programming, pp. 59\u201368 (2003)"},{"key":"12_CR6","unstructured":"Flatt, M.: PLT MzScheme: Language manual. Technical Report TR97-280, Rice University (1997), http:\/\/www.plt-scheme.org\/software\/mzscheme\/"},{"key":"12_CR7","unstructured":"Dybvig, R.K.: Chez Scheme User\u2019s Guide. Cadence Research Systems (1998)"},{"key":"12_CR8","doi-asserted-by":"publisher","first-page":"159","DOI":"10.1017\/S0956796801004208","volume":"12","author":"R.B. Findler","year":"2002","unstructured":"Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. Journal of Functional Programming\u00a012, 159\u2013182 (2002); A preliminary version of this paper appeared in PLILP 1997, LNCS volume 1292, pp. 369\u2013388 (1997)","journal-title":"Journal of Functional Programming"},{"key":"12_CR9","doi-asserted-by":"crossref","unstructured":"Kohlbecker, E.E., Friedman, D.P., Felleisen, M., Duba, B.F.: Hygienic macro expansion. In: ACM Symposium on Lisp and Functional Programming, pp. 151\u2013161 (1986)","DOI":"10.1145\/319838.319859"},{"key":"12_CR10","doi-asserted-by":"crossref","unstructured":"Clinger, W., Rees, J.: Macros that work. In: ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 155\u2013162 (1990)","DOI":"10.1145\/99583.99607"},{"key":"12_CR11","doi-asserted-by":"crossref","unstructured":"Wright, A., Felleisen, M.: A syntactic approach to type soundness. Information and Computation (1994) 38\u201394 First appeared as Technical Report TR160, Rice University (1991)","DOI":"10.1006\/inco.1994.1093"},{"key":"12_CR12","doi-asserted-by":"publisher","first-page":"575","DOI":"10.1145\/155183.155231","volume":"15","author":"R. Amadio","year":"1993","unstructured":"Amadio, R., Cardelli, L.: Subtyping recursive types. ACM Transactions on Programming Languages and Systems\u00a015, 575\u2013631 (1993)","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"12_CR13","doi-asserted-by":"crossref","unstructured":"Ganz, S.E., Sabry, A., Taha, W.: Macros as multi-stage computations: Type-safe, generative, binding macros in macroml. In: International Conference on Functional Programming, pp. 74\u201385 (2001)","DOI":"10.1145\/507635.507646"},{"key":"12_CR14","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1145\/581690.581691","volume-title":"ACM SIGPLAN Haskell Workshop 2002","author":"T. Sheard","year":"2002","unstructured":"Sheard, T., Peyton Jones, S.: Template metaprogramming for Haskell. In: Chakravarty, M.M.T. (ed.) ACM SIGPLAN Haskell Workshop 2002, pp. 1\u201316. ACM Press, New York (2002)"},{"key":"12_CR15","doi-asserted-by":"crossref","unstructured":"Weise, D., Crew, R.: Programmable syntax macros. In: ACM SIGPLAN Conference on Programming Language Design and Implementation, pp. 156\u2013165 (1993)","DOI":"10.1145\/155090.155105"},{"key":"12_CR16","first-page":"143","volume-title":"Proceedings Fifth International Conference on Software Reuse","author":"D. Batory","year":"1998","unstructured":"Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: tools for implementing domainspecific languages. In: Proceedings Fifth International Conference on Software Reuse, Victoria, BC, Canada, pp. 143\u2013153. IEEE, Los Alamitos (1998)"},{"key":"12_CR17","doi-asserted-by":"crossref","unstructured":"Bachrach, J., Playford, K.: The Java syntactic extender (jse). In: Processdings of the Conference on Object-Oriented Programming Systems, pp. 31\u201324 (2001)","DOI":"10.1145\/504311.504285"},{"key":"12_CR18","doi-asserted-by":"crossref","unstructured":"Baker, J., Hsieh, W.: Maya: Multiple-dispatch syntax extension in java. In: Proc. ACM Conference on Programming Language Design and Implementation, pp. 270\u2013281 (2002)","DOI":"10.1145\/512529.512562"},{"key":"12_CR19","doi-asserted-by":"publisher","first-page":"295","DOI":"10.1007\/BF01806308","volume":"5","author":"R.K. Dybvig","year":"1993","unstructured":"Dybvig, R.K., Hieb, R., Bruggeman, C.: Syntactic abstraction in Scheme. Lisp and Symbolic Computation\u00a05, 295\u2013326 (1993)","journal-title":"Lisp and Symbolic Computation"},{"key":"12_CR20","doi-asserted-by":"crossref","unstructured":"Findler, R.B., Felleisen, M.: Contracts for higher-order functions. In: ACM SIGPLAN International Conference on Functional Programming (2002)","DOI":"10.1145\/581478.581484"},{"key":"12_CR21","unstructured":"Findler, R.B.: Behavioral Software Contracts. PhD thesis, Rice University (2002)"},{"key":"12_CR22","unstructured":"Cardelli, L., Matthes, F., Abadi, M.: Extensible syntax with lexical scoping. Research Report 121, Digital SRC (1994)"},{"key":"12_CR23","volume-title":"The Scheme Programming Language","author":"R.K. Dybvig","year":"1987","unstructured":"Dybvig, R.K.: The Scheme Programming Language, 1st edn. Prentice-Hall, Englewood Cliffs (1987)","edition":"1"},{"key":"12_CR24","doi-asserted-by":"crossref","unstructured":"Flatt, M.: Composable and compilable macros: You want it when? In: ACM SIGPLAN International Conference on Functional Programming (2002)","DOI":"10.1145\/581478.581486"},{"key":"12_CR25","unstructured":"Queinnec, C.: Macroexpansion reflective tower. In: Kiczales, G. (ed.) Proceedings of the Reflection 1996 Conference, San Francisco (California, USA), pp. 93\u2013104 (1996)"}],"container-title":["Lecture Notes in Computer Science","Generative Programming and Component Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-30175-2_12.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2020,11,19]],"date-time":"2020-11-19T04:45:10Z","timestamp":1605761110000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-30175-2_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2004]]},"ISBN":["9783540235804","9783540301752"],"references-count":25,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-30175-2_12","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2004]]}}}