{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,19]],"date-time":"2025-06-19T04:41:56Z","timestamp":1750308116854,"version":"3.41.0"},"reference-count":6,"publisher":"Association for Computing Machinery (ACM)","issue":"8","license":[{"start":{"date-parts":[[2005,8,1]],"date-time":"2005-08-01T00:00:00Z","timestamp":1122854400000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGPLAN Not."],"published-print":{"date-parts":[[2005,8]]},"abstract":"<jats:p>This article describes how we extended the C# language by new constructs that provide means for generative programming. Those constructs make it possible to handle problems like the generation of user interfaces and certain crosscutting concerns in a less error prone and elegant way without affecting the overall language integrity.<\/jats:p>","DOI":"10.1145\/1089851.1089857","type":"journal-article","created":{"date-parts":[[2005,11,14]],"date-time":"2005-11-14T18:08:27Z","timestamp":1131991707000},"page":"29-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Generative programming for C#"],"prefix":"10.1145","volume":"40","author":[{"given":"Dirk","family":"Draheim","sequence":"first","affiliation":[{"name":"Freie Universit\u00e4t Berlin, Berlin, Germany"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Christof","family":"Lutteroth","sequence":"additional","affiliation":[{"name":"The University of Auckland, Auckland, New Zealand"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Gerald","family":"Weber","sequence":"additional","affiliation":[{"name":"The University of Auckland, Auckland, New Zealand"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2005,8]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Generative Programming - Methods, Tools, and Applications","author":"Czarnecki K.","year":"2000","unstructured":"K. Czarnecki and U. Eisenecker . Generative Programming - Methods, Tools, and Applications . Addison-Wesley , 2000 . K. Czarnecki and U. Eisenecker. Generative Programming - Methods, Tools, and Applications. Addison-Wesley, 2000."},{"key":"e_1_2_1_2_1","first-page":"207","volume-title":"Proceedings of 7th International Workshop on Design, Specification and Verification of Interactive Systems, LNCS 1946","author":"da Silva P. P.","year":"2000","unstructured":"P. P. da Silva . User Interface Declarative Models and Development Environments: A Survey . In Proceedings of 7th International Workshop on Design, Specification and Verification of Interactive Systems, LNCS 1946 , pages 207 -- 226 . Springer , June 2000 . P. P. da Silva. User Interface Declarative Models and Development Environments: A Survey. In Proceedings of 7th International Workshop on Design, Specification and Verification of Interactive Systems, LNCS 1946, pages 207--226. Springer, June 2000."},{"key":"e_1_2_1_3_1","first-page":"29","volume-title":"Proceedings of the IJCAI'95 Workshop on Reflection and Metalevel Architectures and their Applications in AI","author":"Demers Franois-Nicola","year":"1995","unstructured":"Franois-Nicola Demers and Jacques Malenfant . Reflection in Logic, Functional and Object-oriented Programming: a Short Comparative Study . In Proceedings of the IJCAI'95 Workshop on Reflection and Metalevel Architectures and their Applications in AI , pages 29 -- 38 , August 1995 . Franois-Nicola Demers and Jacques Malenfant. Reflection in Logic, Functional and Object-oriented Programming: a Short Comparative Study. In Proceedings of the IJCAI'95 Workshop on Reflection and Metalevel Architectures and their Applications in AI, pages 29--38, August 1995."},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1007\/11561347_22"},{"key":"e_1_2_1_5_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma Erich","year":"1995","unstructured":"Erich Gamma , Richard Helm , Ralph Johnson , and John Vlissides . Design Patterns: Elements of Reusable Object-Oriented Software . Addison Wesley , 1995 . Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison Wesley, 1995."},{"key":"e_1_2_1_6_1","volume-title":"Types and Programming Languages","author":"Pierce Benjamin C.","year":"2002","unstructured":"Benjamin C. Pierce . Types and Programming Languages . MIT Press , 2002 . Benjamin C. Pierce. Types and Programming Languages. MIT Press, 2002."}],"container-title":["ACM SIGPLAN Notices"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1089851.1089857","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1089851.1089857","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T16:08:16Z","timestamp":1750262896000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1089851.1089857"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005,8]]},"references-count":6,"journal-issue":{"issue":"8","published-print":{"date-parts":[[2005,8]]}},"alternative-id":["10.1145\/1089851.1089857"],"URL":"https:\/\/doi.org\/10.1145\/1089851.1089857","relation":{},"ISSN":["0362-1340","1558-1160"],"issn-type":[{"type":"print","value":"0362-1340"},{"type":"electronic","value":"1558-1160"}],"subject":[],"published":{"date-parts":[[2005,8]]},"assertion":[{"value":"2005-08-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}