{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,24]],"date-time":"2026-10-24T19:47:00Z","timestamp":1792871220521,"version":"4.5.0"},"publisher-location":"Berlin, Heidelberg","reference-count":40,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"value":"9783540647379","type":"print"},{"value":"9783540690641","type":"electronic"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[1998]]},"DOI":"10.1007\/bfb0054107","type":"book-chapter","created":{"date-parts":[[2006,7,6]],"date-time":"2006-07-06T15:03:10Z","timestamp":1152198190000},"page":"550-570","source":"Crossref","is-referenced-by-count":91,"title":["Implementing layered designs with mixin layers"],"prefix":"10.1007","author":[{"given":"Yannis","family":"Smaragdakis","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Don","family":"Batory","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2006,5,25]]},"reference":[{"key":"24_CR1","doi-asserted-by":"crossref","unstructured":"O. Agesen, S. Freund, and J. Mitchell, \u201cAdding Type Parameterization to the Java Language\u201d, OOPSLA 1997, 49\u201365.","DOI":"10.1145\/263698.263720"},{"key":"24_CR2","doi-asserted-by":"crossref","unstructured":"D. Batory and S. O'Malley, \u201cThe Design and Implementation of Hierarchical Software Systems with Reusable Components\u201d, ACM TOSEM, October 1992.","DOI":"10.1145\/136586.136587"},{"key":"24_CR3","doi-asserted-by":"crossref","unstructured":"D. Batory, V. Singhal, M. Sirkin, and J. Thomas, \u201cScalable Software Libraries\u201d, ACM SIGSOFT 1993.","DOI":"10.1145\/256428.167078"},{"key":"24_CR4","doi-asserted-by":"publisher","first-page":"107","DOI":"10.1023\/A:1008617930959","volume":"9","author":"D. Batory","year":"1997","unstructured":"D. Batory and J. Thomas, \u201cP2: A Lightweight DBMS Generator\u201d, Journal of Intelligent Information Systems, 9, 107\u2013123 (1997).","journal-title":"Journal of Intelligent Information Systems"},{"key":"24_CR5","doi-asserted-by":"crossref","unstructured":"D. Batory and B.J. Geraci, \u201cComponent Validation and Subjectivity in GenVoca Generators\u201d, IEEE Transactions on Software Engineering, February 1997, 67\u201382.","DOI":"10.1109\/32.585497"},{"key":"24_CR6","unstructured":"D. Batory, B. Lofaso, and Y. Smaragdakis, \u201cJTS: Tools for Implementing Domain-Specific Languages\u201d, to appear at the 5th International Conference on Software Reuse (ICSR '98). See ftp:\u2115p.cs.utexas.edu\/pub\/predator\/jts.ps."},{"key":"24_CR7","doi-asserted-by":"crossref","unstructured":"K. Beck and W. Cunningham, \u201cA Laboratory for Teaching Object-Oriented Thinking\u201d, OOPSLA 1989, 1\u20136.","DOI":"10.1145\/74877.74879"},{"key":"24_CR8","doi-asserted-by":"crossref","unstructured":"G. Bracha and W. Cook, \u201cMixin-Based Inheritance\u201d, ECOOP\/OOPSLA 90, 303\u2013311.","DOI":"10.1145\/97946.97982"},{"key":"24_CR9","unstructured":"G. Bracha and D. Griswold, \u201cExtending Smalltalk with Mixins\u201d, Workshop on Extending Smalltalk at OOPSLA 96. See http:\/\/java.sun.com\/people\/gbracha\/mwp.html."},{"issue":"4","key":"24_CR10","doi-asserted-by":"publisher","first-page":"471","DOI":"10.1145\/6041.6042","volume":"17","author":"L. Cardelli","year":"1985","unstructured":"L. Cardelli and P. Wegner, On Understanding Types, Data Abstraction, and Polymorphism, Computing Surveys, 17(4): Dec 1985, 471\u2013522.","journal-title":"Computing Surveys"},{"key":"24_CR11","doi-asserted-by":"crossref","unstructured":"M. Flatt, S. Krishnamurthi, M. Felleisen, \u201cClasses and Mixins\u201d. ACM Symposium on Principles of Programming Languages, 1998 (PoPL 98).","DOI":"10.1145\/268946.268961"},{"key":"24_CR12","unstructured":"E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 1994."},{"key":"24_CR13","doi-asserted-by":"crossref","unstructured":"W. Harrison and H. Ossher, \u201cSubject-Oriented Programming (A Critique of Pure Objects)\u201d. OOPSLA 1993, 411\u2013428.","DOI":"10.1145\/167962.165932"},{"key":"24_CR14","doi-asserted-by":"crossref","unstructured":"R. Helm, I. Holland, and D. Gangopadhyay, \u201cContracts: Specifying Behavioral Compositions in Object-Oriented Systems\u201d. OOPSLA 1990, 169\u2013180.","DOI":"10.1145\/97946.97967"},{"key":"24_CR15","doi-asserted-by":"crossref","unstructured":"I. Holland, \u201cSpecifying Reusable Components Using Contracts\u201d, ECOOP 92, 287\u2013308.","DOI":"10.1007\/BFb0053043"},{"key":"24_CR16","unstructured":"JavaSoft, \u201cInner Classes Specification\u201d, from http:\/\/java.sun.com\/products\/jdk\/1.1\/docs\/."},{"issue":"2","key":"24_CR17","first-page":"22","volume":"1","author":"R. Johnson","year":"1988","unstructured":"R. Johnson and B. Foote, \u201cDesigning Reusable Classes\u201d, Journal of Object-Oriented Programming, 1(2): June\/July 1988, 22\u201335.","journal-title":"Journal of Object-Oriented Programming"},{"key":"24_CR18","doi-asserted-by":"crossref","unstructured":"G. Kiczales, J. des Rivieres, and D. G. Bobrow, The Art of the Metaobject Protocol. MIT Press, 1991.","DOI":"10.7551\/mitpress\/1405.001.0001"},{"key":"24_CR19","doi-asserted-by":"crossref","unstructured":"G. Kiczales, J. Lamping, A. Mendhekar, C. Maeda, C. Lopes, J. Loingtier, and J. Irwin, \u201cAspect-Oriented Programming\u201d, ECOOP 97, 220\u2013242.","DOI":"10.1007\/BFb0053381"},{"key":"24_CR20","doi-asserted-by":"crossref","unstructured":"O. L. Madsen and B. M\u00f8ller-Pedersen, \u201cVirtual classes: A powerful mechanism in objectoriented programming\u201d, OOPSLA 1989, 397\u2013406.","DOI":"10.1145\/74878.74919"},{"key":"24_CR21","unstructured":"O. L. Madsen, B. M\u00f8ller-Pedersen, and K. Nygaard, Object-Oriented Programming in the BETA Programming Language. Addison-Wesley, 1993."},{"key":"24_CR22","doi-asserted-by":"crossref","unstructured":"M. Mezini, \u201cDynamic Object Evolution without Name Collisions\u201d, ECOOP 97, 190\u2013219.","DOI":"10.1007\/BFb0053380"},{"key":"24_CR23","doi-asserted-by":"publisher","first-page":"348","DOI":"10.1016\/0022-0000(78)90014-4","volume":"17","author":"R. Milner","year":"1978","unstructured":"R. Milner, \u201cA Theory of Type Polymorphism in Programming\u201d, Journal of Computer and System Sciences, 17:Dec 1978, 348\u2013375.","journal-title":"Journal of Computer and System Sciences"},{"key":"24_CR24","unstructured":"T. Montlick, \u201cImplementing Mixins in Smalltalk\u201d, The Smalltalk Report, July 1996."},{"key":"24_CR25","unstructured":"A. Myers, J. Bank and B. Liskov, \u201cParameterized Types for Java\u201d, ACM Symposium on Principles of Programming Languages, 1997 (PoPL 97)."},{"key":"24_CR26","doi-asserted-by":"crossref","unstructured":"M. Odersky and P. Wadler, \u201cPizza into Java: Translating theory into practice\u201d, ACM Symposium on Principles of Programming Languages, 1997 (PoPL 97).","DOI":"10.1145\/263699.263715"},{"key":"24_CR27","doi-asserted-by":"crossref","unstructured":"C. Prehofer, \u201cFeature-Oriented Programming: A Fresh Look at Objects\u201d, ECOOP 97, 419\u2013443.","DOI":"10.1007\/BFb0053389"},{"issue":"6","key":"24_CR28","first-page":"27","volume":"5","author":"T. Reenskaug","year":"1992","unstructured":"T. Reenskaug, E. Anderson, A. Berre, A. Hurlen, A. Landmark, O. Lehne, E. Nordhagen, E. Ness-Ulseth, G. Oftedal, A. Skaar, and P. Stenslet, \u201cOORASS: Seamless Support for the Creation and Maintenance of Object-Oriented Systems\u201d, Journal of Object-Oriented Programming, 5(6): October 1992, 27\u201341.","journal-title":"Journal of Object-Oriented Programming"},{"issue":"5","key":"24_CR29","first-page":"8","volume":"7","author":"J. Rumbaugh","year":"1994","unstructured":"J. Rumbaugh, \u201cGetting Started: Using use cases to capture requirements\u201d, Journal of Object-Oriented Programming, 7(5): Sep 1994, 8\u201323.","journal-title":"Journal of Object-Oriented Programming"},{"key":"24_CR30","doi-asserted-by":"crossref","unstructured":"L. Seiter, J. Palsberg, and K. Lieberherr, \u201cEvolution of Object Behavior using Context Relations\u201d, ACM SIGSOFT 1996.","DOI":"10.1145\/239098.239108"},{"key":"24_CR31","volume-title":"Ph.D. Dissertation","author":"V. Singhal","year":"1996","unstructured":"V. Singhal, \u201cA Programming Language for Writing Domain-Specific Software System Generators\u201d, Ph.D. Dissertation, Department of Computer Sciences, University of Texas at Austin, August 1996."},{"key":"24_CR32","unstructured":"Y. Smaragdakis and D. Batory, \u201cDiSTiL: a Transformation Library for Data Structures\u201d, USENIX Conference on Domain-Specific Languages (DSL 97)."},{"key":"24_CR33","unstructured":"Y. Smaragdakis and D. Batory, \u201cImplementing Reusable Object-Oriented Components\u201d, to appear at the 5th International Conference on Software Reuse (ICSR '98). See ftp:\/\/ftp.cs.utexas.edu\/pub\/predator\/icsrtemp.ps."},{"key":"24_CR34","doi-asserted-by":"crossref","unstructured":"P. Steyaert, W. Codenie, T. D'Hondt, K. De Hondt, C. Lucas, and M. Van Limberghen, \u201cNested Mixin-Methods in Agora\u201d, ECOOP 93, 197\u2013219.","DOI":"10.1007\/3-540-47910-4_12"},{"key":"24_CR35","unstructured":"B. Stroustrup, The C++ Programming Language, 3rd Ed., Addison-Wesley, 1997."},{"key":"24_CR36","doi-asserted-by":"crossref","unstructured":"K. Thorup, \u201cGenericity in Java with Virtual Types\u201d, ECOOP 97, 444\u2013471.","DOI":"10.1007\/BFb0053390"},{"key":"24_CR37","doi-asserted-by":"crossref","unstructured":"M. VanHilst and D. Notkin, \u201cUsing C++ Templates to Implement Role-Based Designs\u201d, JSSST International Symposium on Object Technologies for Advanced Software, Springer-Verlag, 1996, 22\u201337.","DOI":"10.1007\/3-540-60954-7_41"},{"key":"24_CR38","doi-asserted-by":"crossref","unstructured":"M. VanHilst and D. Notkin, \u201cUsing Role Components to Implement Collaboration-Based Designs\u201d. OOPSLA 1996.","DOI":"10.1145\/236337.236375"},{"key":"24_CR39","doi-asserted-by":"crossref","unstructured":"M. VanHilst and D. Notkin, \u201cDecoupling Change From Design\u201d, ACM SIGSOFT 1996.","DOI":"10.1145\/239098.239109"},{"key":"24_CR40","unstructured":"M. VanHilst, \u201cRole-Oriented Programming for Software Evolution\u201d, Ph.D. Dissertation, University of Washington, Computer Science and Engineering, 1997."}],"container-title":["Lecture Notes in Computer Science","ECOOP\u201998 \u2014 Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/BFb0054107","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,4,19]],"date-time":"2019-04-19T21:23:32Z","timestamp":1555709012000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/BFb0054107"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998]]},"ISBN":["9783540647379","9783540690641"],"references-count":40,"URL":"https:\/\/doi.org\/10.1007\/bfb0054107","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[1998]]}}}