{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,18]],"date-time":"2025-11-18T12:10:29Z","timestamp":1763467829116},"publisher-location":"Berlin, Heidelberg","reference-count":31,"publisher":"Springer Berlin Heidelberg","isbn-type":[{"type":"print","value":"9783540735885"},{"type":"electronic","value":"9783540735892"}],"license":[{"start":{"date-parts":[[2007,1,1]],"date-time":"2007-01-01T00:00:00Z","timestamp":1167609600000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/www.springer.com\/tdm"}],"content-domain":{"domain":[],"crossmark-restriction":false},"short-container-title":[],"published-print":{"date-parts":[[2007]]},"DOI":"10.1007\/978-3-540-73589-2_14","type":"book-chapter","created":{"date-parts":[[2007,8,12]],"date-time":"2007-08-12T21:48:05Z","timestamp":1186955285000},"page":"273-298","source":"Crossref","is-referenced-by-count":31,"title":["Matching Objects with Patterns"],"prefix":"10.1007","author":[{"given":"Burak","family":"Emir","sequence":"first","affiliation":[]},{"given":"Martin","family":"Odersky","sequence":"additional","affiliation":[]},{"given":"John","family":"Williams","sequence":"additional","affiliation":[]}],"member":"297","reference":[{"key":"14_CR1","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"61","DOI":"10.1007\/3-540-45074-2","volume-title":"Compiler Construction","author":"P.E. Moreau","year":"2003","unstructured":"Moreau, P.E., Ringeissen, C., Vittek, M.: A Pattern Matching Compiler for Multiple Target Languages. In: Hedin, G. (ed.) CC 2003 and ETAPS 2003. LNCS, vol.\u00a02622, pp. 61\u201376. Springer, Heidelberg (2003)"},{"key":"14_CR2","doi-asserted-by":"crossref","unstructured":"Oderksy, M., Wadler, P.: Pizza into Java: Translating theory into practice. In: POPL. Proc. of Principles of Programming Languages (1997)","DOI":"10.1145\/263699.263715"},{"key":"14_CR3","doi-asserted-by":"crossref","unstructured":"Zenger, M., Odersky, M.: Extensible Algebraic Datatypes with Defaults. In: ICFP. Proc. of Int. Conference on Functional Programming (2001)","DOI":"10.1145\/507635.507665"},{"key":"14_CR4","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","first-page":"110","DOI":"10.1007\/3-540-36388-2_9","volume-title":"Practical Aspects of Declarative Languages","author":"J. Liu","year":"2002","unstructured":"Liu, J., Myers, A.C.: JMatch: Iterable Abstract Pattern Matching for Java. In: Dahl, V., Wadler, P. (eds.) PADL 2003. LNCS, vol.\u00a02562, pp. 110\u2013127. Springer, Heidelberg (2002)"},{"key":"14_CR5","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0019443","volume-title":"Foundations of Object-Oriented Languages","author":"W. Cook","year":"1991","unstructured":"Cook, W.: Object-oriented programming versus abstract data types. In: de Bakker, J.W., Rozenberg, G., de Roever, W.-P. (eds.) Foundations of Object-Oriented Languages. LNCS, vol.\u00a0489, Springer, Heidelberg (1991)"},{"key":"14_CR6","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/BFb0054088","volume-title":"ECOOP \u201998 - Object-Oriented Programming","author":"S. Krishnamurthi","year":"1998","unstructured":"Krishnamurthi, S., Felleisen, M., Friedman, D.P.: Synthesizing Object-Oriented and Functional Design to Promote Re-use. In: Jul, E. (ed.) ECOOP 1998. LNCS, vol.\u00a01445, Springer, Heidelberg (1998)"},{"key":"14_CR7","series-title":"Lecture Notes in Computer Science","volume-title":"ECOOP 2004 \u2013 Object-Oriented Programming","author":"M. Torgersen","year":"2004","unstructured":"Torgersen, M.: The expression problem revisited. In: Odersky, M. (ed.) ECOOP 2004. LNCS, vol.\u00a03086, Springer, Heidelberg (2004)"},{"key":"14_CR8","unstructured":"Zenger, M., Odersky, M.: Independently Extensible Solutions to the Expression Problem. In: Workshop on Foundations of Object-Oriented Languages (FOOL) (2005)"},{"key":"14_CR9","unstructured":"Williams, J.: (April 2006), \n                    \n                      http:\/\/article.gmane.org\/gmane.comp.lang.scala\/1993"},{"key":"14_CR10","unstructured":"Syme, D.: \n                    \n                      http:\/\/blogs.msdn.com\/dsyme\/archive\/2006\/08\/16\/activepatterns.aspx"},{"key":"14_CR11","doi-asserted-by":"crossref","unstructured":"Xi, H., Chen, C., Chen, G.: Guarded recursive datatype constructors. In: Proc. of Principles of Programming Languages (POPL), January 2003, New Orleans, pp. 224\u2013235 (2003)","DOI":"10.1145\/640128.604150"},{"key":"14_CR12","doi-asserted-by":"crossref","unstructured":"Kennedy, A., Russo, C.: Generalized Algebraic Data Types and Object-Oriented Programming. In: Proc. of Object-Oriented Programming Systems and Languages (OOPSLA) (2005)","DOI":"10.1145\/1094811.1094814"},{"key":"14_CR13","doi-asserted-by":"crossref","unstructured":"Lee, K., LaMarca, A., Chambers, C.: HydroJ: Object-oriented Pattern Matching for Evolvable Distributed Systems. In: Proc. of Object-Oriented Programming Systems and Languages (OOPSLA) (2003)","DOI":"10.1145\/949305.949324"},{"key":"14_CR14","series-title":"Lecture Notes in Computer Science","volume-title":"ECOOP 2003 - Object-Oriented Programming","author":"V. Gapeyev","year":"2003","unstructured":"Gapeyev, V., Pierce, B.C.: Regular Object Types. In: Cardelli, L. (ed.) ECOOP 2003. LNCS, vol.\u00a02743, Springer, Heidelberg (2003)"},{"key":"14_CR15","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"publisher","DOI":"10.1007\/11785477_17","volume-title":"ECOOP 2006 \u2013 Object-Oriented Programming","author":"B. Chin","year":"2006","unstructured":"Chin, B., Millstein, T.: Responders: Language Support for Interactive Applications. In: Thomas, D. (ed.) ECOOP 2006. LNCS, vol.\u00a04067, Springer, Heidelberg (2006)"},{"key":"14_CR16","doi-asserted-by":"crossref","unstructured":"Castagna, G., Ghelli, G., Longo, G.: A Calculus for Overloaded Functions with Subtyping. In: Lisp and Functional Programming, pp. 182\u2013192 (June 1992)","DOI":"10.1145\/141478.141537"},{"key":"14_CR17","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 Multi-Methods in Cecil. In: Lehrmann Madsen, O. (ed.) ECOOP 1992, vol.\u00a0615, pp. 33\u201356. Springer, Heidelberg (1992)"},{"issue":"5","key":"14_CR18","doi-asserted-by":"publisher","first-page":"836","DOI":"10.1145\/1018203.1018207","volume":"26","author":"T. Millstein","year":"2004","unstructured":"Millstein, T., Bleckner, C., Chambers, C.: Modular typechecking for hierarchically extensible datatypes and functions. ACM Transactions on Programming Languages and Systems (TOPLAS)\u00a026(5), 836\u2013889 (2004)","journal-title":"ACM Transactions on Programming Languages and Systems (TOPLAS)"},{"issue":"3","key":"14_CR19","doi-asserted-by":"publisher","first-page":"517","DOI":"10.1145\/1133651.1133655","volume":"28","author":"C. Clifton","year":"2006","unstructured":"Clifton, C., Millstein, T., Leavens, G.T., Chambers, C.: MultiJava: Design Rationale, Compiler Implementation, and Applications. ACM Transactions on Programming Languages and Systems\u00a028(3), 517\u2013575 (2006)","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"14_CR20","doi-asserted-by":"publisher","first-page":"186","DOI":"10.1007\/BFb0054092","volume-title":"ECOOP \u201998 - Object-Oriented Programming","author":"M.D. Ernst","year":"1998","unstructured":"Ernst, M.D., Kaplan, C., Chambers, C.: Predicate dispatching: A unified theory of dispatch. In: Jul, E. (ed.) ECOOP 1998, vol.\u00a01445, pp. 186\u2013211. Springer, Heidelberg (1998)"},{"key":"14_CR21","doi-asserted-by":"crossref","unstructured":"Millstein, T.: Practical Predicate Dispatch. In: Proc. of Object-Oriented Programming Systems and Languages (OOPSLA), pp. 245\u2013364 (2004)","DOI":"10.1145\/1028976.1029006"},{"key":"14_CR22","doi-asserted-by":"crossref","unstructured":"Wadler, P.: Views: A way for pattern matching to cohabit with data abstraction. In: Proc. of Principles of Programming Languages (POPL) (1987)","DOI":"10.1145\/41625.41653"},{"key":"14_CR23","unstructured":"Okasaki, C.: Views for Standard ML. In: SIGPLAN Workshop on ML, pp. 14\u201323 (1998)"},{"key":"14_CR24","series-title":"Lecture Notes in Computer Science","doi-asserted-by":"crossref","first-page":"21","DOI":"10.1007\/3-540-63237-9_17","volume-title":"Implementation of Functional Languages","author":"M. Erwig","year":"1997","unstructured":"Erwig, M.: Active patterns. In: Kluge, W. (ed.) IFL 1996. LNCS, vol.\u00a01268, pp. 21\u201340. Springer, Heidelberg (1997)"},{"key":"14_CR25","unstructured":"Gostanza, P.P., Pena, R., Nunez, M.M.: A new look at pattern matching in abstract data types. In: Proceedings of Int. Conference on Functional Programming (ICFP) (1996)"},{"key":"14_CR26","volume-title":"Design Patterns","author":"E. Gamma","year":"1995","unstructured":"Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Reading (1995)"},{"key":"14_CR27","doi-asserted-by":"crossref","unstructured":"Fessant, F.L., Maranget, L.: Optimizing pattern matching. In: Proc. of International Conference on Functional Programming (ICFP), pp. 26\u201337 (2001)","DOI":"10.1145\/507669.507641"},{"key":"14_CR28","unstructured":"Emir, B.: Translating Pattern Matching in a Java-like Language. In: Proc. of Third International Kyrgyz Conference on Computers and Electronics (IKECCO) (2005)"},{"key":"14_CR29","unstructured":"Weirich, S.: A statically type-safe typechecker for haskell. Manuscript, communicated at Dagstuhl seminar, September 2004 (unpublished)"},{"key":"14_CR30","doi-asserted-by":"crossref","unstructured":"Pasalic, E., Linger, N.: Meta-programming with typed object-language representations. In: Proc. of Generative Programming and Component Engineering (GPCE) (October 2004)","DOI":"10.1007\/978-3-540-30175-2_8"},{"key":"14_CR31","doi-asserted-by":"crossref","unstructured":"Cremet, V., Garillot, F., Lenglet, S., Odersky, M.: A core calculus for scala type checking. In: Proc. of Mathematical Foundations for Computer Science (MFCS) (2006)","DOI":"10.1007\/11821069_1"}],"container-title":["Lecture Notes in Computer Science","ECOOP 2007 \u2013 Object-Oriented Programming"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/link.springer.com\/content\/pdf\/10.1007\/978-3-540-73589-2_14","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2019,5,22]],"date-time":"2019-05-22T01:03:55Z","timestamp":1558487035000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/978-3-540-73589-2_14"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2007]]},"ISBN":["9783540735885","9783540735892"],"references-count":31,"URL":"https:\/\/doi.org\/10.1007\/978-3-540-73589-2_14","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"type":"print","value":"0302-9743"},{"type":"electronic","value":"1611-3349"}],"subject":[],"published":{"date-parts":[[2007]]}}}