{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,3,27]],"date-time":"2026-03-27T09:03:58Z","timestamp":1774602238772,"version":"3.50.1"},"reference-count":90,"publisher":"Association for Computing Machinery (ACM)","issue":"2","license":[{"start":{"date-parts":[[2006,3,1]],"date-time":"2006-03-01T00:00:00Z","timestamp":1141171200000},"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":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2006,3]]},"abstract":"<jats:p>\n            Inheritance is well-known and accepted as a mechanism for reuse in object-oriented languages. Unfortunately, due to the coarse granularity of inheritance, it may be difficult to decompose an application into an optimal class hierarchy that maximizes software reuse. Existing schemes based on single inheritance, multiple inheritance, or mixins, all pose numerous problems for reuse. To overcome these problems we propose\n            <jats:italic>traits<\/jats:italic>\n            , pure units of reuse consisting only of methods. We develop a formal model of traits that establishes how traits can be composed, either to form other traits, or to form classes. We also outline an experimental validation in which we apply traits to refactor a nontrivial application into composable units.\n          <\/jats:p>","DOI":"10.1145\/1119479.1119483","type":"journal-article","created":{"date-parts":[[2006,5,8]],"date-time":"2006-05-08T16:09:20Z","timestamp":1147104560000},"page":"331-388","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":177,"title":["Traits"],"prefix":"10.1145","volume":"28","author":[{"given":"St\u00e9phane","family":"Ducasse","sequence":"first","affiliation":[{"name":"University of Berne and LISTIC, University of Savoie, Annecy Cedex, France"}]},{"given":"Oscar","family":"Nierstrasz","sequence":"additional","affiliation":[{"name":"University of Berne, Berne, Switzerland"}]},{"given":"Nathanael","family":"Sch\u00e4rli","sequence":"additional","affiliation":[{"name":"University of Berne, Z\u00fcrich, Switzerland"}]},{"given":"Roel","family":"Wuyts","sequence":"additional","affiliation":[{"name":"Universit\u00e9 Libre de Bruxelles, Belgium"}]},{"given":"Andrew P.","family":"Black","sequence":"additional","affiliation":[{"name":"Portland State University, Portland, Oregon"}]}],"member":"320","published-online":{"date-parts":[[2006,3]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97966"},{"key":"e_1_2_1_2_1","volume-title":"ECOOP 2000","author":"Ancona D.","year":"1850","unstructured":"Ancona , D. , Lagorio , G. , and Zucca , E . 2000. Jam---a smooth extension of Java with mixins . In ECOOP 2000 . Number 1850 in Lecture Notes in Computer Science. 145--178.]] Ancona, D., Lagorio, G., and Zucca, E. 2000. Jam---a smooth extension of Java with mixins. In ECOOP 2000. Number 1850 in Lecture Notes in Computer Science. 145--178.]]"},{"key":"e_1_2_1_3_1","volume-title":"Mixins in Strongtalk. In ECOOP '02 Workshop on Inheritance.]]","author":"Bak L.","unstructured":"Bak , L. , Grarup , G. B. S. , Griesemer , R. , Griswold , D. , and H\u00f6lzle , U . 2002 . Mixins in Strongtalk. In ECOOP '02 Workshop on Inheritance.]] Bak, L., Grarup, G. B. S., Griesemer, R., Griswold, D., and H\u00f6lzle, U. 2002. Mixins in Strongtalk. In ECOOP '02 Workshop on Inheritance.]]"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236343"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/136586.136587"},{"key":"e_1_2_1_6_1","volume-title":"Proceedings of the 25th International Conference on Software Engineering. IEEE Computer Society, 187--197","author":"Batory D.","unstructured":"Batory , D. , Sarvela , J. N. , and Rauschmayer , A . 2003. Scaling step-wise refinement . In Proceedings of the 25th International Conference on Software Engineering. IEEE Computer Society, 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. IEEE Computer Society, 187--197.]]"},{"key":"e_1_2_1_7_1","volume-title":"Proceedings ICSE","author":"Black A. P.","year":"2004","unstructured":"Black , A. P. and Sch\u00e4rli , N . 2004. Traits: Tools and methodology . In Proceedings ICSE 2004 . 676--686.]] Black, A. P. and Sch\u00e4rli, N. 2004. Traits: Tools and methodology. In Proceedings ICSE 2004. 676--686.]]"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949311"},{"key":"e_1_2_1_9_1","volume-title":"Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior.]]","author":"Bobrow D. G.","unstructured":"Bobrow , D. G. and Goldstein , I. P . 1980. Representing design alternatives . In Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior.]] Bobrow, D. G. and Goldstein, I. P. 1980. Representing design alternatives. In Proceedings of the Conference on Artificial Intelligence and the Simulation of Behavior.]]"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1207\/s15516709cog0101_2"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/357146.357147"},{"key":"e_1_2_1_12_1","first-page":"1","article-title":"Safe metaclass composition using mixin-based inheritance","volume":"30","author":"Bouraqadi N.","year":"2004","unstructured":"Bouraqadi , N. 2004 . Safe metaclass composition using mixin-based inheritance . J. Comput. Lang. Syst. Struct. 30 , 1 -- 2 (Apr.), 49--61.]] Bouraqadi, N. 2004. Safe metaclass composition using mixin-based inheritance. J. Comput. Lang. Syst. Struct. 30, 1--2 (Apr.), 49--61.]]","journal-title":"J. Comput. Lang. Syst. Struct."},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/286936.286949"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97982"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/165854.165893"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/230849.230854"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/190679.190683"},{"key":"e_1_2_1_19_1","volume-title":"Flavors: A non-hierarchical approach to object-oriented programming. Tech. rep.","author":"Cannon H. I.","year":"1982","unstructured":"Cannon , H. I. 1982 . Flavors: A non-hierarchical approach to object-oriented programming. Tech. rep. , Symbolics Inc .]] Cannon, H. I. 1982. Flavors: A non-hierarchical approach to object-oriented programming. Tech. rep., Symbolics Inc.]]"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/203095.203096"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/38765.38822"},{"key":"e_1_2_1_22_1","volume-title":"OOPSLA '87 Panel P2: Varieties of inheritance. In OOPSLA '87 Addendum To The Proceedings. ACM Press, 35--40","author":"Cook S.","year":"1987","unstructured":"Cook , S. 1987 . OOPSLA '87 Panel P2: Varieties of inheritance. In OOPSLA '87 Addendum To The Proceedings. ACM Press, 35--40 .]] Cook, S. 1987. OOPSLA '87 Panel P2: Varieties of inheritance. In OOPSLA '87 Addendum To The Proceedings. ACM Press, 35--40.]]"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/96709.96721"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74922"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/141936.141938"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/966873.806468"},{"key":"e_1_2_1_27_1","volume-title":"Proceedings of TOOLS EUROPE '94","author":"Danforth S.","unstructured":"Danforth , S. and Forman , I. R . 1994. Derived metaclass in SOM . In Proceedings of TOOLS EUROPE '94 . 63--73.]] Danforth, S. and Forman, I. R. 1994. Derived metaclass in SOM. In Proceedings of TOOLS EUROPE '94. 63--73.]]"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74900"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.cl.2004.11.003"},{"key":"e_1_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/141936.141939"},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504299"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/190679.190682"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268961"},{"key":"e_1_2_1_34_1","volume-title":"Work: A New Dimension in Object-Oriented Programming","author":"Forman I. R.","year":"1999","unstructured":"Forman , I. R. and Danforth , S . 1999 . Putting Metaclasses to Work: A New Dimension in Object-Oriented Programming . Addison-Wesley .]] Forman, I. R. and Danforth, S. 1999. Putting Metaclasses to Work: A New Dimension in Object-Oriented Programming. Addison-Wesley.]]"},{"key":"e_1_2_1_35_1","unstructured":"Goldberg A. and Robson D. 1983. Smalltalk 80: the Language and its Implementation. Addison Wesley Reading Mass.]]   Goldberg A. and Robson D. 1983. Smalltalk 80: the Language and its Implementation. Addison Wesley Reading Mass.]]"},{"key":"e_1_2_1_36_1","volume-title":"Proceedings of the First Annual Conference of the National Association for Artificial Intelligence.]]","author":"Goldstein I. P.","unstructured":"Goldstein , I. P. and Bobrow , D. G . 1980a. Descriptions for a programming environment . In Proceedings of the First Annual Conference of the National Association for Artificial Intelligence.]] Goldstein, I. P. and Bobrow, D. G. 1980a. Descriptions for a programming environment. In Proceedings of the First Annual Conference of the National Association for Artificial Intelligence.]]"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/800087.802792"},{"key":"e_1_2_1_38_1","volume-title":"Proceedings of the Fifth International Joint Conference on Artifical Intelligence. 257--263","author":"Goldstein I. P.","unstructured":"Goldstein , I. P. and Roberts , R. B . 1977. Nudge, a knowledge-based scheduling program . In Proceedings of the Fifth International Joint Conference on Artifical Intelligence. 257--263 .]] Goldstein, I. P. and Roberts, R. B. 1977. Nudge, a knowledge-based scheduling program. In Proceedings of the Fifth International Joint Conference on Artifical Intelligence. 257--263.]]"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74909"},{"key":"e_1_2_1_40_1","first-page":"5","article-title":"The Larch family of specification languages","volume":"2","author":"Guttag J. V.","year":"1985","unstructured":"Guttag , J. V. , Horning , J. J. , and Wing , J. M. 1985 . The Larch family of specification languages . IEEE Trans. Softw. Eng. 2 , 5 (Sept.), 24--36.]] Guttag, J. V., Horning, J. J., and Wing, J. M. 1985. The Larch family of specification languages. IEEE Trans. Softw. Eng. 2, 5 (Sept.), 24--36.]]","journal-title":"IEEE Trans. Softw. Eng."},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/165854.165932"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/355045.355048"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/190679.190684"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/512760.512762"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/263698.263754"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.1002\/spe.504"},{"key":"e_1_2_1_48_1","volume-title":"Object-Oriented Programming in Common-Lisp","author":"Keene S. E.","unstructured":"Keene , S. E. 1989. Object-Oriented Programming in Common-Lisp . Addison Wesley .]] Keene, S. E. 1989. Object-Oriented Programming in Common-Lisp. Addison Wesley.]]"},{"key":"e_1_2_1_49_1","doi-asserted-by":"crossref","unstructured":"Kiczales G. des Rivi\u00e8res J. and Bobrow D. G. 1991. The Art of the Metaobject Protocol. MIT Press.]]   Kiczales G. des Rivi\u00e8res J. and Bobrow D. G. 1991. The Art of the Metaobject Protocol. MIT Press.]]","DOI":"10.7551\/mitpress\/1405.001.0001"},{"key":"e_1_2_1_50_1","volume-title":"Proceedings of ECOOP 2001","author":"Kiczales G.","year":"2072","unstructured":"Kiczales , G. , Hilsdale , E. , Hugunin , J. , Kersten , M. , Palm , J. , and Griswold , W. G . 2001. An overview of AspectJ . In Proceedings of ECOOP 2001 . Number 2072 in LNCS. Springer Verlag, 327--353.]] Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., and Griswold, W. G. 2001. An overview of AspectJ. In Proceedings of ECOOP 2001. Number 2072 in LNCS. Springer Verlag, 327--353.]]"},{"key":"e_1_2_1_51_1","volume-title":"Aspect-Oriented Programming. In Proceedings of ECOOP '97","volume":"1241","author":"Kiczales G.","unstructured":"Kiczales , G. , Lamping , J. , Mendhekar , A. , Maeda , C. , Lopes , C. , Loingtier , J.-M. , and Irwin , J . 1997 . Aspect-Oriented Programming. In Proceedings of ECOOP '97 , M. Aksit and S. Matsuoka, Eds. LNCS , vol. 1241 . Springer-Verlag, Jyvaskyla, Finland, 220--242.]] Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., and Irwin, J. 1997. Aspect-Oriented Programming. In Proceedings of ECOOP '97, M. Aksit and S. Matsuoka, Eds. LNCS, vol. 1241. Springer-Verlag, Jyvaskyla, Finland, 220--242.]]"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.5555\/646156.679712"},{"key":"e_1_2_1_53_1","first-page":"5","article-title":"Subclassing \u2260 Subtyping \u2260 Is-a","volume":"3","author":"LaLonde W.","year":"1991","unstructured":"LaLonde , W. and Pugh , J. 1991 . Subclassing \u2260 Subtyping \u2260 Is-a . J. Object-Oriented Prog. 3 , 5 (Jan.), 57--62.]] LaLonde, W. and Pugh, J. 1991. Subclassing \u2260 Subtyping \u2260 Is-a. J. Object-Oriented Prog. 3, 5 (Jan.), 57--62.]]","journal-title":"J. Object-Oriented Prog."},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/63264.63265"},{"key":"e_1_2_1_55_1","volume-title":"Proceedings of ISOTAS '96","author":"Ledoux T.","unstructured":"Ledoux , T. and Cointe , P . 1996. Explicit metaclasses as a tool for improving the design of class libraries . In Proceedings of ISOTAS '96 , LNCS 1049. JSSST-JAIST, 38--55.]] Ledoux, T. and Cointe, P. 1996. Explicit metaclasses as a tool for improving the design of class libraries. In Proceedings of ISOTAS '96, LNCS 1049. JSSST-JAIST, 38--55.]]"},{"key":"e_1_2_1_56_1","volume-title":"thesis","author":"Lienhard A.","unstructured":"Lienhard , A. 2004. Bootstrapping Traits . M.S. thesis , University of Bern.]] Lienhard, A. 2004. Bootstrapping Traits. M.S. thesis, University of Bern.]]"},{"key":"e_1_2_1_57_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97964"},{"key":"e_1_2_1_58_1","first-page":"1","article-title":"Encapsulation and composition as orthogonal operators on mixins: A solution to multiple inheritance problems","volume":"3","author":"Mens T.","year":"1996","unstructured":"Mens , T. and van Limberghen , M. 1996 . Encapsulation and composition as orthogonal operators on mixins: A solution to multiple inheritance problems . Object Oriented Systems 3 , 1, 1 -- 30 .]] Mens, T. and van Limberghen, M. 1996. Encapsulation and composition as orthogonal operators on mixins: A solution to multiple inheritance problems. Object Oriented Systems 3, 1, 1--30.]]","journal-title":"Object Oriented Systems"},{"key":"e_1_2_1_59_1","volume-title":"Object-oriented Software Construction","author":"Meyer B.","unstructured":"Meyer , B. 1988. Object-oriented Software Construction . Prentice-Hall .]] Meyer, B. 1988. Object-oriented Software Construction. Prentice-Hall.]]"},{"key":"e_1_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.5555\/129093"},{"key":"e_1_2_1_61_1","volume-title":"Object-Oriented Software Construction","author":"Meyer B.","unstructured":"Meyer , B. 1997. Object-Oriented Software Construction , Second ed. Prentice-Hall .]] Meyer, B. 1997. Object-Oriented Software Construction, Second ed. Prentice-Hall.]]"},{"key":"e_1_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0053380"},{"key":"e_1_2_1_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/582419.582426"},{"key":"e_1_2_1_64_1","volume-title":"Conference on the Principles and Practice of Programming in Java. ACM Press","author":"Mohnen M.","year":"2002","unstructured":"Mohnen , M. 2002 . Interfaces with default implementations in Java . In Conference on the Principles and Practice of Programming in Java. ACM Press , Dublin, Ireland, 35--40.]] Mohnen, M. 2002. Interfaces with default implementations in Java. In Conference on the Principles and Practice of Programming in Java. ACM Press, Dublin, Ireland, 35--40.]]"},{"key":"e_1_2_1_65_1","doi-asserted-by":"publisher","DOI":"10.1145\/28697.28698"},{"key":"e_1_2_1_66_1","unstructured":"Moura P. 2003. Logtalk. Ph.D. thesis Universidade da Beira Interior.]]  Moura P. 2003. Logtalk. Ph.D. thesis Universidade da Beira Interior.]]"},{"key":"e_1_2_1_67_1","unstructured":"Musser D. R. and Saini A. 1996. STL Tutorial and Reference Guide. Addison Wesley.]]   Musser D. R. and Saini A. 1996. STL Tutorial and Reference Guide. Addison Wesley.]]"},{"key":"e_1_2_1_68_1","volume-title":"Tech. Rep. 64, \u00e9cole Polytechnique F\u00e9d\u00e9rale de Lausanne, 1015 Lausanne, Switzerland.]]","author":"Odersky M.","year":"2004","unstructured":"Odersky , M. , Altherr , P. , Cremet , V. , Emir , B. , Maneth , S. , Micheloud , S. , Mihaylov , N. , Schinz , M. , Stenman , E. , and Zenger , M . 2004 . An overview of the Scala programming language. Tech. Rep. 64, \u00e9cole Polytechnique F\u00e9d\u00e9rale de Lausanne, 1015 Lausanne, Switzerland.]] Odersky, M., Altherr, P., Cremet, V., Emir, B., Maneth, S., Micheloud, S., Mihaylov, N., Schinz, M., Stenman, E., and Zenger, M. 2004. An overview of the Scala programming language. Tech. Rep. 64, \u00e9cole Polytechnique F\u00e9d\u00e9rale de Lausanne, 1015 Lausanne, Switzerland.]]"},{"key":"e_1_2_1_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/190679.190681"},{"key":"e_1_2_1_70_1","volume-title":"Object-Oriented Design Heuristics","author":"Riel A. J.","unstructured":"Riel , A. J. 1996. Object-Oriented Design Heuristics . Addison Wesley .]] Riel, A. J. 1996. Object-Oriented Design Heuristics. Addison Wesley.]]"},{"key":"e_1_2_1_72_1","volume-title":"Proceedings of ECOOP '89","author":"Sakkinen M.","year":"1989","unstructured":"Sakkinen , M. 1989 . Disciplined inheritance . In Proceedings of ECOOP '89 , S. Cook, Ed. Cambridge University Press, Nottingham, 39--56.]] Sakkinen, M. 1989. Disciplined inheritance. In Proceedings of ECOOP '89, S. Cook, Ed. Cambridge University Press, Nottingham, 39--56.]]"},{"key":"e_1_2_1_73_1","first-page":"155","article-title":"The darker side of C&plus;&plus; revisited","volume":"13","author":"Sakkinen M.","year":"1992","unstructured":"Sakkinen , M. 1992 . The darker side of C&plus;&plus; revisited . Structured Programming 13 , 4, 155 -- 177 .]] Sakkinen, M. 1992. The darker side of C&plus;&plus; revisited. Structured Programming 13, 4, 155--177.]]","journal-title":"Structured Programming"},{"key":"e_1_2_1_75_1","volume-title":"Tech. Rep. CSE-03-008, OGI School of Science & Engineering","author":"Sch\u00e4rli N.","year":"2003","unstructured":"Sch\u00e4rli , N. and Black , A. P . 2003 . A browser for incremental programming. Tech. Rep. CSE-03-008, OGI School of Science & Engineering , Beaverton, Oregon, USA. Apr.]] Sch\u00e4rli, N. and Black, A. P. 2003. A browser for incremental programming. Tech. Rep. CSE-03-008, OGI School of Science & Engineering, Beaverton, Oregon, USA. Apr.]]"},{"key":"e_1_2_1_76_1","volume-title":"Proceedings of ECOOP 2003 (European Conference on Object-Oriented Programming). LNCS","volume":"2743","author":"Sch\u00e4rli N.","unstructured":"Sch\u00e4rli , N. , Ducasse , S. , Nierstrasz , O. , and Black , A . 2003. Traits: Composable units of behavior . In Proceedings of ECOOP 2003 (European Conference on Object-Oriented Programming). LNCS , vol. 2743 . Springer Verlag, 248--274.]] Sch\u00e4rli, N., Ducasse, S., Nierstrasz, O., and Black, A. 2003. Traits: Composable units of behavior. In Proceedings of ECOOP 2003 (European Conference on Object-Oriented Programming). LNCS, vol. 2743. Springer Verlag, 248--274.]]"},{"key":"e_1_2_1_77_1","volume-title":"Proceedings of ECOOP 2004 (European Conference on Object-Oriented Programming). LNCS 3086","author":"Sch\u00e4rli N.","unstructured":"Sch\u00e4rli , N. , Ducasse , S. , Nierstrasz , O. , and Wuyts , R . 2004. Composable encapsulation policies . In Proceedings of ECOOP 2004 (European Conference on Object-Oriented Programming). LNCS 3086 . Springer Verlag, 26--50.]] Sch\u00e4rli, N., Ducasse, S., Nierstrasz, O., and Wuyts, R. 2004. Composable encapsulation policies. In Proceedings of ECOOP 2004 (European Conference on Object-Oriented Programming). LNCS 3086. Springer Verlag, 26--50.]]"},{"key":"e_1_2_1_78_1","doi-asserted-by":"publisher","DOI":"10.1145\/190679.199221"},{"key":"e_1_2_1_79_1","doi-asserted-by":"publisher","DOI":"10.5555\/645547.658858"},{"key":"e_1_2_1_80_1","volume-title":"Proceedings of ECOOP '98","volume":"1445","author":"Smaragdakis Y.","unstructured":"Smaragdakis , Y. and Batory , D . 1998. Implementing layered design with mixin layers . In Proceedings of ECOOP '98 , E. Jul, Ed. LNCS , vol. 1445 . Brussels, Belgium, 550--570.]] Smaragdakis, Y. and Batory, D. 1998. Implementing layered design with mixin layers. In Proceedings of ECOOP '98, E. Jul, Ed. LNCS, vol. 1445. Brussels, Belgium, 550--570.]]"},{"key":"e_1_2_1_81_1","volume-title":"2nd Symposium on Generative and Component-Based Software Engineering (GCSE","author":"Smaragdakis Y.","year":"2000","unstructured":"Smaragdakis , Y. and Batory , D . 2000. Mixin-based programming in C&plus;&plus; . In 2nd Symposium on Generative and Component-Based Software Engineering (GCSE 2000 ). Erfurth, Germany.]] Smaragdakis, Y. and Batory, D. 2000. Mixin-based programming in C&plus;&plus;. In 2nd Symposium on Generative and Component-Based Software Engineering (GCSE 2000). Erfurth, Germany.]]"},{"key":"e_1_2_1_82_1","doi-asserted-by":"publisher","DOI":"10.1145\/28697.28702"},{"key":"e_1_2_1_83_1","volume-title":"Common Lisp The Language","author":"Steele G. L.","unstructured":"Steele , G. L. 1990. Common Lisp The Language , Second ed. Digital Press .]] Steele, G. L. 1990. Common Lisp The Language, Second ed. Digital Press.]]"},{"key":"e_1_2_1_84_1","unstructured":"Stefik M. and Bobrow D. G. 1985. Object-oriented programming: Themes and variations. The AI Magazine.]]   Stefik M. and Bobrow D. G. 1985. Object-oriented programming: Themes and variations. The AI Magazine.]]"},{"key":"e_1_2_1_85_1","volume-title":"The C&plus;&plus","author":"Stroustrup B.","unstructured":"Stroustrup , B. 1986. The C&plus;&plus ; Programming Language. Addison Wesley , Reading, Mass.]] Stroustrup, B. 1986. The C&plus;&plus; Programming Language. Addison Wesley, Reading, Mass.]]"},{"key":"e_1_2_1_86_1","volume-title":"The C&plus;&plus","author":"Stroustrup B.","unstructured":"Stroustrup , B. 1997. The C&plus;&plus ; Programming Language, Third ed. Addison Wesley .]] Stroustrup, B. 1997. The C&plus;&plus; Programming Language, Third ed. Addison Wesley.]]"},{"key":"e_1_2_1_87_1","doi-asserted-by":"publisher","DOI":"10.1145\/320384.320408"},{"key":"e_1_2_1_88_1","doi-asserted-by":"publisher","DOI":"10.1145\/243439.243441"},{"key":"e_1_2_1_89_1","doi-asserted-by":"publisher","DOI":"10.1145\/302405.302457"},{"key":"e_1_2_1_90_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF01806107"},{"key":"e_1_2_1_91_1","doi-asserted-by":"publisher","DOI":"10.1145\/38765.38828"},{"key":"e_1_2_1_92_1","volume-title":"JSSST International Symposium on Object Technologies for Advanced Software. Springer Verlag, 22--37","author":"VanHilst M.","unstructured":"VanHilst , M. and Notkin , D . 1996a. Using C&plus;&plus; Templates to Implement Role-Based Designs . In JSSST International Symposium on Object Technologies for Advanced Software. Springer Verlag, 22--37 .]] VanHilst, M. and Notkin, D. 1996a. Using C&plus;&plus; Templates to Implement Role-Based Designs. In JSSST International Symposium on Object Technologies for Advanced Software. Springer Verlag, 22--37.]]"},{"key":"e_1_2_1_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/236337.236375"},{"key":"e_1_2_1_94_1","volume-title":"Proceedings of ECOOP '88","volume":"322","author":"Wegner P.","unstructured":"Wegner , P. and Zdonik , S. B . 1988. Inheritance as an incremental modification mechanism or what like is and isn't like . In Proceedings of ECOOP '88 , S. Gjessing and K. Nygaard, Eds. LNCS , vol. 322 . Springer-Verlag, Oslo, 55--77.]] Wegner, P. and Zdonik, S. B. 1988. Inheritance as an incremental modification mechanism or what like is and isn't like. In Proceedings of ECOOP '88, S. Gjessing and K. Nygaard, Eds. LNCS, vol. 322. Springer-Verlag, Oslo, 55--77.]]"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1119479.1119483","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1119479.1119483","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T16:08:18Z","timestamp":1750262898000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1119479.1119483"}},"subtitle":["A mechanism for fine-grained reuse"],"short-title":[],"issued":{"date-parts":[[2006,3]]},"references-count":90,"journal-issue":{"issue":"2","published-print":{"date-parts":[[2006,3]]}},"alternative-id":["10.1145\/1119479.1119483"],"URL":"https:\/\/doi.org\/10.1145\/1119479.1119483","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2006,3]]},"assertion":[{"value":"2006-03-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}