{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,9,12]],"date-time":"2026-09-12T01:35:01Z","timestamp":1789176901166,"version":"build-2803163510"},"reference-count":70,"publisher":"Association for Computing Machinery (ACM)","issue":"5","license":[{"start":{"date-parts":[[2008,5,24]],"date-time":"2008-05-24T00:00:00Z","timestamp":1211587200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/501100001659","name":"Deutsche Forschungsgemeinschaft","doi-asserted-by":"publisher","award":["AP206\/2-1"],"award-info":[{"award-number":["AP206\/2-1"]}],"id":[{"id":"10.13039\/501100001659","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2010,5]]},"abstract":"<jats:p>\n            The goal of\n            <jats:italic>feature-oriented programming<\/jats:italic>\n            (FOP) is to modularize software systems in terms of features. A\n            <jats:italic>feature<\/jats:italic>\n            refines the content of a base program. Both base programs and features may contain various kinds of software artifacts, for example, source code in different languages, models, build scripts, and documentation. We and others have noticed that when composing features, different kinds of software artifacts can be refined in a uniform way, regardless of what they represent. We present gDeep, a core calculus for feature composition, which captures the language independence of FOP; it can be used to compose features containing many different kinds of artifact in a type-safe way. The calculus allows us to gain insight into the principles of FOP and to define general algorithms for feature composition and validation. We provide the formal syntax, operational semantics, and type system of gDeep and outline how languages like Java, Haskell, Bali, and XML can be plugged in.\n          <\/jats:p>","DOI":"10.1145\/1745312.1745316","type":"journal-article","created":{"date-parts":[[2010,5,25]],"date-time":"2010-05-25T13:08:17Z","timestamp":1274792897000},"page":"1-33","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":34,"title":["A calculus for uniform feature composition"],"prefix":"10.1145","volume":"32","author":[{"given":"Sven","family":"Apel","sequence":"first","affiliation":[{"name":"University of Passau, Passau, Germany"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Delesley","family":"Hutchins","sequence":"additional","affiliation":[{"name":"MZA Associates Corporation, Albuquerque, NM"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2008,5,24]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"crossref","unstructured":"Abadi M. and Cardelli L. 1996. A Theory of Objects. Springer-Verlag Berlin Germany.   Abadi M. and Cardelli L. 1996. A Theory of Objects. Springer-Verlag Berlin Germany.","DOI":"10.1007\/978-1-4419-8598-9"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/937563.937567"},{"key":"e_1_2_2_3_1","volume-title":"Proceedings of International Conference on Web Engineering (ICWE). Lecture Notes in Computer Science","volume":"4607","author":"Anfurrutia F."},{"key":"e_1_2_2_4_1","unstructured":"Apel S. and Hutchins D. 2007. An overview of the gDeep calculus. Tech. rep. MIP-0712 University of Passau.  Apel S. and Hutchins D. 2007. An overview of the gDeep calculus. Tech. rep. MIP-0712 University of Passau."},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02408-5_2"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.5381\/jot.2009.8.5.c5"},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-02655-3_3"},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-010-0066-8"},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1449913.1449931"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICSE.2009.5070523"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/11561347_10"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2007.70770"},{"key":"e_1_2_2_13_1","series-title":"Lecture Notes in Computer Science","volume-title":"Superimposition: A language-independent approach to software composition. In Proceedings of the International Symposium on Software Composition (SC)","author":"Apel S.","year":"2008"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-79980-1_4"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2010.02.001"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190238"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2004.23"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2007.05.003"},{"key":"e_1_2_2_19_1","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science","volume":"1628","author":"Bono V."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0950-5849(99)00007-5"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796803004775"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/73560.73581"},{"key":"e_1_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97982"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1218563.1218578"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0890-5401(03)00062-2"},{"key":"e_1_2_2_27_1","series-title":"Lecture Notes in Computer Science","volume-title":"Proceedings of the REX School\/Workshop on Foundations of Object-Oriented Languages","author":"Cook W."},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/1595696.1595733"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1119479.1119483"},{"key":"e_1_2_2_30_1","series-title":"Lecture Notes in Computer Science","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP)","author":"Ernst E."},{"key":"e_1_2_2_31_1","series-title":"Lecture Notes in Computer Science","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP)","author":"Ernst E."},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111037.1111062"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/289423.289432"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268961"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/1167473.1167475"},{"key":"e_1_2_2_36_1","unstructured":"Hutchins D. 2009. Pure Subtype Systems: A Type Theory For Extensible Software. Ph.D. dissertation University of Edinburgh Edinburgh UK.  Hutchins D. 2009. Pure Subtype Systems: A Type Theory For Extensible Software. Ph.D. dissertation University of Edinburgh Edinburgh UK."},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1706299.1706334"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320395"},{"key":"e_1_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.5555\/5280.5292"},{"key":"e_1_2_2_40_1","volume-title":"Proceedings of the Asian Symposium on Programming Languages and Systems (APLAS). Lecture Notes in Computer Science","volume":"3302","author":"Kamina T."},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1109\/ASE.2008.36"},{"key":"e_1_2_2_42_1","volume-title":"Proceedings of the International Software Product Line Conference (SPLC)","author":"K\u00e4stner C."},{"key":"e_1_2_2_43_1","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science","volume":"1241","author":"Kiczales G."},{"key":"e_1_2_2_44_1","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science","volume":"1445","author":"Krishnamurthi S."},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/587051.587066"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-005-2643-9"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/1134285.1134303"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/1111542.1111554"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74919"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/643603.643611"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.5555\/2111746.2111755"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/1029894.1029915"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.2002.3103"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028986"},{"key":"e_1_2_2_55_1","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP). Lecture Notes in Computer Science","volume":"2743","author":"Odersky M."},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/141936.141940"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1055"},{"key":"e_1_2_2_58_1","unstructured":"Pierce B. 2002. Types and Programming Languages. MIT Press Cambridge MA.   Pierce B. 2002. Types and Programming Languages. MIT Press Cambridge MA."},{"key":"e_1_2_2_59_1","series-title":"Lecture Notes in Computer Science","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP)","author":"Prehofer C."},{"key":"e_1_2_2_60_1","volume-title":"Theoretical Aspects of Object-Oriented Programming: Types, Semantics, and Language Design","author":"Reynolds J."},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/505145.505148"},{"key":"e_1_2_2_62_1","unstructured":"Steffen M. 1997. Polarized higher-order subtyping. Ph.D. dissertation University of Erlangen-Nuremberg Nuremberg Germany.  Steffen M. 1997. Polarized higher-order subtyping. Ph.D. dissertation University of Erlangen-Nuremberg Nuremberg Germany."},{"key":"e_1_2_2_63_1","unstructured":"Steffen M. and Pierce B. 1994. Higher-order subtyping. Tech. rep. ECS-LFCS-94-280 University of Edinburgh Edinburgh UK.  Steffen M. and Pierce B. 1994. Higher-order subtyping. Tech. rep. ECS-LFCS-94-280 University of Edinburgh Edinburgh UK."},{"key":"e_1_2_2_64_1","doi-asserted-by":"publisher","DOI":"10.1145\/302405.302457"},{"key":"e_1_2_2_65_1","unstructured":"Terese. 2003. Term rewriting systems. In Cambridge Tracts in Theoretical Computer Science. Vol. 55. Cambridge University Press.  Terese. 2003. Term rewriting systems. In Cambridge Tracts in Theoretical Computer Science. Vol. 55. Cambridge University Press."},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1145\/1289971.1289989"},{"key":"e_1_2_2_67_1","series-title":"Lecture Notes in Computer Science","volume-title":"Proceedings of the European Conference on Object-Oriented Programming (ECOOP)","author":"Torgersen M."},{"key":"e_1_2_2_68_1","doi-asserted-by":"publisher","DOI":"10.1145\/1173706.1173736"},{"key":"e_1_2_2_69_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1994.1093"},{"key":"e_1_2_2_70_1","volume-title":"Proceedings of the International Workshop on Foundations of Object-Oriented Languages (FOOL). ACM","author":"Zenger M."}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1745312.1745316","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1745312.1745316","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:26:16Z","timestamp":1750278376000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1745312.1745316"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2008,5,24]]},"references-count":70,"journal-issue":{"issue":"5","published-print":{"date-parts":[[2010,5]]}},"alternative-id":["10.1145\/1745312.1745316"],"URL":"https:\/\/doi.org\/10.1145\/1745312.1745316","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2008,5,24]]},"assertion":[{"value":"2009-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2009-11-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2008-05-24","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}