{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,2,27]],"date-time":"2026-02-27T03:46:04Z","timestamp":1772163964653,"version":"3.50.1"},"publisher-location":"New York, NY, USA","reference-count":59,"publisher":"ACM","license":[{"start":{"date-parts":[[2009,10,25]],"date-time":"2009-10-25T00:00:00Z","timestamp":1256428800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2009,10,25]]},"DOI":"10.1145\/1640089.1640133","type":"proceedings-article","created":{"date-parts":[[2009,10,27]],"date-time":"2009-10-27T09:27:28Z","timestamp":1256635648000},"page":"557-572","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":22,"title":["On understanding data abstraction, revisited"],"prefix":"10.1145","author":[{"given":"William R.","family":"Cook","sequence":"first","affiliation":[{"name":"University of Texas at Austin, Austin, TX, USA"}]}],"member":"320","published-online":{"date-parts":[[2009,10,25]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/62678.62720"},{"key":"e_1_3_2_1_2_1","volume-title":"Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages","volume":"173","author":"America P.","year":"1990","unstructured":"P. America . A behavioral approach to subtyping object-oriented programming languages . In Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages , volume 173 of Lecture Notes in Computer Science , 1990 . P. America. A behavioral approach to subtyping object-oriented programming languages. In Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages, volume 173 of Lecture Notes in Computer Science, 1990."},{"key":"e_1_3_2_1_3_1","volume-title":"Stichting Mathematisch Centrum","author":"Bergstra J.","year":"1980","unstructured":"J. Bergstra and J. Tucker . Initial and final algebra semantics for data type specifications: Two characterisation theorems. Research Report IW 142 , Stichting Mathematisch Centrum , 1980 . J. Bergstra and J. Tucker. Initial and final algebra semantics for data type specifications: Two characterisation theorems. Research Report IW 142, Stichting Mathematisch Centrum, 1980."},{"key":"e_1_3_2_1_4_1","volume-title":"DEMOS: a system for discrete event modelling on Simula","author":"Birtwistle G. M.","year":"1987","unstructured":"G. M. Birtwistle . DEMOS: a system for discrete event modelling on Simula . Springer--Verlag , 1987 . G. M. Birtwistle. DEMOS: a system for discrete event modelling on Simula. Springer--Verlag, 1987."},{"key":"e_1_3_2_1_5_1","unstructured":"D. Box. Essential COM (DevelopMentor Series). Addison-Wesley Professional 1998.   D. Box. Essential COM (DevelopMentor Series). Addison-Wesley Professional 1998."},{"key":"e_1_3_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1145\/640128.604156"},{"key":"e_1_3_2_1_7_1","first-page":"1045","volume-title":"International Joint Conferences on Artificial Intelligence","author":"Burstall R.","year":"1977","unstructured":"R. Burstall and J. Goguen . Putting theories together to make specifications . In International Joint Conferences on Artificial Intelligence , pages 1045 -- 1058 . Department of Computer Science, Carnegie-Mellon University , 1977 . R. Burstall and J. Goguen. Putting theories together to make specifications. In International Joint Conferences on Artificial Intelligence, pages 1045--1058. Department of Computer Science, Carnegie-Mellon University, 1977."},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/74877.74924"},{"key":"e_1_3_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1007\/3-540-13346-1_2"},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/6041.6042"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.5555\/646150.679216"},{"key":"e_1_3_2_1_12_1","volume-title":"The Calculi of Lambda Conversion","author":"Church A.","year":"1941","unstructured":"A. Church . The Calculi of Lambda Conversion . Princeton University Press , 1941 . A. Church. The Calculi of Lambda Conversion. Princeton University Press, 1941."},{"key":"e_1_3_2_1_14_1","volume-title":"Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages","volume":"173","author":"Cook W.","year":"1990","unstructured":"W. Cook . Object-oriented programming versus abstract data types . In Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages , volume 173 of Lecture Notes in Computer Science , 1990 . W. Cook. Object-oriented programming versus abstract data types. In Proceedings of the REX Workshop\/School on the Foundations of Object-Oriented Languages, volume 173 of Lecture Notes in Computer Science, 1990."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-03013-0_13"},{"key":"e_1_3_2_1_16_1","volume-title":"The SIMULA 67 common base language. Technical report","author":"Dahl O.-J.","year":"1970","unstructured":"O.-J. Dahl , B. Myhrhaug , and K. Nygaard . The SIMULA 67 common base language. Technical report , Norwegian Computing Center , 1970 . Publication S-22. O.-J. Dahl, B. Myhrhaug, and K. Nygaard. The SIMULA 67 common base language. Technical report, Norwegian Computing Center, 1970. Publication S-22."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/322290.322303"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70594-9_8"},{"key":"e_1_3_2_1_20_1","first-page":"80","article-title":"An initial algebra approach to the specification, correctness, and implementation of abstract data types","author":"Goguen J.","year":"1978","unstructured":"J. Goguen , J. Thatcher , and E. Wagner . An initial algebra approach to the specification, correctness, and implementation of abstract data types . Current Trends in Programming Methodology , IV : 80 -- 149 , 1978 . J. Goguen, J. Thatcher, and E. Wagner. An initial algebra approach to the specification, correctness, and implementation of abstract data types. Current Trends in Programming Methodology, IV:80--149, 1978.","journal-title":"Current Trends in Programming Methodology"},{"key":"e_1_3_2_1_21_1","volume-title":"Java(TM) Language Specification","author":"Gosling J.","year":"2005","unstructured":"J. Gosling , B. Joy , G. Steele , and G. Bracha . Java(TM) Language Specification . Addison-Wesley Professional , 2005 . J. Gosling, B. Joy, G. Steele, and G. Bracha. Java(TM) Language Specification. Addison-Wesley Professional, 2005."},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/274946.274957"},{"key":"e_1_3_2_1_23_1","volume-title":"Theoretical aspects of object-oriented programming: types, semantics, and language design","author":"Gunter C. A.","year":"1994","unstructured":"C. A. Gunter and J. C. Mitchell , editors . Theoretical aspects of object-oriented programming: types, semantics, and language design . MIT Press , 1994 . C. A. Gunter and J. C. Mitchell, editors. Theoretical aspects of object-oriented programming: types, semantics, and language design. MIT Press, 1994."},{"key":"e_1_3_2_1_24_1","volume-title":"The Specification and Application to Programming of Abstract Data Types. Report","author":"Guttag J.","year":"1975","unstructured":"J. Guttag . The Specification and Application to Programming of Abstract Data Types. Report , University of Toronto, Computer Science Department , 1975 . J. Guttag. The Specification and Application to Programming of Abstract Data Types. Report, University of Toronto, Computer Science Department, 1975."},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/512927.512942"},{"key":"e_1_3_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/BF00289507"},{"key":"e_1_3_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/130943.130947"},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/512760.512762"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4613-1437-0_5"},{"key":"e_1_3_2_1_30_1","volume-title":"Haskell 98 Language and Libraries: The Revised Report","author":"Jones S. P.","year":"2003","unstructured":"S. P. Jones . Haskell 98 Language and Libraries: The Revised Report . Cambridge University Press , 2003 . S. P. Jones. Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, 2003."},{"key":"e_1_3_2_1_31_1","volume-title":"ECOOP Keynote","author":"Jones S. P.","year":"2009","unstructured":"S. P. Jones . Classes, Jim , but not as we know them. type classes in Haskell: what, why, and whither . ECOOP Keynote , 2009 . S. P. Jones. Classes, Jim, but not as we know them. type classes in Haskell: what, why, and whither. ECOOP Keynote, 2009."},{"key":"e_1_3_2_1_32_1","volume-title":"C Programming Language","author":"Kernighan B. W.","year":"1988","unstructured":"B. W. Kernighan and D. Ritchie . C Programming Language ( 2 nd Edition). Prentice Hall PTR , 1988 . B. W. Kernighan and D. Ritchie. C Programming Language (2nd Edition). Prentice Hall PTR, 1988.","edition":"2"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/646155.679709"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/62138.62141"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/234286.1057826"},{"key":"e_1_3_2_1_36_1","volume-title":"CLU Reference Manual","author":"Liskov B.","year":"1981","unstructured":"B. Liskov , R. Atkinson , T. Bloom , E. Moss , J. C. Schaffert , R. Scheifler , and A. Snyder . CLU Reference Manual . Springer-Verlag , 1981 . B. Liskov, R. Atkinson, T. Bloom, E. Moss, J. C. Schaffert, R. Scheifler, and A. Snyder. CLU Reference Manual. Springer-Verlag, 1981."},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/942572.807045"},{"key":"e_1_3_2_1_38_1","volume-title":"Principles and Practice. Wadsworth Publ","author":"Louden K. C.","year":"1993","unstructured":"K. C. Louden . Programming Languages : Principles and Practice. Wadsworth Publ . Co ., 1993 . K. C. Louden. Programming Languages: Principles and Practice. Wadsworth Publ. Co., 1993."},{"key":"e_1_3_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/800055.802036"},{"key":"e_1_3_2_1_40_1","volume-title":"Proceedings of the 6th Conference on Theoretical Computer Science","volume":"145","author":"Mahr B.","year":"1983","unstructured":"B. Mahr and J. Makowsky . An axiomatic approach to semantics of specification languages . In Proceedings of the 6th Conference on Theoretical Computer Science , volume 145 of Lecture Notes in Computer Science, pages 211--219. Springer-Verlag , 1983 . B. Mahr and J. Makowsky. An axiomatic approach to semantics of specification languages. In Proceedings of the 6th Conference on Theoretical Computer Science, volume 145 of Lecture Notes in Computer Science, pages 211--219. Springer-Verlag, 1983."},{"key":"e_1_3_2_1_41_1","volume-title":"Communication and Concurrency","author":"Milner R.","year":"1989","unstructured":"R. Milner . Communication and Concurrency . Prentice-Hall , 1989 . R. Milner. Communication and Concurrency. Prentice-Hall, 1989."},{"key":"e_1_3_2_1_42_1","volume-title":"The definition of Standard ML","author":"Milner R.","year":"1990","unstructured":"R. Milner , M. Tofte , and R. Harper . The definition of Standard ML . MIT Press , 1990 . R. Milner, M. Tofte, and R. Harper. The definition of Standard ML. MIT Press, 1990."},{"key":"e_1_3_2_1_43_1","volume-title":"Cambridge University Press","author":"Mitchell J. C.","year":"2001","unstructured":"J. C. Mitchell . Concepts in Programming Languages . Cambridge University Press , 2001 . J. C. Mitchell. Concepts in Programming Languages. Cambridge University Press, 2001."},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/318593.318606"},{"key":"e_1_3_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2006.03.001"},{"key":"e_1_3_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.tcs.2007.02.004"},{"key":"e_1_3_2_1_47_1","volume-title":"Programming in Scala: A Comprehensive Step-by-step Guide","author":"Odersky M.","year":"2008","unstructured":"M. Odersky , L. Spoon , and B. Venners . Programming in Scala: A Comprehensive Step-by-step Guide . Artima Inc , 2008 . M. Odersky, L. Spoon, and B. Venners. Programming in Scala: A Comprehensive Step-by-step Guide. Artima Inc, 2008."},{"key":"e_1_3_2_1_48_1","first-page":"12","article-title":"Independently extensible solutions to the expression problem","author":"Odersky M.","year":"2005","unstructured":"M. Odersky and M. Zenger . Independently extensible solutions to the expression problem . In Proceedings FOOL 12 , 2005 . http:\/\/homepages.inf.ed.ac.uk\/wadler\/fool. M. Odersky and M. Zenger. Independently extensible solutions to the expression problem. In Proceedings FOOL 12, 2005. http:\/\/homepages.inf.ed.ac.uk\/wadler\/fool.","journal-title":"Proceedings FOOL"},{"key":"e_1_3_2_1_49_1","volume-title":"ANSI\/MIL-STD-1815 A","author":"Defense U. S. D.","year":"1983","unstructured":"U. S. D. of Defense . Reference manual for the Ada programming language . ANSI\/MIL-STD-1815 A , 1983 . U. S. D. of Defense. Reference manual for the Ada programming language. ANSI\/MIL-STD-1815 A, 1983."},{"key":"e_1_3_2_1_50_1","volume-title":"Types and Programming Languages","author":"Pierce B. C.","year":"2002","unstructured":"B. C. Pierce . Types and Programming Languages . MIT Press , 2002 . B. C. Pierce. Types and Programming Languages. MIT Press, 2002."},{"key":"e_1_3_2_1_51_1","volume-title":"Programming languages: design and implementation","author":"Pratt T. W.","year":"1995","unstructured":"T. W. Pratt and M. V. Zelkowitz . Programming languages: design and implementation . Prentice-Hall , 1995 . T. W. Pratt and M. V. Zelkowitz. Programming languages: design and implementation. Prentice-Hall, 1995."},{"key":"e_1_3_2_1_52_1","first-page":"157","volume-title":"New Advances in Algorithmic Languages","author":"Reynolds J. C.","year":"1975","unstructured":"J. C. Reynolds . User-defined types and procedural data structures as complementary approaches to data abstraction . In New Advances in Algorithmic Languages , pages 157 -- 168 . INRIA, 1975 . J. C. Reynolds. User-defined types and procedural data structures as complementary approaches to data abstraction. In New Advances in Algorithmic Languages, pages 157--168. INRIA, 1975."},{"key":"e_1_3_2_1_53_1","volume-title":"Morgan Kaufmann","author":"Scott M. L.","year":"2000","unstructured":"M. L. Scott . Programming Language Pragmatics . Morgan Kaufmann , 2000 . M. L. Scott. Programming Language Pragmatics. Morgan Kaufmann, 2000."},{"key":"e_1_3_2_1_54_1","volume-title":"Eighth Edition","author":"Sebesta R.","year":"2007","unstructured":"R. Sebesta . Concepts of Programming Languages , Eighth Edition . Addison-Wesley , 2007 . R. Sebesta. Concepts of Programming Languages, Eighth Edition. Addison-Wesley, 2007."},{"key":"e_1_3_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/988113.988122"},{"key":"e_1_3_2_1_57_1","volume-title":"Programming Languages: Principles and Paradigms","author":"Tucker A. B.","year":"2007","unstructured":"A. B. Tucker and R. E. Noonan . Programming Languages: Principles and Paradigms , Second Edition. McGraw-Hill Higher Education , 2007 . A. B. Tucker and R. E. Noonan. Programming Languages: Principles and Paradigms, Second Edition. McGraw-Hill Higher Education, 2007."},{"key":"e_1_3_2_1_58_1","volume-title":"The expression problem. Mail to the java-genericity mailing list","author":"Wadler P.","year":"1998","unstructured":"P. Wadler . The expression problem. Mail to the java-genericity mailing list , 1998 . P. Wadler. The expression problem. Mail to the java-genericity mailing list, 1998."},{"key":"e_1_3_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75283"},{"key":"e_1_3_2_1_60_1","doi-asserted-by":"publisher","DOI":"10.5555\/1097041"},{"key":"e_1_3_2_1_61_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.1976.233830"},{"key":"e_1_3_2_1_62_1","doi-asserted-by":"publisher","DOI":"10.1145\/390014.808305"}],"event":{"name":"OOPSLA09: ACM SIGPLAN Object Oriented Programming Systems and Applications Conference","location":"Orlando Florida USA","acronym":"OOPSLA09","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1640089.1640133","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/1640089.1640133","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T08:17:56Z","timestamp":1750234676000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/1640089.1640133"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2009,10,25]]},"references-count":59,"alternative-id":["10.1145\/1640089.1640133","10.1145\/1640089"],"URL":"https:\/\/doi.org\/10.1145\/1640089.1640133","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/1639949.1640133","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2009,10,25]]},"assertion":[{"value":"2009-10-25","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}