{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,2,21]],"date-time":"2025-02-21T00:48:36Z","timestamp":1740098916281,"version":"3.37.3"},"publisher-location":"Cham","reference-count":56,"publisher":"Springer International Publishing","isbn-type":[{"type":"print","value":"9783319600734"},{"type":"electronic","value":"9783319600741"}],"license":[{"start":{"date-parts":[[2017,1,1]],"date-time":"2017-01-01T00:00:00Z","timestamp":1483228800000},"content-version":"unspecified","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2017]]},"DOI":"10.1007\/978-3-319-60074-1_7","type":"book-chapter","created":{"date-parts":[[2017,6,28]],"date-time":"2017-06-28T09:37:38Z","timestamp":1498642658000},"page":"154-178","source":"Crossref","is-referenced-by-count":1,"title":["Structured Program Generation Techniques"],"prefix":"10.1007","author":[{"given":"Yannis","family":"Smaragdakis","sequence":"first","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Aggelos","family":"Biboudis","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"George","family":"Fourtounis","sequence":"additional","affiliation":[],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"297","published-online":{"date-parts":[[2017,6,29]]},"reference":[{"key":"7_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/3-540-54444-5_83","volume-title":"Programming Language Implementation and Logic Programming","author":"AW Appel","year":"1991","unstructured":"Appel, A.W., MacQueen, D.B.: Standard ML of New Jersey. In: Maluszy\u0144ski, J., Wirsing, M. (eds.) PLILP 1991. LNCS, vol. 528, pp. 1\u201313. Springer, Heidelberg (1991). doi:\n10.1007\/3-540-54444-5_83\n\n. \nhttp:\/\/www.springerlink.com\/index\/YMU0P7QN06713188.pdf"},{"key":"7_CR2","doi-asserted-by":"crossref","unstructured":"Batory, D., Lofaso, B., Smaragdakis, Y.: JTS: tools for implementing domain-specific languages. In: Proceedings Fifth International Conference on Software Reuse, pp. 143\u2013153. IEEE, Victoria, BC, Canada (1998). \nciteseer.nj.nec.com\/171171.html","DOI":"10.1109\/ICSR.1998.685739"},{"key":"7_CR3","volume-title":"Interactive Theorem Proving and Program Development: Coq\u2019Art The Calculus of Inductive Constructions","author":"Y Bertot","year":"2010","unstructured":"Bertot, Y., Castran, P.: Interactive Theorem Proving and Program Development: Coq\u2019Art The Calculus of Inductive Constructions, 1st edn. Springer Publishing Company Incorporated, Heidelberg (2010)","edition":"1"},{"key":"7_CR4","unstructured":"Biboudis, A., Fourtounis, G., Smaragdakis, Y.: jUCM: universal class morphing (position paper). CoRR abs\/1506.05270 (2015). \nhttp:\/\/arxiv.org\/abs\/1506.05270"},{"key":"7_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"57","DOI":"10.1007\/978-3-540-39815-8_4","volume-title":"Generative Programming and Component Engineering","author":"C Calcagno","year":"2003","unstructured":"Calcagno, C., Taha, W., Huang, L., Leroy, X.: Implementing multi-stage languages using ASTs, gensym, and reflection. In: Pfenning, F., Smaragdakis, Y. (eds.) GPCE 2003. LNCS, vol. 2830, pp. 57\u201376. Springer, Heidelberg (2003). doi:\n10.1007\/978-3-540-39815-8_4"},{"issue":"5","key":"7_CR6","doi-asserted-by":"crossref","first-page":"509","DOI":"10.1017\/S0956796809007205","volume":"19","author":"J Carette","year":"2009","unstructured":"Carette, J., Kiselyov, O., Shan, C.C.: Finally tagless, partially evaluated: tagless staged interpreters for simpler typed languages. J. Funct. Program. 19(5), 509\u2013543 (2009). \nhttp:\/\/dx.doi.org\/10.1017\/S0956796809007205","journal-title":"J. Funct. Program."},{"key":"7_CR7","doi-asserted-by":"crossref","unstructured":"Chlipala, A.: Ur: statically-typed metaprogramming with type-level record computation. In: Proceedings of the 31st ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2010, NY, USA, pp. 122\u2013133 (2010). \nhttp:\/\/doi.acm.org\/10.1145\/1806596.1806612","DOI":"10.1145\/1806596.1806612"},{"key":"7_CR8","doi-asserted-by":"crossref","unstructured":"Chlipala, A.: The Bedrock structured programming system: combining generative metaprogramming and Hoare logic in an extensible program verifier. In: Proceedings of the 18th ACM SIGPLAN International Conference on Functional Programming, ICFP 2013, NY, USA, pp. 391\u2013402 (2013). \nhttp:\/\/doi.acm.org\/10.1145\/2500365.2500592","DOI":"10.1145\/2500365.2500592"},{"key":"7_CR9","unstructured":"Chlipala, A.: The Ur\/Web Manual (2015). \nhttp:\/\/www.impredicative.com\/ur\/manual.pdf"},{"key":"7_CR10","doi-asserted-by":"crossref","unstructured":"Clinger, W., Rees, J.: Macros that work. In: Proceedings of the 18th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1991, NY, USA, pp. 155\u2013162 (1991). \nhttp:\/\/doi.acm.org\/10.1145\/99583.99607","DOI":"10.1145\/99583.99607"},{"key":"7_CR11","doi-asserted-by":"crossref","unstructured":"Consel, C., Danvy, O.: Tutorial notes on partial evaluation. In: Proceedings of the 20th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1993, NY, USA, pp. 493\u2013501 (1993). \nhttp:\/\/doi.acm.org\/10.1145\/158511.158707","DOI":"10.1145\/158511.158707"},{"key":"7_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"51","DOI":"10.1007\/978-3-540-25935-0_4","volume-title":"Domain-Specific Program Generation","author":"K Czarnecki","year":"2004","unstructured":"Czarnecki, K., O\u2019Donnell, J.T., Striegnitz, J., Taha, W.: DSL implementation in MetaOCaml, Template Haskell, and C++. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 51\u201372. Springer, Heidelberg (2004). doi:\n10.1007\/978-3-540-25935-0_4"},{"key":"7_CR13","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/11561347_22","volume-title":"Generative Programming and Component Engineering","author":"D Draheim","year":"2005","unstructured":"Draheim, D., Lutteroth, C., Weber, G.: A type system for reflective program generators. In: Gl\u00fcck, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 327\u2013341. Springer, Heidelberg (2005). doi:\n10.1007\/11561347_22"},{"issue":"5","key":"7_CR14","doi-asserted-by":"crossref","first-page":"509","DOI":"10.1017\/S0956796809007205","volume":"19","author":"J Carette","year":"2009","unstructured":"Carette, J., Kiselyov, O., Shan, C.C.: Finally tagless, partially evaluated: Tagless staged interpreters for simpler typed languages. J. Funct. Program. 19(5), 509\u2013543 (2009). \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/0020019077900783","journal-title":"J. Funct. Program."},{"key":"7_CR15","doi-asserted-by":"crossref","unstructured":"F\u00e4hndrich, M., Carbin, M., Larus, J.R.: Reflective program generation with patterns. In: Proceedings of the 5th International Conference on Generative Programming and Component Engineering, GPCE 2006, NY, USA, pp. 275\u2013284 (2006). \nhttp:\/\/doi.acm.org\/10.1145\/1173706.1173748","DOI":"10.1145\/1173706.1173748"},{"key":"7_CR16","doi-asserted-by":"crossref","unstructured":"Gerakios, P., Biboudis, A., Smaragdakis, Y.: Forsaking inheritance: supercharged delegation in DelphJ. In: Proceedings of the 2013 ACM SIGPLAN International Conference on Object Oriented Programming Systems Languages & Applications, OOPSLA 2013, NY, USA, pp. 233\u2013252 (2013). \nhttp:\/\/doi.acm.org\/10.1145\/2509136.2509535","DOI":"10.1145\/2509136.2509535"},{"key":"7_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"48","DOI":"10.1007\/978-3-540-78739-6_4","volume-title":"Programming Languages and Systems","author":"D Herman","year":"2008","unstructured":"Herman, D., Wand, M.: A theory of hygienic macros. In: Drossopoulou, S. (ed.) ESOP 2008. LNCS, vol. 4960, pp. 48\u201362. Springer, Heidelberg (2008). doi:\n10.1007\/978-3-540-78739-6_4"},{"issue":"1","key":"7_CR18","doi-asserted-by":"crossref","first-page":"47","DOI":"10.1016\/j.scico.2006.02.002","volume":"62","author":"CA Herrmann","year":"2006","unstructured":"Herrmann, C.A., Langhammer, T.: Combining partial evaluation and staged interpretation in the implementation of domain-specific languages. Sci. Comput. Program. 62(1), 47\u201365 (2006). \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642306000736","journal-title":"Sci. Comput. Program."},{"key":"7_CR19","doi-asserted-by":"crossref","unstructured":"Huang, S.S., Smaragdakis, Y.: Expressive and safe static reflection with MorphJ. In: Proceedings of the 29th ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2008, NY, USA, pp. 79\u201389 (2008). \nhttp:\/\/doi.acm.org\/10.1145\/1375581.1375592","DOI":"10.1145\/1375581.1375592"},{"issue":"2","key":"7_CR20","doi-asserted-by":"crossref","first-page":"6:1","DOI":"10.1145\/1890028.1890029","volume":"33","author":"SS Huang","year":"2011","unstructured":"Huang, S.S., Smaragdakis, Y.: Morphing: structurally shaping a class by reflecting on others. ACM Trans. Program. Lang. Syst. 33(2), 6:1\u20136:44 (2011). \nhttp:\/\/doi.acm.org\/10.1145\/1890028.1890029","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"7_CR21","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"399","DOI":"10.1007\/978-3-540-73589-2_19","volume-title":"ECOOP 2007 \u2013 Object-Oriented Programming","author":"SS Huang","year":"2007","unstructured":"Huang, S.S., Zook, D., Smaragdakis, Y.: Morphing: safely shaping a class in the image of others. In: Ernst, E. (ed.) ECOOP 2007. LNCS, vol. 4609, pp. 399\u2013424. Springer, Heidelberg (2007). doi:\n10.1007\/978-3-540-73589-2_19"},{"issue":"5","key":"7_CR22","doi-asserted-by":"crossref","first-page":"376","DOI":"10.1016\/j.scico.2008.09.007","volume":"76","author":"SS Huang","year":"2011","unstructured":"Huang, S.S., Zook, D., Smaragdakis, Y.: Statically safe program generation with safegen. Sci. Comput. Program. 76(5), 376\u2013391 (2011). \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642308001111","journal-title":"Sci. Comput. Program."},{"key":"7_CR23","unstructured":"Inoue, J., Kiselyov, O., Kameyama, Y.: The next stage of staging. In: Proceedings of the 17th workshop on Programming and Programming Languages (PPL) (2015)"},{"issue":"3","key":"7_CR24","doi-asserted-by":"crossref","first-page":"480","DOI":"10.1145\/243439.243447","volume":"28","author":"ND Jones","year":"1996","unstructured":"Jones, N.D.: An introduction to partial evaluation. ACM Comput. Surv. 28(3), 480\u2013503 (1996). \nhttp:\/\/doi.acm.org\/10.1145\/243439.243447","journal-title":"ACM Comput. Surv."},{"issue":"8","key":"7_CR25","doi-asserted-by":"crossref","first-page":"82","DOI":"10.1145\/988346.988358","volume":"20","author":"ND Jones","year":"1985","unstructured":"Jones, N.D., Sestoft, P., S\u00f8ndergaard, H.: An experiment in partial evaluation: the generation of a compiler generator. SIGPLAN Not. 20(8), 82\u201387 (1985). \nhttp:\/\/doi.acm.org\/10.1145\/988346.988358","journal-title":"SIGPLAN Not."},{"issue":"1","key":"7_CR26","doi-asserted-by":"crossref","first-page":"9","DOI":"10.1007\/BF01806312","volume":"2","author":"ND Jones","year":"1989","unstructured":"Jones, N.D., Sestoft, P., S\u00f8ndergaard, H.: Mix: a self-applicable partial evaluator for experiments in compiler generation. LISP Symb. Comput. 2(1), 9\u201350 (1989). \nhttp:\/\/dx.doi.org\/10.1007\/BF01806312","journal-title":"LISP Symb. Comput."},{"key":"7_CR27","doi-asserted-by":"crossref","unstructured":"J\u00f8rring, U., Scherlis, W.L.: Compilers and staging transformations. In: Proceedings of the 13th ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages, POPL 1986, NY, USA, pp. 86\u201396 (1986). \nhttp:\/\/doi.acm.org\/10.1145\/512644.512652","DOI":"10.1145\/512644.512652"},{"key":"7_CR28","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/3-540-45337-7_18","volume-title":"ECOOP 2001 \u2014 Object-Oriented Programming","author":"G Kiczales","year":"2001","unstructured":"Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol. 2072, pp. 327\u2013354. Springer, Heidelberg (2001). doi:\n10.1007\/3-540-45337-7_18"},{"key":"7_CR29","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"220","DOI":"10.1007\/BFb0053381","volume-title":"ECOOP\u201997 \u2014 Object-Oriented Programming","author":"G Kiczales","year":"1997","unstructured":"Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: Ak\u015fit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220\u2013242. Springer, Heidelberg (1997). doi:\n10.1007\/BFb0053381"},{"key":"7_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"86","DOI":"10.1007\/978-3-319-07151-0_6","volume-title":"Functional and Logic Programming","author":"O Kiselyov","year":"2014","unstructured":"Kiselyov, O.: The design and implementation of BER MetaOCaml. In: Codish, M., Sumii, E. (eds.) FLOPS 2014. LNCS, vol. 8475, pp. 86\u2013102. Springer, Cham (2014). doi:\n10.1007\/978-3-319-07151-0_6"},{"key":"7_CR31","doi-asserted-by":"crossref","unstructured":"Kiselyov, O., Biboudis, A., Palladinos, N., Smaragdakis, Y.: Stream fusion, to completeness. In: Proceedings of the 44th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2017, NY, USA, pp. 285\u2013299 (2017). \nhttp:\/\/doi.acm.org\/10.1145\/3009837.3009880","DOI":"10.1145\/3009837.3009880"},{"key":"7_CR32","doi-asserted-by":"crossref","unstructured":"Kohlbecker, E., Friedman, D.P., Felleisen, M., Duba, B.: Hygienic macro expansion. In: Proceedings of the 1986 ACM Conference on LISP and Functional Programming, LFP 1986, NY, USA, pp. 151\u2013161 (1986). \nhttp:\/\/doi.acm.org\/10.1145\/319838.319859","DOI":"10.1145\/319838.319859"},{"key":"7_CR33","doi-asserted-by":"crossref","unstructured":"Lorenzen, F., Erdweg, S.: Sound type-dependent syntactic language extension. In: Proceedings of the 43rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2016, NY, USA, pp. 204\u2013216 (2016). \nhttp:\/\/doi.acm.org\/10.1145\/2837614.2837644","DOI":"10.1145\/2837614.2837644"},{"key":"7_CR34","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/11561347_22","volume-title":"Generative Programming and Component Engineering","author":"D Draheim","year":"2005","unstructured":"Draheim, D., Lutteroth, C., Weber, G.: A type system for reflective program generators. In: Gl\u00fcck, R., Lowry, M. (eds.) GPCE 2005. LNCS, vol. 3676, pp. 327\u2013341. Springer, Heidelberg (2005). doi:\n10.1007\/11561347_22\n\n. \nhttp:\/\/dx.doi.org\/10.1016\/j.scico.2010.12.002"},{"key":"7_CR35","doi-asserted-by":"crossref","unstructured":"Mainland, G.: Why it\u2019s nice to be quoted: quasiquoting for haskell. In: Proceedings of the ACM SIGPLAN Workshop on Haskell Workshop, Haskell 2007, NY, USA, pp. 73\u201382 (2007). \nhttp:\/\/doi.acm.org\/10.1145\/1291201.1291211","DOI":"10.1145\/1291201.1291211"},{"key":"7_CR36","doi-asserted-by":"crossref","unstructured":"Miao, W., Siek, J.: Pattern-based traits. In: Proceedings of the 27th Annual ACM Symposium on Applied Computing, SAC 2012, NY, USA, pp. 1729\u20131736 (2012). \nhttp:\/\/doi.acm.org\/10.1145\/2245276.2232057","DOI":"10.1145\/2245276.2232057"},{"key":"7_CR37","doi-asserted-by":"crossref","unstructured":"Miao, W., Siek, J.: Compile-time reflection and metaprogramming for Java. In: Proceedings of the ACM SIGPLAN 2014 Workshop on Partial Evaluation and Program Manipulation, PEPM 2014, NY, USA, pp. 27\u201337 (2014). \nhttp:\/\/doi.acm.org\/10.1145\/2543728.2543739","DOI":"10.1145\/2543728.2543739"},{"key":"7_CR38","doi-asserted-by":"crossref","unstructured":"Moors, A., Piessens, F., Odersky, M.: Generics of a higher kind. In: Proceedings of the 23rd ACM SIGPLAN Conference on Object-oriented Programming Systems Languages and Applications, OOPSLA 2008, NY, USA, pp. 423\u2013438 (2008). \nhttp:\/\/doi.acm.org\/10.1145\/1449764.1449798","DOI":"10.1145\/1449764.1449798"},{"key":"7_CR39","doi-asserted-by":"crossref","unstructured":"Moors, A., Rompf, T., Haller, P., Odersky, M.: Scala-virtualized. In: Proceedings of the ACM SIGPLAN 2012 Workshop on Partial Evaluation and Program Manipulation, PEPM 2012, NY, USA, pp. 117\u2013120 (2012). \nhttp:\/\/doi.acm.org\/10.1145\/2103746.2103769","DOI":"10.1145\/2103746.2103769"},{"key":"7_CR40","unstructured":"Rompf, T., Brown, K.J., Lee, H., Sujeeth, A.K., Jonnalagedda, M., Amin, N., Ofenbeck, G., Stojanov, A., Klonatos, Y., Dashti, M., Koch, C., P\u00fcschel, M., Olukotun, K.: Go meta! a case for generative programming and DSLs in performance critical systems. In: Ball, T., Bod\u00edk, R., Krishnamurthi, S., Lerner, B.S., Morrisett, G. (eds.) 1st Summit on Advances in Programming Languages, SNAPL 3\u20136, 2015, Asilomar, California, USA. LIPIcs, 32, pp. 238\u2013261. Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik (2015). \nhttp:\/\/dx.doi.org\/10.4230\/LIPIcs.SNAPL.2015.238"},{"key":"7_CR41","doi-asserted-by":"crossref","unstructured":"Rompf, T., Odersky, M.: Lightweight modular staging: a pragmatic approach to runtime code generation and compiled DSLs. In: Proceedings of the Ninth International Conference on Generative Programming and Component Engineering, GPCE 2010, NY, USA, pp. 127\u2013136 (2010). \nhttp:\/\/doi.acm.org\/10.1145\/1868294.1868314","DOI":"10.1145\/1868294.1868314"},{"issue":"Part 2","key":"7_CR42","doi-asserted-by":"crossref","first-page":"219","DOI":"10.1016\/j.scico.2014.05.003","volume":"95","author":"M Servetto","year":"2014","unstructured":"Servetto, M., Zucca, E.: A meta-circular language for active libraries. Sci. Comput. Program. 95(Part 2), 219\u2013253 (2014). selectedandextendedpapersfromPartialEvaluationandProgramManipulation2013. \nhttp:\/\/www.sciencedirect.com\/science\/article\/pii\/S0167642314002317","journal-title":"Sci. Comput. Program."},{"key":"7_CR43","doi-asserted-by":"crossref","unstructured":"Sheard, T., Jones, S.P.: Template meta-programming for haskell. In: Proceedings of the 2002 ACM SIGPLAN Workshop on Haskell, Haskell 2002, NY, USA, pp. 1\u201316 (2002). \nhttp:\/\/doi.acm.org\/10.1145\/581690.581691","DOI":"10.1145\/581690.581691"},{"key":"7_CR44","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"550","DOI":"10.1007\/BFb0054107","volume-title":"ECOOP 1998 \u2014 Object-Oriented Programming","author":"Y Smaragdakis","year":"1998","unstructured":"Smaragdakis, Y., Batory, D.: Implementing layered designs with mixin layers. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol. 1445, pp. 550\u2013570. Springer, Heidelberg (1998). doi:\n10.1007\/BFb0054107"},{"key":"7_CR45","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"65","DOI":"10.1007\/3-540-40048-6_6","volume-title":"Generative and Component-Based Software Engineering","author":"Y Smaragdakis","year":"2000","unstructured":"Smaragdakis, Y., Batory, D.: Scoping constructs for software generators. In: Czarnecki, K., Eisenecker, U.W. (eds.) GCSE 1999. LNCS, vol. 1799, pp. 65\u201378. Springer, Heidelberg (2000). doi:\n10.1007\/3-540-40048-6_6\n\n. Earlier version in Technical Report UTCS-TR-96-37 (1999)"},{"key":"7_CR46","volume-title":"Revised [6] Report on the Algorithmic Language Scheme","author":"M Sperber","year":"2010","unstructured":"Sperber, M., Dybvig, R.K., Flatt, M., van Straaten, A., Findler, R., Matthews, J.: Revised [6] Report on the Algorithmic Language Scheme, 1st edn. Cambridge University Press, New York (2010)","edition":"1"},{"key":"7_CR47","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"535","DOI":"10.1007\/978-3-642-31057-7_24","volume-title":"ECOOP 2012 \u2013 Object-Oriented Programming","author":"F Steimann","year":"2012","unstructured":"Steimann, F., Pilgrim, J.: Constraint-based refactoring with foresight. In: Noble, J. (ed.) ECOOP 2012. LNCS, vol. 7313, pp. 535\u2013559. Springer, Heidelberg (2012). doi:\n10.1007\/978-3-642-31057-7_24"},{"key":"7_CR48","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"30","DOI":"10.1007\/978-3-540-25935-0_3","volume-title":"Domain-Specific Program Generation","author":"W Taha","year":"2004","unstructured":"Taha, W.: A gentle introduction to multi-stage programming. In: Lengauer, C., Batory, D., Consel, C., Odersky, M. (eds.) Domain-Specific Program Generation. LNCS, vol. 3016, pp. 30\u201350. Springer, Heidelberg (2004). doi:\n10.1007\/978-3-540-25935-0_3"},{"key":"7_CR49","doi-asserted-by":"crossref","unstructured":"Taha, W., Sheard, T.: Multi-stage Programming with explicit annotations. In: Proceedings of the 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, PEPM 1997, NY, USA, pp. 203\u2013217 (1997). \nhttp:\/\/doi.acm.org\/10.1145\/258993.259019","DOI":"10.1145\/258993.259019"},{"key":"7_CR50","doi-asserted-by":"crossref","unstructured":"Tobin-Hochstadt, S., St-Amour, V., Culpepper, R., Flatt, M., Felleisen, M.: Languages as libraries. In: Proceedings of the 32Nd ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI 2011, NY, USA, pp. 132\u2013141 (2011). \nhttp:\/\/doi.acm.org\/10.1145\/1993498.1993514","DOI":"10.1145\/1993498.1993514"},{"issue":"6","key":"7_CR51","doi-asserted-by":"crossref","first-page":"31","DOI":"10.1145\/1391956.1391958","volume":"30","author":"L Tratt","year":"2008","unstructured":"Tratt, L.: Domain specific language implementation via compile-time meta-programming. ACM Trans. Program. Lang. Syst. 30(6), 31\u201340 (2008). \nhttp:\/\/doi.acm.org\/10.1145\/1391956.1391958","journal-title":"ACM Trans. Program. Lang. Syst."},{"key":"7_CR52","first-page":"26","volume":"7","author":"T Veldhuizen","year":"1995","unstructured":"Veldhuizen, T.: Expression templates. C++ Rep. 7, 26\u201331 (1995)","journal-title":"C++ Rep."},{"key":"7_CR53","unstructured":"Veldhuizen, T.: C++ templates are Turing complete. Indiana University, Technical report (2003)"},{"key":"7_CR54","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"299","DOI":"10.1007\/3-540-45821-2_19","volume-title":"Generative Programming and Component Engineering","author":"E Visser","year":"2002","unstructured":"Visser, E.: Meta-programming with concrete object syntax. In: Batory, D., Consel, C., Taha, W. (eds.) GPCE 2002. LNCS, vol. 2487, pp. 299\u2013315. Springer, Heidelberg (2002). doi:\n10.1007\/3-540-45821-2_19"},{"key":"7_CR55","doi-asserted-by":"crossref","unstructured":"Wadler, P., Blott, S.: How to make ad-hoc polymorphism less ad hoc. In: Proceedings of the 16th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1989, NY, USA, pp. 60\u201376 (1989). \nhttp:\/\/doi.acm.org\/10.1145\/75277.75283","DOI":"10.1145\/75277.75283"},{"key":"7_CR56","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"1","DOI":"10.1007\/978-3-540-30175-2_1","volume-title":"Generative Programming and Component Engineering","author":"D Zook","year":"2004","unstructured":"Zook, D., Huang, S.S., Smaragdakis, Y.: Generating AspectJ programs with Meta-AspectJ. In: Karsai, G., Visser, E. (eds.) GPCE 2004. LNCS, vol. 3286, pp. 1\u201318. Springer, Heidelberg (2004). doi:\n10.1007\/978-3-540-30175-2_1"}],"container-title":["Lecture Notes in Computer Science","Grand Timely Topics in Software Engineering"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-319-60074-1_7","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2017,6,28]],"date-time":"2017-06-28T09:43:03Z","timestamp":1498642983000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-319-60074-1_7"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017]]},"ISBN":["9783319600734","9783319600741"],"references-count":56,"URL":"https:\/\/doi.org\/10.1007\/978-3-319-60074-1_7","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2017]]}}}