{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2024,9,5]],"date-time":"2024-09-05T21:52:44Z","timestamp":1725573164740},"publisher-location":"Berlin, Heidelberg","reference-count":60,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540279921"},{"type":"electronic","value":"9783540317258"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2005]]},"DOI":"10.1007\/11531142_15","type":"book-chapter","created":{"date-parts":[[2010,12,20]],"date-time":"2010-12-20T17:28:49Z","timestamp":1292866129000},"page":"337-361","source":"Crossref","is-referenced-by-count":6,"title":["Efficient Multimethods in a Single Dispatch Language"],"prefix":"10.1007","author":[{"given":"Brian","family":"Foote","sequence":"first","affiliation":[]},{"given":"Ralph E.","family":"Johnson","sequence":"additional","affiliation":[]},{"given":"James","family":"Noble","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"15_CR1","unstructured":"Benoit, C., Caseau, Y., Pherivong, C.: Knowledge Representation and Communication Mechanisms in Lore. In: ECAI 1986, pp. 215\u2013224 (1986)"},{"key":"15_CR2","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"41","DOI":"10.1007\/3-540-45910-3_3","volume-title":"ECOOP \u201988 European Conference on Object-Oriented Programming","author":"D. Blake","year":"1988","unstructured":"Blake, D., Cook, S.: On Including Part Hierarchies in Object-Oriented Languages, with an Implementation in Smalltalk. In: Gjessing, S., Nygaard, K. (eds.) ECOOP 1988. LNCS, vol.\u00a0322, pp. 41\u201350. Springer, Heidelberg (1988)"},{"key":"15_CR3","unstructured":"Bobrow, D.G.: The LOOPS Manual. Xerox Parc. (1983)"},{"key":"15_CR4","doi-asserted-by":"crossref","unstructured":"Bobrow, D.G., Kahn, K., Kiczales, G., Masinter, L., Stefik, M., Zdybel, F.: CommonLoops: Merging Lisp and Object-Oriented Programming. In: OOPSLA Proceedings (1986)","DOI":"10.1145\/28697.28700"},{"key":"15_CR5","doi-asserted-by":"crossref","unstructured":"Bobrow, D.G., DeMichiel, L.G., Gabriel, R.P., Keene, S.E., Kiczales, G., Moon, D.A.: Common Lisp Object System Specification X3J13. In: SIGPLAN Notices, September 1988, vol.\u00a023 (1988)","DOI":"10.1145\/885631.885632"},{"key":"15_CR6","doi-asserted-by":"crossref","unstructured":"Bobrow, D.G., Kiczales, G.: The Common Lisp Object System Metaobject Kernel \u2013 A Status Report. In: Proceedings of the 1988 Conference on Lisp and Functional Programming (1988)","DOI":"10.1145\/62678.62723"},{"key":"15_CR7","volume-title":"Object-Oriented Programming: The CLOS Perspective","author":"D.G. Bobrow","year":"1993","unstructured":"Bobrow, D.G., Gabriel, R.P., White, J.L.: CLOS in Context: The Shape of the Design Space. In: Paepcke, A. (ed.) Object-Oriented Programming: The CLOS Perspective. MIT Press, Cambridge (1993). http:\/\/www.dreamsongs.com\/NewFiles\/clos-book.pdf"},{"key":"15_CR8","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"3","DOI":"10.1007\/3-540-47891-4_1","volume-title":"ECOOP \u201987 European Conference on Object-Oriented Programming","author":"A. Borning","year":"1987","unstructured":"Borning, A., O\u2019Shea, T.: Deltatalk: An Empirically and Aesthetically Motivated Simplification of the Smalltalk-80 Language. In: B\u00e9zivin, J., Hullot, J.-M., Lieberman, H., Cointe, P. (eds.) ECOOP 1987. LNCS, vol.\u00a0276, pp. 3\u201312. Springer, Heidelberg (1987)"},{"key":"15_CR9","doi-asserted-by":"crossref","unstructured":"Borning, A.H., Ingalls, D.H.H.: A Type Declaration and Inference System for Smalltalk. In: POPL Proceedings, pp. 133\u2013141 (1982)","DOI":"10.1145\/582153.582168"},{"key":"15_CR10","doi-asserted-by":"crossref","unstructured":"Boyland, J., Castagna, G.: Parasitic Methods: An Implementation of Multi Methods for Java. In: OOPSLA Proceedings (1997)","DOI":"10.1145\/263698.263721"},{"key":"15_CR11","doi-asserted-by":"crossref","unstructured":"Bracha, G., Ungar, D.: Mirrors: design principles for meta-level facilities of object-oriented programming languages. In: OOPSLA Proceedings, pp. 331\u2013344 (2004)","DOI":"10.1145\/1028976.1029004"},{"key":"15_CR12","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"396","DOI":"10.1007\/BFb0054101","volume-title":"ECOOP \u201998 - Object-Oriented Programming","author":"J. Brant","year":"1998","unstructured":"Brant, J., Foote, B., Roberts, D., Johnson, R.: Wrappers to the Rescue. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol.\u00a01445, p. 396. Springer, Heidelberg (1998)"},{"issue":"3","key":"15_CR13","doi-asserted-by":"crossref","first-page":"221","DOI":"10.1002\/j.1096-9942.1995.tb00019.x","volume":"1","author":"K. Bruce","year":"1995","unstructured":"Bruce, K., Cardelli, L., Castagna, G., Leavens, G.T., Pierce, B.: On binary methods. Theory and Practice of Object Systems\u00a01(3), 221\u2013242 (1995)","journal-title":"Theory and Practice of Object Systems"},{"key":"15_CR14","unstructured":"Caseau, Y.: An Overview of Lore. IEEE Software\u00a03(1), 72\u201373"},{"key":"15_CR15","doi-asserted-by":"crossref","unstructured":"Caseau, Y.: A Model for a Reflective Object-Oriented Language. SIGPLAN Notices\u00a024(4), 22\u201324","DOI":"10.1145\/67387.67390"},{"issue":"3","key":"15_CR16","doi-asserted-by":"publisher","first-page":"431","DOI":"10.1145\/203095.203096","volume":"17","author":"G. Castagna","year":"1995","unstructured":"Castagna, G.: Covariance and contravariance: Conflict without a cause. ACM Transactions on Programming Languages and Systems\u00a017(3), 431\u2013447 (1995)","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"15_CR17","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"33","DOI":"10.1007\/BFb0053029","volume-title":"ECOOP \u201992 European Conference on Object-Oriented Programming","author":"C. Chambers","year":"1992","unstructured":"Chambers, C.: Object-Oriented Multimethods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992. LNCS, vol.\u00a0615, pp. 33\u201356. Springer, Heidelberg (1992)"},{"key":"15_CR18","doi-asserted-by":"crossref","unstructured":"Clifton, C., Leavens, G.T., Chambers, C., Millstein, T.: Proceedings of OOPSLA 2000. In: Proceedings of OOPSLA 2000, pp. 130\u2013145 (2000)","DOI":"10.1145\/353171.353181"},{"key":"15_CR19","volume-title":"Generative Programming: Methods, Tools, and Applications","author":"K. Czarnecki","year":"2000","unstructured":"Czarnecki, K., Eisenecker, U.W.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley, Reading (2000)"},{"key":"15_CR20","doi-asserted-by":"crossref","unstructured":"Deutsch, L.P., Schiffman, A.M.: Efficient Implementation of the Smalltalk-80 System. In: Proceedings of the Tenth Annual ACM Symposiumon Principles of Programming Languages, pp. 297\u2013302 (1983)","DOI":"10.1145\/800017.800542"},{"key":"15_CR21","volume-title":"The Dylan Programming Book","author":"N. Feinberg","year":"1996","unstructured":"Feinberg, N., Keene, S.E., Mathews, R.O., Washington, P.T.: The Dylan Programming Book. Addison-Wesley Longman, Amsterdam (1996)"},{"key":"15_CR22","doi-asserted-by":"crossref","unstructured":"Foote, B., Johnson, R.E.: Reflective Facilities in Smalltalk-80. In: OOPSLA 1989 Proceedings, pp. 327\u2013335 (1989)","DOI":"10.1145\/74877.74911"},{"key":"15_CR23","unstructured":"Metadata. In: Proceedings of the Fifith Conference on Pattern Languages of Programs (PLoP 1998) Monticello, Illinois, Technical Report #WUCS-98025 (PLoP 1998\/EuroPLoP 1998) Dept. of Computer Science, Washington University (August 1998)"},{"key":"15_CR24","volume-title":"Patterns Languages of Program Design 4 (PLoPD4)","author":"B. Foote","year":"2000","unstructured":"Foote, B., Yoder, J.W.: Big Ball of Mud. In: Harrison, N., et al. (eds.) Patterns Languages of Program Design 4 (PLoPD4). Addison-Wesley, Reading (2000)"},{"key":"15_CR25","doi-asserted-by":"crossref","unstructured":"Gabriel, R.P., White, J.L., Bobrow, D.G.: CLOS: Integrating Object-Oriented and Functional Programming. Communications of the ACM\u00a034 (1991)","DOI":"10.1145\/114669.114671"},{"key":"15_CR26","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E. Gamma","year":"1995","unstructured":"Gamma, E., Helm, R., Johnson, R.E., Vlissides, J.: Design Patterns: Elements of Reusable Object-Oriented Software. Addision-Wesley, Reading (1995)"},{"key":"15_CR27","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45070-2_6","volume-title":"ECOOP 2003 - Object-Oriented Programming","author":"C. Grothoff","year":"2003","unstructured":"Grothoff, C.: Walkabout revisited: The runabout. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol.\u00a02743. Springer, Heidelberg (2003)"},{"key":"15_CR28","unstructured":"Goldberg, A., Kay, A. (eds.): with the Learning Research Group. Smalltalk-72 Instruction Manual. Xerox Palo Alto Research Center,"},{"key":"15_CR29","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":"15_CR30","volume-title":"Smalltalk-80: The Interactive Programming Environment","author":"A. Goldberg","year":"1984","unstructured":"Goldberg, A.: Smalltalk-80: The Interactive Programming Environment. Addison-Wesley, Reading (1984)"},{"key":"15_CR31","doi-asserted-by":"crossref","unstructured":"Goldberg, D.S., Findler, R.B., Flatt, M.: Super and inner: together at last! In: OOPSLA Proceedings 2004, pp. 116\u2013129 (2004)","DOI":"10.1145\/1028976.1028987"},{"issue":"6","key":"15_CR32","first-page":"40","volume":"2","author":"K.J. Hebel","year":"1990","unstructured":"Hebel, K.J., Johnson, R.E.: Arithmetic and Double Dispatching in Smalltalk-80. Journal of Object-Oriented Programming\u00a02(6), 40\u201344 (1990)","journal-title":"Journal of Object-Oriented Programming"},{"key":"15_CR33","doi-asserted-by":"crossref","unstructured":"Daniel, H., Ingalls., H.: The Smalltalk-76 Programming System: Design and Implementation. In: 5th ACM Symposium on POPL, pp. 9\u201315 (1978)","DOI":"10.1145\/512760.512762"},{"key":"15_CR34","doi-asserted-by":"crossref","unstructured":"Ingalls, D.H.H.: A simple technique for handling multiple polymorphism. In: Proceedings of OOPSLA 1986 (1986)","DOI":"10.1145\/28697.28732"},{"key":"15_CR35","doi-asserted-by":"crossref","unstructured":"Johnson, R.E., Graver, J.O., Zurawski, L.W.: TS: An Optimizing Compiler for Smalltalk. In: OOPSLA 1988 Proceedings, pp. 18\u201326 (1988)","DOI":"10.1145\/62084.62086"},{"key":"15_CR36","doi-asserted-by":"crossref","unstructured":"Kiczales, G., Rodriguez, L.: Efficient Method Dispatch in PCL. In: Proceedings of the ACM Conference on Lisp and Functional Programming, pp. 99\u2013105 (1990)","DOI":"10.1145\/91556.91600"},{"key":"15_CR37","doi-asserted-by":"crossref","DOI":"10.7551\/mitpress\/1405.001.0001","volume-title":"The Art of the Metaobject Protocol","author":"G. Kiczales","year":"1991","unstructured":"Kiczales, G., Rivieres, J.d., Bobrow, D.G.: The Art of the Metaobject Protocol. MIT Press, Cambridge (1991)"},{"key":"15_CR38","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"327","DOI":"10.1007\/3-540-45337-7_18","volume-title":"ECOOP 2001 - Object-Oriented Programming","author":"G. Kiczales","year":"2001","unstructured":"Kiczales, G., Hilsdale, E., Hugunin, J., Kersten, M., Palm, J., Griswold, W.G.: An overview of AspectJ. In: Knudsen, J.L. (ed.) ECOOP 2001. LNCS, vol.\u00a02072, p. 327. Springer, Heidelberg (2001)"},{"key":"15_CR39","volume-title":"Object-Oriented Programming in Common Lisp: A Programmer\u2019s Introduction to CLOS","author":"S.E. Keene","year":"1989","unstructured":"Keene, S.E.: Object-Oriented Programming in Common Lisp: A Programmer\u2019s Introduction to CLOS. Addison-Wesley, Reading (1989)"},{"volume-title":"Smalltalk 80: Bits of History, Words of Advice","year":"1983","key":"15_CR40","unstructured":"Krasner, G. (ed.): Smalltalk 80: Bits of History, Words of Advice. Addison-Wesley, Reading (1983)"},{"key":"15_CR41","unstructured":"Kristensen, B.B., Madsen, O.L., Moller-Pedersen, B., Nygaard, K.: Object-Oriented Programming in the Beta Language (1990)"},{"key":"15_CR42","doi-asserted-by":"crossref","unstructured":"LaLonde, W.R., Thomas, D.A., Pugh, J.R.: An Exemplar Based Smalltalk. In: OOPSLA 1986 Proceedings, Portland, OR, October 4-8, pp. 322\u2013330 (1977)","DOI":"10.1145\/960112.28729"},{"key":"15_CR43","unstructured":"Multiple Dispatch as Dispatch on Tuples. In: OOPSLA Proceedings, pp. 274\u2013287 (1998)"},{"key":"15_CR44","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"190","DOI":"10.1007\/3-540-49538-X_10","volume-title":"ECOOP \u201995 - Object-Oriented Programming","author":"J. McAffer","year":"1995","unstructured":"McAffer, J.: Meta-level Programming with CodA. In: Olthoff, W. (ed.) ECOOP 1995. LNCS, vol.\u00a0952, pp. 190\u2013214. Springer, Heidelberg (1995)"},{"key":"15_CR45","unstructured":"Maes, P.: Computational Reflection. Artificial Intelligence Laboratory. Vrije Universiteit Brussel. Technical Report 87-2 (1987)"},{"key":"15_CR46","doi-asserted-by":"crossref","unstructured":"Maes, P.: Concepts and Experiments in Computational Reflection. In: OOPSLA 1987 Proceedings, pp. 147\u2013155 (1987)","DOI":"10.1145\/38765.38821"},{"key":"15_CR47","doi-asserted-by":"crossref","unstructured":"Moon, D.: Object-Oriented Programming with Flavors. In: OOPSLA 1986 Proceedings, pp. 1\u20138 (1986)","DOI":"10.1145\/28697.28698"},{"key":"15_CR48","doi-asserted-by":"crossref","unstructured":"Mougin, P., Ducasse, S.: OOPAL: integrating array programming in object-oriented programming. In: OOPSLA Proceedings, pp. 65\u201377 (2003)","DOI":"10.1145\/949305.949312"},{"key":"15_CR49","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"147","DOI":"10.1007\/BFb0057029","volume-title":"ECOOP \u201991 European Conference on Object-Oriented Programming","author":"W. Mugridge","year":"1991","unstructured":"Mugridge, W., Hamer, J., Hosking, J.: Multi-Methods in a StaticallyTyped Programming Language. In: America, P. (ed.) ECOOP 1991. LNCS, vol.\u00a0512, pp. 147\u2013155. Springer, Heidelberg (1991)"},{"volume-title":"Object-Oriented Programming: The CLOS Perspective","year":"1993","key":"15_CR50","unstructured":"Paepcke, A. (ed.): Object-Oriented Programming: The CLOS Perspective. MIT Press, Cambridge (1993)"},{"key":"15_CR51","unstructured":"Palsberg, J., Jay, C.B., Noble, J.: Experiments with Generic Visitors. In: The Proceedings of theWorkshop on Generic Programming, Marstrand, Sweden (1998)"},{"key":"15_CR52","unstructured":"Palsberg, J., Drunen, J.V.: Visitor oriented programming. In: The Workshop for Foundations of Object-Oriented Programming, FOOL (2004)"},{"key":"15_CR53","unstructured":"F. Rivard. Evolution du comportement des objets dans les langages a classes reflexifs. PhD thesis, Ecole des Mines de Nantes, France (June 1997)"},{"key":"15_CR54","unstructured":"Saltzer, J.H., Reed, D.P., Clark, D.D.: End-to-end arguments in system design. In: Second International Conference on Distributed Computing Systems, April, pp. 509\u2013512 (1981)"},{"key":"15_CR55","doi-asserted-by":"crossref","unstructured":"Sch\u00e4rli, N., Black, A.P., Ducasse, S.: Object-oriented encapsulation for dynamically typed languages. In: OOPSLA Proceedings, pp. 130\u2013149 (2004)","DOI":"10.1145\/1035292.1028988"},{"key":"15_CR56","doi-asserted-by":"crossref","unstructured":"Smith, B.C.: Reflection and Semantics in Lisp. In: POPL Proceedings, pp. 23\u201335 (1984)","DOI":"10.1145\/800017.800513"},{"issue":"4","key":"15_CR57","first-page":"40","volume":"6","author":"M. Stefik","year":"1986","unstructured":"Stefik, M., Bobrow, D.G.: Object-Oriented Programming: Themes and Variations. AI Magazine\u00a06(4), 40\u201362 (1986)","journal-title":"AI Magazine"},{"key":"15_CR58","unstructured":"Bjarne Stroustrup.The C++ Programming Language. Addison-Wesley, Reading (1986)"},{"key":"15_CR59","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"444","DOI":"10.1007\/BFb0053390","volume-title":"ECOOP \u201997 - Object-Oriented Programming","author":"K.K. Thorup","year":"1997","unstructured":"Thorup, K.K.: Genericity in Java with virtual types. In: Aksit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol.\u00a01241, pp. 444\u2013471. Springer, Heidelberg (1997)"},{"key":"15_CR60","doi-asserted-by":"crossref","unstructured":"Ungar, D., Smith, R.B.: Self: The Power of Simplicity. In: OOPSLA 1987 Proceedings, pp. 227\u2013242 (1987)","DOI":"10.1145\/38807.38828"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2005 - Object-Oriented Programming"],"original-title":[],"link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/11531142_15.pdf","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,4,27]],"date-time":"2021-04-27T06:50:25Z","timestamp":1619506225000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/11531142_15"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2005]]},"ISBN":["9783540279921","9783540317258"],"references-count":60,"URL":"https:\/\/doi.org\/10.1007\/11531142_15","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2005]]}}}