{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:19:13Z","timestamp":1750306753644,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":50,"publisher":"ACM","license":[{"start":{"date-parts":[[2010,10,16]],"date-time":"2010-10-16T00:00:00Z","timestamp":1287187200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100004783","name":"SAP America","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100004783","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2010,10,16]]},"DOI":"10.1145\/2493288.2493291","type":"proceedings-article","created":{"date-parts":[[2014,1,2]],"date-time":"2014-01-02T13:09:53Z","timestamp":1388668193000},"page":"1-35","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Design principles for internal domain-specific languages"],"prefix":"10.1145","author":[{"given":"Sebastian","family":"G\u00fcnther","sequence":"first","affiliation":[{"name":"University of Magdeburg"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Thomas","family":"Cleenewerck","sequence":"additional","affiliation":[{"name":"Vrije Universiteit Brussel"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2010,10,16]]},"reference":[{"volume-title":"Proceedings of the Forum on specification and Design Languages (FDL). ECSI, 159--164","author":"Agosta G.","key":"e_1_3_2_1_1_1","unstructured":"Agosta , G. and Pelosi , G . 2007. A Domain Specific Language for Cryptography . In Proceedings of the Forum on specification and Design Languages (FDL). ECSI, 159--164 . Agosta, G. and Pelosi, G. 2007. A Domain Specific Language for Cryptography. In Proceedings of the Forum on specification and Design Languages (FDL). ECSI, 159--164."},{"volume-title":"ICSE-17 Workshop on Formal Methods Application in Software Engineering. IEEE, 6--13","author":"Arnold B. R. T.","key":"e_1_3_2_1_2_1","unstructured":"Arnold , B. R. T. , Deursen , A. V. , and Res , M . 1995. Algebraic Specification of a Language for describing Financial Products . In ICSE-17 Workshop on Formal Methods Application in Software Engineering. IEEE, 6--13 . Arnold, B. R. T., Deursen, A. V., and Res, M. 1995. Algebraic Specification of a Language for describing Financial Products. In ICSE-17 Workshop on Formal Methods Application in Software Engineering. IEEE, 6--13."},{"volume-title":"Proceedings of the 25th International Conference on Software Engineering (ICSE). IEEE Computer Society, Washington, 187--197","author":"Batory D.","key":"e_1_3_2_1_3_1","unstructured":"Batory , D. , Sarvela , J. N. , and Rauschmayer , A . 2003. Scaling Step-Wise Refinement . In Proceedings of the 25th International Conference on Software Engineering (ICSE). IEEE Computer Society, Washington, 187--197 . Batory, D., Sarvela, J. N., and Rauschmayer, A. 2003. Scaling Step-Wise Refinement. In Proceedings of the 25th International Conference on Software Engineering (ICSE). IEEE Computer Society, Washington, 187--197."},{"volume-title":"Aerospace Conference. IEEE Computer Society, 1--18","author":"Bennett M.","key":"e_1_3_2_1_4_1","unstructured":"Bennett , M. , Borgen , R. , Havelund , K. , Ingham , M. , and Wagner , D . 2008. Development of a Prototype Domain-Specific Language for Monitor and Control Systems . In Aerospace Conference. IEEE Computer Society, 1--18 . Bennett, M., Borgen, R., Havelund, K., Ingham, M., and Wagner, D. 2008. Development of a Prototype Domain-Specific Language for Monitor and Control Systems. In Aerospace Conference. IEEE Computer Society, 1--18."},{"key":"e_1_3_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/6424.315691"},{"key":"e_1_3_2_1_6_1","unstructured":"Black A. P. Ducasse S. Nierstrasz O. and Pollet D. 2009a. Pharo by Example. Square Bracket Associates.  Black A. P. Ducasse S. Nierstrasz O. and Pollet D. 2009a. Pharo by Example . Square Bracket Associates."},{"key":"e_1_3_2_1_7_1","unstructured":"Black A. P. Ducasse S. Nierstrasz O. and Pollet D. 2009b. Squeak by Example 1st revised Ed. Square Bracket Associates.   Black A. P. Ducasse S. Nierstrasz O. and Pollet D. 2009b. Squeak by Example 1st revised Ed. Square Bracket Associates."},{"key":"e_1_3_2_1_8_1","volume-title":"Object-Oriented Analysis and Design with Applications","author":"Booch G.","unstructured":"Booch , G. 1994. Object-Oriented Analysis and Design with Applications 2 nd Ed. Addison Wesley Longman , Redwood City, CA, USA . Booch, G. 1994. Object-Oriented Analysis and Design with Applications 2nd Ed. Addison Wesley Longman, Redwood City, CA, USA.","edition":"2"},{"key":"e_1_3_2_1_9_1","volume-title":"First ACM SIGPLAN Workshop on Domain-Specific Languages (DSL)","author":"Bruce D.","year":"1997","unstructured":"Bruce , D. 1997 . What makes a good Domain-Specific Language? APOSTLE, and its Approach to Parallel Discrete Event Simulation . In First ACM SIGPLAN Workshop on Domain-Specific Languages (DSL) . University of Illinois Computer Science, Paris, France, 17--35. Bruce, D. 1997. What makes a good Domain-Specific Language? APOSTLE, and its Approach to Parallel Discrete Event Simulation. In First ACM SIGPLAN Workshop on Domain-Specific Languages (DSL). University of Illinois Computer Science, Paris, France, 17--35."},{"volume-title":"Proceedings of the Second EECE.","author":"Cannon B.","key":"e_1_3_2_1_10_1","unstructured":"Cannon , B. and Wohlstadter , E . 2007. Controlling Access to Resources within the Python Interpreter . Proceedings of the Second EECE. Cannon, B. and Wohlstadter, E. 2007. Controlling Access to Resources within the Python Interpreter. Proceedings of the Second EECE."},{"volume-title":"Multi-paradigm design for C++","author":"Coplien J. O.","key":"e_1_3_2_1_11_1","unstructured":"Coplien , J. O. 1999. Multi-paradigm design for C++ . Addison-Wesley , Boston, San Francisco, et al. Coplien, J. O. 1999. Multi-paradigm design for C++. Addison-Wesley, Boston, San Francisco, et al."},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1943226.1943241"},{"key":"e_1_3_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1006\/jvlc.2002.0234"},{"key":"e_1_3_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1593105.1593181"},{"key":"e_1_3_2_1_15_1","volume-title":"Generative Programming: Methods, Tools, and Applications","author":"Czarnecki K.","year":"2000","unstructured":"Czarnecki , K. and Eisenecker , U. W . 2000 . Generative Programming: Methods, Tools, and Applications . Addison-Wesley , Boston, San Franciso et al. Czarnecki, K. and Eisenecker, U. W. 2000. Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Boston, San Franciso et al."},{"key":"e_1_3_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1404927.1404930"},{"key":"e_1_3_2_1_17_1","unstructured":"Flanagan D. and Matsumoto Y. 2008. The Ruby Programming Language. O-Reilly Media Sebastopol USA.   Flanagan D. and Matsumoto Y. 2008. The Ruby Programming Language . O-Reilly Media Sebastopol USA."},{"key":"e_1_3_2_1_18_1","volume-title":"Proceedings of the 5th Conference on Pattern Languages of Programs (PLOP)","author":"Foote B, J. Y.","year":"1998","unstructured":"Foote B, J. Y. 1998 . Metadata and Active Object Models . In Proceedings of the 5th Conference on Pattern Languages of Programs (PLOP) . Washington University Department of Computer Science, Washington, USA. Foote B, J. Y. 1998. Metadata and Active Object Models. In Proceedings of the 5th Conference on Pattern Languages of Programs (PLOP). Washington University Department of Computer Science, Washington, USA."},{"key":"e_1_3_2_1_19_1","unstructured":"Gamma E. Helm R. Johnson R. and Vlissides J. 1997. Design Patterns - Elements of Reusable Object-Oriented Software 10th Ed. Addison-Wesley Reading Harlow et al.  Gamma E. Helm R. Johnson R. and Vlissides J. 1997. Design Patterns - Elements of Reusable Object-Oriented Software 10th Ed. Addison-Wesley Reading Harlow et al."},{"volume-title":"Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security (COMPASS '95)","author":"Groote J. F.","key":"e_1_3_2_1_20_1","unstructured":"Groote , J. F. , Van Vlijmen , S. F. M. , and Koorn , J. W. C. 1995. The Safety Guaranteeing System at Station Hoorn-Kersenboogerd . In Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security (COMPASS '95) . IEEE, 57--68. Groote, J. F., Van Vlijmen, S. F. M., and Koorn, J. W. C. 1995. The Safety Guaranteeing System at Station Hoorn-Kersenboogerd. In Proceedings of the Tenth Annual Conference on Computer Assurance Systems Integrity, Software Safety and Process Security (COMPASS '95). IEEE, 57--68."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1943226.1943230"},{"key":"e_1_3_2_1_22_1","volume-title":"Workshop des Centers for Very Large Business Applications (CVLBA), H.-K. Arndt and H. Krcmar, Eds. Shaker, Aachen, 11--21","author":"G\u00fcnther S.","year":"2009","unstructured":"G\u00fcnther , S. 2009 . Engineering Domain-Specific Languages with Ruby. In 3 . Workshop des Centers for Very Large Business Applications (CVLBA), H.-K. Arndt and H. Krcmar, Eds. Shaker, Aachen, 11--21 . G\u00fcnther, S. 2009. Engineering Domain-Specific Languages with Ruby. In 3. Workshop des Centers for Very Large Business Applications (CVLBA), H.-K. Arndt and H. Krcmar, Eds. Shaker, Aachen, 11--21."},{"key":"e_1_3_2_1_23_1","volume-title":"Proceedings of 12th European Conference on Pattern Languages of Programs (EuroPLoP).","author":"Haase A.","year":"2007","unstructured":"Haase , A. 2007 . Patterns for the Definition of Programming Languages . In Proceedings of 12th European Conference on Pattern Languages of Programs (EuroPLoP). Haase, A. 2007. Patterns for the Definition of Programming Languages. In Proceedings of 12th European Conference on Pattern Languages of Programs (EuroPLoP)."},{"key":"e_1_3_2_1_24_1","volume-title":"Software Language Engineering. First International Conference on Software Language Engineering (SLE), 5452","author":"H\u00f8st E. W.","year":"2008","unstructured":"H\u00f8st , E. W. and \u00d8stvold , B. M. 2008 . The java programmer's phrase book . In Software Language Engineering. First International Conference on Software Language Engineering (SLE), 5452 , 322--341. H\u00f8st, E. W. and \u00d8stvold, B. M. 2008. The java programmer's phrase book. In Software Language Engineering. First International Conference on Software Language Engineering (SLE), 5452, 322--341."},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.5555\/551789.853532"},{"key":"e_1_3_2_1_26_1","volume-title":"Tech. Rep. CMU\/SEI-90-TR-21","author":"Kang K.","year":"1990","unstructured":"Kang , K. , Cohen , S. , Hess , J. , Novak , W. , and Peterson , A . 1990 . Feature-Oriented Domain Analysis (FODA) Feasibility Study . Tech. Rep. CMU\/SEI-90-TR-21 , Software Engineering Institute, Carnegie Mellon University, USA. Kang, K., Cohen, S., Hess, J., Novak, W., and Peterson, A. 1990. Feature-Oriented Domain Analysis (FODA) Feasibility Study. Tech. Rep. CMU\/SEI-90-TR-21, Software Engineering Institute, Carnegie Mellon University, USA."},{"volume-title":"Proceedings of the USENIX Very High Level Languages Symposium (VHLLS). USENIX Association","author":"Ladd D. A.","key":"e_1_3_2_1_27_1","unstructured":"Ladd , D. A. and Ramming , J. C . 1994. Two Application Languages in Software Production . In Proceedings of the USENIX Very High Level Languages Symposium (VHLLS). USENIX Association , Berkeley, CA, USA, 10--18. Ladd, D. A. and Ramming, J. C. 1994. Two Application Languages in Software Production. In Proceedings of the USENIX Very High Level Languages Symposium (VHLLS). USENIX Association, Berkeley, CA, USA, 10--18."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/365230.365257"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1326304.1326319"},{"key":"e_1_3_2_1_30_1","volume-title":"Proceedings of the 3rd International Conference on Generative and Component-Based Software Engineering (GCSE), J. Bosch, Ed. Lecture Notes in Computer Science Series","volume":"2186","author":"Lopez-Herrejon R. E.","unstructured":"Lopez-Herrejon , R. E. and Batory , D . 2001. A Standard Problem for Evaluating Productline Methodologies . In Proceedings of the 3rd International Conference on Generative and Component-Based Software Engineering (GCSE), J. Bosch, Ed. Lecture Notes in Computer Science Series , vol. 2186 . Springer-Verlag, London, 10--24. Lopez-Herrejon, R. E. and Batory, D. 2001. A Standard Problem for Evaluating Productline Methodologies. In Proceedings of the 3rd International Conference on Generative and Component-Based Software Engineering (GCSE), J. Bosch, Ed. Lecture Notes in Computer Science Series, vol. 2186. Springer-Verlag, London, 10--24."},{"key":"e_1_3_2_1_31_1","volume-title":"Learning Python","author":"Lutz M.","unstructured":"Lutz , M. 2009. Learning Python 4 th Ed. O'Reilly Media , Sebastopol . Lutz, M. 2009. Learning Python 4th Ed. O'Reilly Media, Sebastopol.","edition":"4"},{"key":"e_1_3_2_1_32_1","volume-title":"Compiler Construction, An Advanced Course","author":"McKeeman W. M.","unstructured":"McKeeman , W. M. 1976. Programming language design . In Compiler Construction, An Advanced Course , 2 nd ed. Springer-Verlag , London, UK , 514--524. McKeeman, W. M. 1976. Programming language design. In Compiler Construction, An Advanced Course, 2nd ed. Springer-Verlag, London, UK, 514--524.","edition":"2"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1118890.1118892"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2009.67"},{"volume-title":"Proceedings of the 3rd International Conference on Pervasive Computing and Applications (ICSPA). IEEE, 757--762","author":"Munnelly J.","key":"e_1_3_2_1_35_1","unstructured":"Munnelly , J. and Clarke , S . 2008. A Domain-Specific Language for Ubiquitous Healthcare . In Proceedings of the 3rd International Conference on Pervasive Computing and Applications (ICSPA). IEEE, 757--762 . Munnelly, J. and Clarke, S. 2008. A Domain-Specific Language for Ubiquitous Healthcare. In Proceedings of the 3rd International Conference on Pervasive Computing and Applications (ICSPA). IEEE, 757--762."},{"key":"e_1_3_2_1_36_1","unstructured":"Odersky M. Spoon L. and Venners B. 2008. Programming in Scala. Artima Press Mountain View California USA.   Odersky M. Spoon L. and Venners B. 2008. Programming in Scala . Artima Press Mountain View California USA."},{"volume-title":"thesis","author":"Pane J. F.","key":"e_1_3_2_1_37_1","unstructured":"Pane , J. F. 2004. Dissertation . Ph.D. thesis , Carnegie Mellon University, Computer Science Department . Pane, J. F. 2004. Dissertation. Ph.D. thesis, Carnegie Mellon University, Computer Science Department."},{"key":"e_1_3_2_1_38_1","unstructured":"Perrotta P. 2010. Metaprogramming Ruby. The Pragmatic Bookshelf Raleigh.   Perrotta P. 2010. Metaprogramming Ruby . The Pragmatic Bookshelf Raleigh."},{"volume-title":"Concepts of Programming Languages","author":"Sebesta R. W.","key":"e_1_3_2_1_39_1","unstructured":"Sebesta , R. W. 1999. Concepts of Programming Languages . Addison-Wesley , Reading, Harlow et al. Sebesta, R. W. 1999. Concepts of Programming Languages. Addison-Wesley, Reading, Harlow et al."},{"volume-title":"Smalltalk by Example","author":"Sharp A.","key":"e_1_3_2_1_40_1","unstructured":"Sharp , A. 1997. Smalltalk by Example . McGraw-Hill Publishing Co. Sharp, A. 1997. Smalltalk by Example. McGraw-Hill Publishing Co."},{"key":"e_1_3_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-12107-4_12"},{"key":"e_1_3_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0164-1212(00)00089-3"},{"key":"e_1_3_2_1_43_1","volume-title":"Programming in Python 3: A Complete Introduction to the Python Programming Language","author":"Summerfield M.","unstructured":"Summerfield , M. 2010. Programming in Python 3: A Complete Introduction to the Python Programming Language 2 nd Ed. Addison-Wesley , Upper Saddle River, Boston et al. Summerfield, M. 2010. Programming in Python 3: A Complete Introduction to the Python Programming Language 2nd Ed. Addison-Wesley, Upper Saddle River, Boston et al.","edition":"2"},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1408681.1408684"},{"key":"e_1_3_2_1_45_1","unstructured":"Thibault S. Marlet R. and Consel C. 1997. A Domain-Specific Language for Video Device Drivers: from Design to Implementation. 11--26.  Thibault S. Marlet R. and Consel C. 1997. A Domain-Specific Language for Video Device Drivers: from Design to Implementation. 11--26."},{"key":"e_1_3_2_1_46_1","unstructured":"Thomas D. Fowler C. and Hunt A. 2009. Programming Ruby 1.9 - The Pragmatic Programmers' Guide. The Pragmatic Bookshelf Raleigh USA.   Thomas D. Fowler C. and Hunt A. 2009. Programming Ruby 1.9 - The Pragmatic Programmers' Guide . The Pragmatic Bookshelf Raleigh USA."},{"key":"e_1_3_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/352029.352035"},{"key":"e_1_3_2_1_48_1","unstructured":"Wampler D. and Payne A. 2009. Programming Scala. O'Reilly Media Sebastopol USA.  Wampler D. and Payne A. 2009. Programming Scala . O'Reilly Media Sebastopol USA."},{"volume-title":"The Philosophy of Programming Languages","author":"Weinberg G. M.","key":"e_1_3_2_1_49_1","unstructured":"Weinberg , G. M. 1971. The Philosophy of Programming Languages . John Wiley & Sons , New York . Weinberg, G. M. 1971. The Philosophy of Programming Languages. John Wiley & Sons, New York."},{"volume-title":"Proceedings of the 14th Annual European Conference on Pattern Languages of Programming (EuroPLoP), A. Kelly and M. Weiss, Eds. CEUR, RWTH Aachen","author":"Zdun U.","key":"e_1_3_2_1_51_1","unstructured":"Zdun , U. and Strembeck , M . 2009. Reusable Architectural Decisions for DSL Design: Foundational Decisions in DSL Projects . In Proceedings of the 14th Annual European Conference on Pattern Languages of Programming (EuroPLoP), A. Kelly and M. Weiss, Eds. CEUR, RWTH Aachen , Aachen, Germany. Zdun, U. and Strembeck, M. 2009. Reusable Architectural Decisions for DSL Design: Foundational Decisions in DSL Projects. In Proceedings of the 14th Annual European Conference on Pattern Languages of Programming (EuroPLoP), A. Kelly and M. Weiss, Eds. CEUR, RWTH Aachen, Aachen, Germany."}],"event":{"name":"PLoP '10: 17th Conference on Pattern Languages of Programs","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages","Hillside Group Hillside Group"],"location":"Reno Nevada USA","acronym":"PLoP '10"},"container-title":["Proceedings of the 17th Conference on Pattern Languages of Programs"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2493288.2493291","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2493288.2493291","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:28:33Z","timestamp":1750231713000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2493288.2493291"}},"subtitle":["a pattern catalog illustrated by Ruby"],"short-title":[],"issued":{"date-parts":[[2010,10,16]]},"references-count":50,"alternative-id":["10.1145\/2493288.2493291","10.1145\/2493288"],"URL":"https:\/\/doi.org\/10.1145\/2493288.2493291","relation":{},"subject":[],"published":{"date-parts":[[2010,10,16]]},"assertion":[{"value":"2010-10-16","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}