{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,10,5]],"date-time":"2026-10-05T22:23:41Z","timestamp":1791239021357,"version":"4.1.0"},"publisher-location":"Berlin, Heidelberg","reference-count":33,"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\/bfb0054088","type":"book-chapter","created":{"date-parts":[[2006,7,6]],"date-time":"2006-07-06T11:03:10Z","timestamp":1152183790000},"page":"91-113","source":"Crossref","is-referenced-by-count":31,"title":["Synthesizing object-oriented and functional design to promote re-use"],"prefix":"10.1007","author":[{"given":"Shriram","family":"Krishnamurthi","sequence":"first","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Daniel P.","family":"Friedman","sequence":"additional","affiliation":[],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"297","published-online":{"date-parts":[[2006,5,25]]},"reference":[{"key":"5_CR1","unstructured":"Baumgartner, G., K. L\u00e4ufer and V. F. Russo. On the interaction of object-oriented design patterns and programming languages. Technical Report CSD-TR-96-020, Purdue University, Feburary 1996."},{"key":"5_CR2","doi-asserted-by":"crossref","unstructured":"Cartwright, R. S. and M. Felleisen. Extensible denotational language specifications. In Hagiya, M. and J. C. Mitchell, editors, Symposium on Theoretical Aspects of Computer Science, pages 244\u2013272. Springer-Verlag, April 1994. LNCS 789.","DOI":"10.1007\/3-540-57887-0_99"},{"key":"5_CR3","doi-asserted-by":"crossref","unstructured":"Clinger, W. and J. Rees. The revised4 report on the algorithmic language Scheme. ACM Lisp Pointers, 4(3), July 1991.","DOI":"10.1145\/1317265.1317268"},{"key":"5_CR4","doi-asserted-by":"crossref","unstructured":"Cook, W. R. Object-oriented programming versus abstract data types. In Foundations of Object-Oriented Languages, pages 151\u2013178, June 1990.","DOI":"10.1007\/BFb0019443"},{"key":"5_CR5","volume-title":"Pattern Languages of Program Design","year":"1995","unstructured":"Coplien, J. O. and D. C. Schmidt, editors. Pattern Languages of Program Design. Addison-Wesley, Reading, MA, 1995."},{"key":"5_CR6","doi-asserted-by":"crossref","unstructured":"Duggan, D. and C. Sourelis. Mixin modules. In ACM SIGPLAN International Conference on Functional Programming, pages 262\u2013273, May 1996.","DOI":"10.1145\/232627.232654"},{"key":"5_CR7","doi-asserted-by":"crossref","unstructured":"Eifrig, J., S. Smith and V. Trifonov. Type inference for recursively constrained types and its application to OOP. Mathematical Foundations of Program Semantics, 1995.","DOI":"10.1016\/S1571-0661(04)80008-2"},{"key":"5_CR8","unstructured":"Espinosa, D. Building interpreters by transforming stratified monads. Unpublished manuscript, June 1994."},{"key":"5_CR9","unstructured":"Felleisen, M. and D. P. Friedman. A Little Java, A Few Patterns. MIT Press, 1998."},{"key":"5_CR10","unstructured":"Findler, R. B. Modular abstract interpreters. Unpublished manuscript, Carnegie Mellon University, June 1995."},{"key":"5_CR11","doi-asserted-by":"crossref","unstructured":"Findler, R. B., C. Flanagan, M. Flatt, S. Krishnamurthi and M. Felleisen. DrScheme: A pedagogic programming environment for Scheme. In Ninth International Symposium on Programming Languages, Implementations, Logics, and Programs, 1997.","DOI":"10.1007\/BFb0033856"},{"key":"5_CR12","unstructured":"Flatt, M. PLT MzScheme: Language manual. Technical Report TR97-280, Rice University, 1997."},{"key":"5_CR13","series-title":"Addison-Wesley Personal Computing Series","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"E. Gamma","year":"1995","unstructured":"Gamma, E., R. Helm, R. Johnson and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley Personal Computing Series. Addison-Wesley, Reading, MA, 1995."},{"key":"5_CR14","unstructured":"Gosling, J., B. Joy and G. L. Steele, Jr. The Java Language Specification. Addison-Wesley, 1996."},{"key":"5_CR15","volume-title":"Research Report YALEU\/DCS\/RR-1049","author":"P. Hudak","year":"1994","unstructured":"Hudak, P. and M. P. Jones. Haskell vs. Ada vs. C++ vs. Awk vs... An experiment in software prototyping productivity. Research Report YALEU\/DCS\/RR-1049, Department of Computer Science, Yale University, New Haven, CT, USA, October 1994."},{"key":"5_CR16","doi-asserted-by":"crossref","unstructured":"Hudak, P., S. Peyton Jones and P. Wadler. Report on the programming language Haskell: a non-strict, purely functional language. ACM SIGPLAN Notices, 27(5), May 1992. Version 1.2.","DOI":"10.1145\/130697.130699"},{"key":"5_CR17","unstructured":"Kernighan, B. W. and D. M. Ritchie. The C Programming Language. Prentice Hall, 1988."},{"key":"5_CR18","first-page":"48","volume":"23","author":"T. K\u00fchne","year":"1997","unstructured":"K\u00fchne, T. The translator pattern\u2014external functionality with homomorphic mappings. In Proceedings of TOOLS 23, USA, pages 48\u201362, July 1997.","journal-title":"Proceedings of TOOLS"},{"key":"5_CR19","doi-asserted-by":"crossref","unstructured":"Liang, S., P. Hudak and M. Jones. Monad transformers and modular interpreters. In Symposium on Principles of Programming Languages, pages 333\u2013343, 1992.","DOI":"10.1145\/199448.199528"},{"key":"5_CR20","volume-title":"The Definition of Standard ML","author":"R. Milner","year":"1990","unstructured":"Milner, R., M. Tofte and R. Harper. The Definition of Standard ML. MIT Press, Cambridge, MA, 1990."},{"key":"5_CR21","doi-asserted-by":"crossref","unstructured":"Odersky, M. and P. Wadler. Pizza into Java: Translating theory into practice. In Symposium on Principles of Programming Languages, pages 146\u2013159, Janurary 1997.","DOI":"10.1145\/263699.263715"},{"issue":"2","key":"5_CR22","doi-asserted-by":"publisher","first-page":"198","DOI":"10.1006\/inco.1995.1168","volume":"123","author":"J. Palsberg","year":"1995","unstructured":"Palsberg, J. Efficient inference of object types. Information & Computation, 123(2):198\u2013209, 1995.","journal-title":"Information & Computation"},{"key":"5_CR23","volume-title":"Technical Report","author":"J. Palsberg","year":"1997","unstructured":"Palsberg, J. and C. B. Jay. The essence of the Visitor pattern. Technical Report 05, University of Technology, Sydney, 1997."},{"issue":"2","key":"5_CR24","doi-asserted-by":"publisher","first-page":"264","DOI":"10.1145\/201059.201066","volume":"17","author":"J. Palsberg","year":"1995","unstructured":"Palsberg, J., C. Xiao and K. Lieberherr. Efficient implementation of adaptive software. ACM Transactions on Programming Languages and Systems, 17(2):264\u2013292, 1995.","journal-title":"ACM Transactions on Programming Languages and Systems"},{"key":"5_CR25","unstructured":"Portner, N. Flexible command interpreter: A pattern for an extensible and language-independent interpreter system, 1995. Appears in [5]."},{"key":"5_CR26","unstructured":"R\u00e9my, D. Introduction aux objets. Unpublished manuscript, lecture notes for course de magist\u00e8re, Ecole Normale Sup\u00e9rieure, 1996."},{"key":"5_CR27","unstructured":"Reynolds, J. C. User-defined types and procedural data structures as complementary approaches to data abstraction. In Schuman, S. A., editor, New Directions in Algorithmic Languages, pages 157\u2013168. IFIP Working Group 2.1 on Algol, 1975."},{"key":"5_CR28","doi-asserted-by":"crossref","unstructured":"Riehle, D. Composite design patterns. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, pages 218\u2013228, 1997.","DOI":"10.1145\/263698.263739"},{"key":"5_CR29","doi-asserted-by":"crossref","unstructured":"Seiter, L. M., J. Palsberg and K. J. Lieberherr. Evolution of object behavior using context relations. IEEE Transactions on Software Engineering, 1998.","DOI":"10.1109\/32.663999"},{"key":"5_CR30","doi-asserted-by":"crossref","unstructured":"Steele, G. L., Jr. Building interpreters by composing monads. In Symposium on Principles of Programming Languages, pages 472\u2013492, Janurary 1994.","DOI":"10.1145\/174675.178068"},{"key":"5_CR31","unstructured":"Stroustrup, B. The C++ Programming Language. Addison-Wesley, 1991."},{"key":"5_CR32","unstructured":"Sun Microsystems. Java core reflection. API and Specification, 1997."},{"key":"5_CR33","doi-asserted-by":"crossref","unstructured":"Thorup, K. K. Genericity in Java with virtual types. In European Conference on Object-Oriented Programming, pages 444\u2013471, 1997.","DOI":"10.1007\/BFb0053390"}],"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\/BFb0054088","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,1,9]],"date-time":"2025-01-09T15:07:32Z","timestamp":1736435252000},"score":1,"resource":{"primary":{"URL":"http:\/\/link.springer.com\/10.1007\/BFb0054088"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[1998]]},"ISBN":["9783540647379","9783540690641"],"references-count":33,"URL":"https:\/\/doi.org\/10.1007\/bfb0054088","relation":{},"ISSN":["0302-9743","1611-3349"],"issn-type":[{"value":"0302-9743","type":"print"},{"value":"1611-3349","type":"electronic"}],"subject":[],"published":{"date-parts":[[1998]]}}}