{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,28]],"date-time":"2026-06-28T04:58:45Z","timestamp":1782622725553,"version":"3.54.5"},"publisher-location":"Berlin, Heidelberg","reference-count":45,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540405313","type":"print"},{"value":"9783540450702","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2003]]},"DOI":"10.1007\/978-3-540-45070-2_12","type":"book-chapter","created":{"date-parts":[[2010,11,8]],"date-time":"2010-11-08T16:23:52Z","timestamp":1289233432000},"page":"248-274","source":"Crossref","is-referenced-by-count":150,"title":["Traits: Composable Units of Behaviour"],"prefix":"10.1007","author":[{"given":"Nathanael","family":"Sch\u00e4rli","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"St\u00e9phane","family":"Ducasse","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Oscar","family":"Nierstrasz","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Andrew P.","family":"Black","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","reference":[{"key":"12_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"77","DOI":"10.1007\/10722581_8","volume-title":"Modular Programming Languages","author":"F. Achermann","year":"2000","unstructured":"Achermann, F., Nierstrasz, O.: Explicit Namespaces. In: Weck, W., Gutknecht, J. (eds.) JMLC 2000. LNCS, vol.\u00a01897, pp. 77\u201389. Springer, Heidelberg (2000)"},{"key":"12_CR2","doi-asserted-by":"crossref","unstructured":"America, P.: Designing an object-oriented programming language with behavioural subtyping. In: Proceedings REX\/FOOLS Workshop, Noordwijkerhout (June 1990)","DOI":"10.1007\/BFb0019440"},{"key":"12_CR3","series-title":"Lecture Notes in Computer Science","first-page":"145","volume-title":"ECOOP 2000 - Object-Oriented Programming","author":"D. Ancona","year":"2000","unstructured":"Ancona, D., Lagorio, G., Zucca, E.: Jam - a smooth extension of java with mixins. In: Bertino, E. (ed.) ECOOP 2000. LNCS, vol.\u00a01850, pp. 145\u2013178. Springer, Heidelberg (2000)"},{"key":"12_CR4","volume-title":"Proceedings of the Joint Modular Languages Conference 2003","author":"A. Bergel","year":"2003","unstructured":"Bergel, A., Ducasse, S., Wuyts, R.: Classboxes: A minimal module model supporting local rebinding. In: Proceedings of the Joint Modular Languages Conference 2003. Springer, Heidelberg (2003) (to appear)"},{"key":"12_CR5","doi-asserted-by":"crossref","unstructured":"Black, A., Hutchinson, N., Jul, E., Levy, H.: Object structure in the Emerald system. In: Proceedings OOPSLA 1986, ACM SIGPLAN Notices, vol.\u00a021, pp. 78\u201386 (November 1986)","DOI":"10.1145\/960112.28706"},{"key":"12_CR6","unstructured":"Black, A., Sch\u00e4rli, N., Ducasse, S.: Applying traits to the Smalltalk collection hierarchy. Technical Report IAM-02-007, Institut f\u00fcr Informatik, Universit\u00e4t Bern, Switzerland (November 2002), Also available as Technical Report CSE-02-014, OGI School of Science & Engineering, Beaverton, Oregon, USA"},{"key":"12_CR7","unstructured":"Borning, A.H., Ingalls, D.H.H.: Multiple inheritance in Smalltalk-80. In: Proceedings at the National Conference on AI, Pittsburgh, PA (1982)"},{"key":"12_CR8","doi-asserted-by":"crossref","unstructured":"Bouraqadi-Saadani, N.M.N., Ledoux, T., Rivard, F.: Safe metaclass programming. In: Proceedings OOPSLA 1998, pp. 84\u201396 (1998)","DOI":"10.1145\/286936.286949"},{"key":"12_CR9","unstructured":"Bracha, G.: The Programming Language Jigsaw: Mixins, Modularity and Multiple Inheritance. Ph.D. thesis, Dept. of Computer Science, University of Utah (March 1992)"},{"key":"12_CR10","doi-asserted-by":"crossref","unstructured":"Bracha, G., Cook, W.: Mixin-based inheritance. In: Proceedings OOPSLA\/ ECOOP 1990, ACM SIGPLAN Notices, October 1990, vol. 25, pp. 303\u2013311 (1990)","DOI":"10.1145\/97945.97982"},{"key":"12_CR11","first-page":"35","volume-title":"OOPSLA 1987 Addendum To The Proceedings","author":"S. Cook","year":"1987","unstructured":"Cook, S.: OOPSLA 1987 Panel P2: Varieties of inheritance. In: OOPSLA 1987 Addendum To The Proceedings, pp. 35\u201340. ACM Press, New York (1987)"},{"key":"12_CR12","doi-asserted-by":"crossref","unstructured":"Cook, W.R.: Interfaces and specifications for the Smalltalk-80 collection classes. In: Proceedings OOPSLA 1992, ACM SIGPLAN Notices, vol. 27, pp. 1\u201315 (October 1992)","DOI":"10.1145\/141937.141938"},{"key":"12_CR13","doi-asserted-by":"crossref","unstructured":"Curry, G., Baer, L., Lipkie, D., Lee, B.: TRAITS: an approach to multiple inheritance subclassing. In: Proceedings ACM SIGOA, Newsletter, vol. 3, Philadelphia (June 1982)","DOI":"10.1145\/800210.806468"},{"key":"12_CR14","doi-asserted-by":"crossref","unstructured":"Dixon, R., McKee, T., Vaughan, M., Schweizer, P.: A fast method dispatcher for compiled languages with multiple inheritance. In: Proceedings OOPSLA 1989, ACM SIGPLAN Notices, vol. 24, pp. 211\u2013214 (October 1989)","DOI":"10.1145\/74878.74900"},{"key":"12_CR15","doi-asserted-by":"crossref","unstructured":"Ducournau, R., Habib, M., Huchard, M., Mugnier, M.L.: Monotonic conflict resolution mechanisms for inheritance. In: Proceedings OOPSLA 1992, ACM SIGPLAN Notices, vol. 27, pp. 16\u201324 (October 1992)","DOI":"10.1145\/141937.141939"},{"key":"12_CR16","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"243","DOI":"10.1007\/3-540-47891-4_23","volume-title":"ECOOP \u201987 European Conference on Object-Oriented Programming","author":"R. Ducournau","year":"1987","unstructured":"Ducournau, R., Habib, M.: On some algorithms for multiple inheritance in object-oriented programming. In: B\u00e9zivin, J., Hullot, J.-M., Lieberman, H., Cointe, P. (eds.) ECOOP 1987. LNCS, vol.\u00a0276, pp. 243\u2013252. Springer, Heidelberg (1987)"},{"key":"12_CR17","doi-asserted-by":"crossref","unstructured":"Duggan, D., Techaubol, C.-C.: Modular mixin-based inheritance for application frameworks. In: Proceedings OOPSLA 2001, pp. 223\u2013240 (October 2001)","DOI":"10.1145\/504282.504299"},{"key":"12_CR18","doi-asserted-by":"publisher","first-page":"171","DOI":"10.1145\/268946.268961","volume-title":"Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages","author":"M. Flatt","year":"1998","unstructured":"Flatt, M., Krishnamurthi, S., Felleisen, M.: Classes and mixins. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 171\u2013183. ACM Press, New York (1998)"},{"key":"12_CR19","volume-title":"Smalltalk 80: the Language and its Implementation","author":"A. Goldberg","year":"1983","unstructured":"Goldberg, A., Robson, D.: Smalltalk 80: the Language and its Implementation. Addison Wesley, Reading (1983)"},{"key":"12_CR20","doi-asserted-by":"crossref","unstructured":"Graube, N.: Metaclass compatibility. In: Proceedings OOPSLA 1989, ACM SIGPLAN Notices, vol. 24, pp. 305\u2013316 (October 1989)","DOI":"10.1145\/74878.74909"},{"issue":"5","key":"12_CR21","doi-asserted-by":"crossref","first-page":"24","DOI":"10.1109\/MS.1985.231756","volume":"2","author":"J.V. Guttag","year":"1985","unstructured":"Guttag, J.V., Horning, J.J., Wing, J.M.: The larch family of specification languages. IEEE Transactions on Software Engineering\u00a02(5), 24\u201336 (1985)","journal-title":"IEEE Transactions on Software Engineering"},{"key":"12_CR22","doi-asserted-by":"crossref","unstructured":"Ingalls, D., Kaehler, T., Maloney, J., Wallace, S., Kay, A.: Back to the future: The story of Squeak, A practical Smalltalk written in itself. In: Proceedings OOPSLA 1997, pp. 318\u2013326 (November 1997)","DOI":"10.1145\/263698.263754"},{"key":"12_CR23","volume-title":"Object-Oriented Programming in Common-Lisp","author":"S.E. Keene","year":"1989","unstructured":"Keene, S.E.: Object-Oriented Programming in Common-Lisp. Addison Wesley, Reading (1989)"},{"key":"12_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"351","DOI":"10.1007\/3-540-48743-3_16","volume-title":"ECOOP \u201999 - Object-Oriented Programming","author":"G. Kniesel","year":"1999","unstructured":"Kniesel, G.: Type-safe delegation for run-time component adaptation. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol.\u00a01628, pp. 351\u2013366. Springer, Heidelberg (1999)"},{"issue":"5","key":"12_CR25","first-page":"57","volume":"3","author":"W. LaLonde","year":"1991","unstructured":"LaLonde, W., Pugh, J.: Subclassing \u2260 Subtyping \u2260 Is-a. Journal of Object-Oriented Programming\u00a03(5), 57\u201362 (1991)","journal-title":"Journal of Object-Oriented Programming"},{"key":"12_CR26","doi-asserted-by":"crossref","unstructured":"Madsen, O.L., Magnusson, B., Moller-Pedersen, B.: Strong typing of object-oriented languages revisited. In: Proceedings OOPSLA\/ECOOP 1990, ACM SIGPLAN Notices, vol. 25, pp. 140\u2013150 (October 1990)","DOI":"10.1145\/97946.97964"},{"issue":"1","key":"12_CR27","first-page":"1","volume":"3","author":"T. Mens","year":"1996","unstructured":"Mens, T., van Limberghen, M.: Encapsulation and composition as orthogonal operators on mixins: A solution to multiple inheritance problems. Object Oriented Systems\u00a03(1), 1\u201330 (1996)","journal-title":"Object Oriented Systems"},{"key":"12_CR28","volume-title":"Eiffel: The Language","author":"B. Meyer","year":"1992","unstructured":"Meyer, B.: Eiffel: The Language. Prentice-Hall, Englewood Cliffs (1992)"},{"key":"12_CR29","volume-title":"Object-Oriented Software Construction","author":"B. Meyer","year":"1997","unstructured":"Meyer, B.: Object-Oriented Software Construction, 2nd edn. Prentice-Hall, Englewood Cliffs (1997)","edition":"2"},{"key":"12_CR30","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"190","DOI":"10.1007\/BFb0053380","volume-title":"ECOOP \u201997 - Object-Oriented Programming","author":"M. Mezini","year":"1997","unstructured":"Mezini, M.: Dynamic object evolution without name collisions. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol.\u00a01241, pp. 190\u2013219. Springer, Heidelberg (1997)"},{"key":"12_CR31","doi-asserted-by":"crossref","unstructured":"Mezini, M., Ostermann, K.: Integrating independent components with ondemand remodularization. In: Proceedings OOPSLA 2002, pp. 52\u201367 (November 2002)","DOI":"10.1145\/583854.582426"},{"key":"12_CR32","doi-asserted-by":"crossref","unstructured":"Moon, D.A.: Object-oriented programming with flavors. In: Proceedings OOPSLA 1986, ACM SIGPLAN Notices, vol. 21, pp. 1\u20138 (November 1986)","DOI":"10.1145\/960112.28698"},{"key":"12_CR33","first-page":"39","volume-title":"Proceedings ECOOP 1989","author":"M. Sakkinen","year":"1989","unstructured":"Sakkinen, M.: Disciplined inheritance. In: Cook, S. (ed.) Proceedings ECOOP 1989, Nottingham, pp. 39\u201356. Cambridge University Press, Cambridge (1989)"},{"issue":"4","key":"12_CR34","first-page":"155","volume":"13","author":"M. Sakkinen","year":"1992","unstructured":"Sakkinen, M.: The darker side of C++ revisited. Structured Programming\u00a013(4), 155\u2013177 (1992)","journal-title":"Structured Programming"},{"key":"12_CR35","doi-asserted-by":"crossref","unstructured":"Schaffert, C., Cooper, T., Bullis, B., Killian, M., Wilpolt, C.: An Introduction to Trellis\/Owl. In: Proceedings OOPSLA 1986, ACM SIGPLAN Notices, vol. 21, pp. 9\u201316 (November 1986)","DOI":"10.1145\/960112.28699"},{"key":"12_CR36","unstructured":"Sch\u00e4rli, N., Black, A.: A browser for incremental programming. Technical Report CSE-03-008, OGI School of Science & Engineering, Beaverton, Oregon, USA (April 2003)"},{"key":"12_CR37","unstructured":"Sch\u00e4rli, N., Nierstrasz, O., Ducasse, S., Wuyts, R., Black, A.: Traits: The formal model. Technical Report IAM-02-006, Institut f\u00fcr Informatik, Universit\u00e4t Bern, Switzerland (November 2002), Also available as Technical Report CSE-02-013, OGI School of Science & Engineering, Beaverton, Oregon, USA"},{"key":"12_CR38","doi-asserted-by":"crossref","unstructured":"Snyder, A.: Encapsulation and inheritance in object-oriented programming languages. In: Proceedings OOPSLA 1986, ACM SIGPLAN Notices, vol. 21, pp. 38\u201345 (November 1986)","DOI":"10.1145\/960112.28702"},{"key":"12_CR39","first-page":"165","volume-title":"Research Directions in Object-Oriented Programming","author":"A. Snyder","year":"1987","unstructured":"Snyder, A.: Inheritance and the development of encapsulated software systems. In: Research Directions in Object-Oriented Programming, pp. 165\u2013188. MIT Press, Cambridge (1987)"},{"key":"12_CR40","unstructured":"Steele, G.L.: Common Lisp The Language, 2nd edn. Digital Press (1990) (book)"},{"key":"12_CR41","volume-title":"The C++ Programming Language","author":"B. Stroustrup","year":"1986","unstructured":"Stroustrup, B.: The C++ Programming Language. Addison Wesley, Reading (1986)"},{"key":"12_CR42","volume-title":"The Design and Evolution of C++","author":"B. Stroustrup","year":"1994","unstructured":"Stroustrup, B.: The Design and Evolution of C++. Addison-Wesley, Reading (1994)"},{"key":"12_CR43","doi-asserted-by":"publisher","first-page":"256","DOI":"10.1145\/320384.320408","volume-title":"Proceedings OOPSLA 1999","author":"P.F. Sweeney","year":"1999","unstructured":"Sweeney, P.F., Gil, J. (Yossi): Space and time-efficient memory layout for multiple inheritance. In: Proceedings OOPSLA 1999, pp. 256\u2013275. ACM Press, New York (1999)"},{"issue":"3","key":"12_CR44","doi-asserted-by":"publisher","first-page":"438","DOI":"10.1145\/243439.243441","volume":"28","author":"A. Taivalsaari","year":"1996","unstructured":"Taivalsaari, A.: On the notion of inheritance. ACM Computing Surveys\u00a028(3), 438\u2013479 (1996)","journal-title":"ACM Computing Surveys"},{"key":"12_CR45","doi-asserted-by":"crossref","unstructured":"Ungar, D., Smith, R.B.: Self: The power of simplicity. In: Proceedings OOPSLA 1987, ACM SIGPLAN Notices, vol. 22, pp. 227\u2013242 (December 1987)","DOI":"10.1145\/38807.38828"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2003 \u2013 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-45070-2_12","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,6,6]],"date-time":"2019-06-06T00:16:03Z","timestamp":1559780163000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-45070-2_12"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2003]]},"ISBN":["9783540405313","9783540450702"],"references-count":45,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-45070-2_12","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[2003]]}}}