{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,4]],"date-time":"2024-09-04T22:14:16Z","timestamp":1725488056796},"publisher-location":"Berlin, Heidelberg","reference-count":35,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540411727"},{"type":"electronic","value":"9783540400486"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2000]]},"DOI":"10.1007\/3-540-40048-6_9","type":"book-chapter","created":{"date-parts":[[2007,7,31]],"date-time":"2007-07-31T21:19:39Z","timestamp":1185916779000},"page":"105-120","source":"Crossref","is-referenced-by-count":3,"title":["From Macros to Reusable Generative Programming"],"prefix":"10.1007","author":[{"given":"Shriram","family":"Krishnamurthi","sequence":"first","affiliation":[]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[]},{"given":"Bruce F.","family":"Duba","sequence":"additional","affiliation":[]}],"member":"297","published-online":{"date-parts":[[2000,11,11]]},"reference":[{"key":"9_CR1","doi-asserted-by":"crossref","unstructured":"Batory, D., B. Lofaso and Y. Smaragdakis. JTS: Tools for implementing domain-specific languages. In International Conference on Software Reuse, June 1998.","DOI":"10.1109\/ICSR.1998.685739"},{"issue":"4","key":"9_CR2","doi-asserted-by":"publisher","first-page":"355","DOI":"10.1145\/136586.136587","volume":"1","author":"D. Batory","year":"1992","unstructured":"Batory, D. and S. O\u2019Malley. The design and implementation of hierarchical software systems with reusable components. ACM Transactions on Software Engineering and Methodology, 1(4):355\u2013398, October 1992.","journal-title":"ACM Transactions on Software Engineering and Methodology"},{"key":"9_CR3","unstructured":"Bracha, G. The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. PhD thesis, University of Utah, March 1992."},{"key":"9_CR4","unstructured":"Cardelli, L., F. Matthes and M. Abadi. Extensible syntax with lexical scoping. Research Report 121, Digital SRC, 1994."},{"key":"9_CR5","unstructured":"Christensen, C. and C. J. Shaw, editors. Proceedings of the Extensible Languages Symposium. Association for Computing Machinery, 1969. Appeared as SIGPLAN Notices, 4(8):1\u201362, August 1969."},{"issue":"11","key":"9_CR6","doi-asserted-by":"publisher","first-page":"35","DOI":"10.1145\/101356.101357","volume":"25","author":"H. Christiansen","year":"1990","unstructured":"Christiansen, H. A survey of adaptable grammars. ACM SIGPLAN Notices, 25(11):35\u201344, November 1990.","journal-title":"ACM SIGPLAN Notices"},{"key":"9_CR7","doi-asserted-by":"crossref","unstructured":"Clinger, W. D. Proper tail recursion and space efficiency. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 174\u2013185, June 1998.","DOI":"10.1145\/277650.277719"},{"key":"9_CR8","unstructured":"Czarnecki, K. and U. Eisenecker. Generative Programming: Methods, Techniques, and Applications. Addison-Wesley, 1999."},{"issue":"1","key":"9_CR9","doi-asserted-by":"publisher","first-page":"53","DOI":"10.1007\/BF01806176","volume":"1","author":"R. K. Dybvig","year":"1988","unstructured":"Dybvig, R. K., D. P. Friedman and C. T. Haynes. Expansion-passing style: A general macro mechanism. Lisp and Symbolic Computation, 1(1):53\u201375, January 1988.","journal-title":"Lisp and Symbolic Computation"},{"issue":"4","key":"9_CR10","doi-asserted-by":"publisher","first-page":"295","DOI":"10.1007\/BF01806308","volume":"5","author":"R. K. Dybvig","year":"1993","unstructured":"Dybvig, R. K., R. Hieb and C. Bruggeman. Syntactic abstraction in Scheme. Lisp and Symbolic Computation, 5(4):295\u2013326, December 1993.","journal-title":"Lisp and Symbolic Computation"},{"issue":"6","key":"9_CR11","doi-asserted-by":"publisher","first-page":"379","DOI":"10.1002\/spe.4380170603","volume":"17","author":"J. Fairbairn","year":"1987","unstructured":"Fairbairn, J. Making form follow function: An exercise in functional programming style. Software\u2014Practice and Experience, 17(6):379\u2013386, June 1987.","journal-title":"Software\u2014Practice and Experience"},{"key":"9_CR12","doi-asserted-by":"crossref","unstructured":"Findler, R. B., C. Flanagan, M. Flatt, S. Krishnamurthi and M. Felleisen. DrScheme: A pedagogic programming environment for Scheme. In Ninth International Symposium on Programming Languages, Implementations, Logics, and Programs, pages 369\u2013388, 1997.","DOI":"10.1007\/BFb0033856"},{"key":"9_CR13","doi-asserted-by":"crossref","unstructured":"Flanagan, C., M. Flatt, S. Krishnamurthi, S. Weirich and M. Felleisen. Catching bugs in the web of program invariants. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 23\u201332, May 1996","DOI":"10.1145\/231379.231387"},{"key":"9_CR14","unstructured":"Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997."},{"key":"9_CR15","doi-asserted-by":"crossref","unstructured":"Flatt, M., S. Krishnamurthi and M. Felleisen. Classes and mixins. In Symposium on Principles of Programming Languages, pages 171\u2013183, January 1998.","DOI":"10.1145\/268946.268961"},{"key":"9_CR16","series-title":"Addison-Wesley Personal Computing Series","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E. Gamma","year":"1995","unstructured":"Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Personal Computing Series. Addison-Wesley, Reading, MA, 1995."},{"key":"9_CR17","doi-asserted-by":"crossref","unstructured":"Hudak, P. Modular domain specific languages and tools. In International Conference on Software Reuse, 1998.","DOI":"10.1109\/ICSR.1998.685738"},{"key":"9_CR18","doi-asserted-by":"crossref","unstructured":"Hudak, P., S. Peyton Jones and P. Wadler. Report on the programming language Haskell: a non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.","DOI":"10.1145\/130697.130699"},{"key":"9_CR19","series-title":"Computing Science Technical Report","volume-title":"YACC \u2014 yet another compiler compiler","author":"S. C. Johnson","year":"1975","unstructured":"Johnson, S. C. YACC \u2014 yet another compiler compiler. Computing Science Technical Report 32, AT&T Bell Laboratories, Murray Hill, NJ, USA, 1975."},{"key":"9_CR20","unstructured":"Kamin, S. and D. Hyatt. A special-purpose language for picture-drawing. In USENIX Conference on Domain-Specific Languages, 1997."},{"key":"9_CR21","doi-asserted-by":"crossref","unstructured":"Kelsey, R., W. Clinger and J. Rees. Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices, 33(9), October 1998.","DOI":"10.1145\/290229.290234"},{"key":"9_CR22","unstructured":"Kernighan, B. W. and D. M. Ritchie. The C Programming Language. Prentice-Hall, 1988."},{"key":"9_CR23","doi-asserted-by":"crossref","unstructured":"Kohlbecker, E. E., D. P. Friedman, M. Felleisen and B. F. Duba. Hygienic macro expansion. In ACM Symposium on Lisp and Functional Programming, pages 151\u2013161, 1986.","DOI":"10.1145\/319838.319859"},{"key":"9_CR24","doi-asserted-by":"crossref","unstructured":"Kohlbecker, E. E. and M. Wand. Macros-by-example: Deriving syntactic trans-formations from their specifications. In Symposium on Principles of Programming Languages, pages 77\u201384, 1987.","DOI":"10.1145\/41625.41632"},{"key":"9_CR25","unstructured":"Kohlbecker Jr, E. E. Syntactic Extensions in the Programming Language Lisp. PhD thesis, Indiana University, August 1986."},{"key":"9_CR26","doi-asserted-by":"crossref","unstructured":"Krishnamurthi, S., Y.-D. Erlich and M. Felleisen. Expressing structural properties as language constructs. In European Symposium on Programming, March 1999.","DOI":"10.1007\/3-540-49099-X_17"},{"key":"9_CR27","doi-asserted-by":"crossref","unstructured":"Krishnamurthi, S., M. Felleisen and D. P. Friedman. Synthesizing object-oriented and functional design to promote re-use. In European Conference on Object-Oriented Programming, pages 91\u2013113, July 1998.","DOI":"10.1007\/BFb0054088"},{"key":"9_CR28","volume-title":"Adaptive Object-Oriented Programming","author":"K. J. Lieberherr","year":"1996","unstructured":"Lieberherr, K. J. Adaptive Object-Oriented Programming. PWS Publishing, Boston, MA, USA, 1996."},{"issue":"4","key":"9_CR29","doi-asserted-by":"publisher","first-page":"214","DOI":"10.1145\/367177.367223","volume":"3","author":"M. D. McIlroy","year":"1960","unstructured":"McIlroy, M. D. Macro instruction extensions of compiler languages. Communications of the ACM, 3(4):214\u2013220, 1960.","journal-title":"Communications of the ACM"},{"key":"9_CR30","volume-title":"The Definition of Standard ML","author":"R. Milner","year":"1990","unstructured":"Milner, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990."},{"key":"9_CR31","series-title":"Technical Report","volume-title":"An abstract view of programming languages","author":"E. Moggi","year":"1990","unstructured":"Moggi, E. An abstract view of programming languages. Technical Report ECS-LFCS-90-113, Laboratory for Foundations of Computer Science, University of Edinburgh, Edinburgh, Scotland, 1990."},{"key":"9_CR32","doi-asserted-by":"crossref","unstructured":"Smaragdakis, Y. and D. Batory. Implementing layered designs and mixin layers. In European Conference on Object-Oriented Programming, pages 550\u2013570, July 1998.","DOI":"10.1007\/BFb0054107"},{"key":"9_CR33","volume-title":"Common Lisp: the Language","year":"1990","unstructured":"Steele, G. L., Jr., editor. Common Lisp: the Language. Digital Press, Bedford, MA, second edition, 1990.","edition":"second edition"},{"key":"9_CR34","doi-asserted-by":"crossref","unstructured":"Taha, W. and T. Sheard. Multi-stage programming with explicit annotations. In ACM SIGPLAN Symposium on Partial Evaluation and Semantics-Based Program Manipulation, pages 203\u2013217, 1997.","DOI":"10.1145\/258993.259019"},{"key":"9_CR35","doi-asserted-by":"crossref","unstructured":"Wadler, P. The essence of functional programming. In Symposium on Principles of Programming Languages, pages 1\u201314, January 1992.","DOI":"10.1145\/143165.143169"}],"container-title":["Lecture Notes in Computer Science","Generative and Component-Based Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/3-540-40048-6_9","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,1]],"date-time":"2019-05-01T12:27:26Z","timestamp":1556713646000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/3-540-40048-6_9"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2000]]},"ISBN":["9783540411727","9783540400486"],"references-count":35,"URL":"https:\/\/doi.org\/10.1007\/3-540-40048-6_9","relation":{},"ISSN":["0302-9743"],"issn-type":[{"type":"print","value":"0302-9743"}],"subject":[],"published":{"date-parts":[[2000]]}}}