{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,7,16]],"date-time":"2026-07-16T20:15:57Z","timestamp":1784232957432,"version":"3.55.0"},"reference-count":57,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2013,11,1]],"date-time":"2013-11-01T00:00:00Z","timestamp":1383264000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000181","name":"Air Force Office of Scientific Research","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000181","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]},{"DOI":"10.13039\/100000185","name":"Defense Advanced Research Projects Agency","doi-asserted-by":"publisher","id":[{"id":"10.13039\/100000185","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Program. Lang. Syst."],"published-print":{"date-parts":[[2013,11]]},"abstract":"<jats:p>First-class classes enable programmers to abstract over patterns in the class hierarchy and to experiment with new forms of object-oriented programming such as mixins and traits. This increase in expressive power calls for tools to control the complexity of the software architecture. A contract system is one possible tool that has seen much use in object-oriented programming languages, but existing contract systems cannot cope with first-class classes. On the one hand, the typical contract language deals only with plain values such as numbers, while classes are higher-order values. On the other hand, contract specifications are usually contained within class definitions, while classes as values call for a separate contract language.<\/jats:p>\n          <jats:p>This article presents the design and implementation of a contract system for first-class classes as well as a two-pronged evaluation. The first one states and proves a \u201cblame correctness\u201d theorem for a model of our language. The theorem shows that when the contract system assigns blame to a component for a contract violation, the component is indeed responsible for providing the nonconforming value. The second part, consisting of benchmarks and case studies, demonstrates the need for the rich contract language and validates that our implementation approach is performant with respect to time.<\/jats:p>","DOI":"10.1145\/2518189","type":"journal-article","created":{"date-parts":[[2013,11,12]],"date-time":"2013-11-12T15:29:09Z","timestamp":1384270149000},"page":"1-58","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":12,"title":["Contracts for First-Class Classes"],"prefix":"10.1145","volume":"35","author":[{"given":"T. Stephen","family":"Strickland","sequence":"first","affiliation":[{"name":"Northeastern University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Christos","family":"Dimoulas","sequence":"additional","affiliation":[{"name":"Northeastern University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Asumu","family":"Takikawa","sequence":"additional","affiliation":[{"name":"Northeastern University"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[{"name":"Northeastern University"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2013,11]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/949305.949316"},{"key":"e_1_2_1_2_1","unstructured":"Eric Allen David Chase Joe Hallett Victor Luchangco Jan-Willem Maessen Sukyoung Ryu Guy L. Steele Jr. and Sam Tobin-Hochstadt. 2008. The Fortress Language Specification Version 1.0. Sun Microsystems."},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/937563.937567"},{"key":"e_1_2_1_4_1","volume-title":"Virtual values for language extension. Tech. rep. UCSC-SOE-10-25","author":"Austin Thomas H.","unstructured":"Thomas H. Austin, Tim Disney, and Cormac Flanagan. 2010. Virtual values for language extension. Tech. rep. UCSC-SOE-10-25. University of California, Santa Cruz."},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-30569-9_3"},{"key":"e_1_2_1_6_1","doi-asserted-by":"publisher","DOI":"10.1016\/S1571-0661(04)00247-6"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/97945.97982"},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1029004"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0960129500000049"},{"key":"e_1_2_1_11_1","first-page":"23","article-title":"Design by contract in smalltalk","volume":"7","author":"Carrillo-Castellon Manuela","year":"1996","unstructured":"Manuela Carrillo-Castellon, Jesus Garcia-Molina, Ernesto Pimentel, and Israel Repiso. 1996. Design by contract in smalltalk. J. Object-Oriented Program. 7, 9, 23--28.","journal-title":"J. Object-Oriented Program."},{"key":"e_1_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/2039346.2039348"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926410"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504299"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1016\/0167-6423(91)90036-W"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.5555\/1795772"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/11737414_16"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796801004208"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504283"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/581478.581484"},{"key":"e_1_2_1_22_1","volume-title":"Proceedings of the Workshop on Foundations of Object-Oriented Languages.","author":"Fisher Kathleen","year":"2004","unstructured":"Kathleen Fisher and John Reppy. 2004. A typed calculus of traits. In Proceedings of the Workshop on Foundations of Object-Oriented Languages."},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","unstructured":"David Flanagan and Yukihiro Matsumoto. 2008. The Ruby Programming Language. O\u2019Reilly.","DOI":"10.5555\/1408408"},{"key":"e_1_2_1_24_1","volume-title":"Reference: Racket. Tech. rep. PLT-TR-2010-1","author":"Flatt Matthew","year":"2010","unstructured":"Matthew Flatt and PLT. 2010. Reference: Racket. Tech. rep. PLT-TR-2010-1. PLT Inc. http:\/\/racket-lang.org\/tr1\/."},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268961"},{"key":"e_1_2_1_26_1","doi-asserted-by":"publisher","DOI":"10.1007\/11924661_17"},{"key":"e_1_2_1_27_1","volume-title":"Jones","author":"Gaster Benedict R.","year":"1996","unstructured":"Benedict R. Gaster and Mark P. Jones. 1996. A polymorphic type system for extensible records and variants. Tech. rep. NOTTCS-TR-96-3. University of Nottingham."},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.5555\/273"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/1028976.1028987"},{"key":"e_1_2_1_30_1","unstructured":"Benedict Gomes David Stoutamire Boris Vaysman and Holger Klawitter. 1996. A language manual for sather 1.1. http:\/\/www1.icsi.berkeley.edu\/_sather\/Documentation\/LanguageDescription\/Descript.pdf.gz."},{"key":"e_1_2_1_31_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-70592-5_4"},{"key":"e_1_2_1_32_1","volume-title":"Proceedings of the Workshop on Foundations of Object-Oriented Languages.","author":"Gray Kathryn E.","year":"2010","unstructured":"Kathryn E. Gray. 2010. Interoperability in a scripted world: Putting inheritance and prototypes together. In Proceedings of the Workshop on Foundations of Object-Oriented Languages."},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1094811.1094830"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/99583.99603"},{"key":"e_1_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/646930.710411"},{"key":"e_1_2_1_36_1","volume-title":"Blue: Language specification, version 0.94","author":"Kolling Michael","year":"1997","unstructured":"Michael Kolling and John Rosenberg. 1997. Blue: Language specification, version 0.94. http:\/\/www.sd.monash.edu.au\/blue\/."},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.5555\/832254.832856"},{"key":"e_1_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/165854.165891"},{"key":"e_1_2_1_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/954666.971189"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1007\/11901433_2"},{"key":"e_1_2_1_41_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.scico.2004.05.015"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.5555\/221048"},{"key":"e_1_2_1_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/197320.197383"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/MS.1985.230345"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/504282.504298"},{"key":"e_1_2_1_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/2.161279"},{"key":"e_1_2_1_47_1","doi-asserted-by":"publisher","DOI":"10.5555\/129093"},{"key":"e_1_2_1_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/28697.28698"},{"key":"e_1_2_1_49_1","doi-asserted-by":"publisher","DOI":"10.1145\/361598.361623"},{"key":"e_1_2_1_50_1","doi-asserted-by":"publisher","DOI":"10.5555\/785408.785590"},{"key":"e_1_2_1_51_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(77)90044-5"},{"key":"e_1_2_1_52_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-540-45070-2_12"},{"key":"e_1_2_1_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869498"},{"key":"e_1_2_1_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869631.1869642"},{"key":"e_1_2_1_55_1","doi-asserted-by":"publisher","DOI":"10.5555\/1929087.1929096"},{"key":"e_1_2_1_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/2384616.2384685"},{"key":"e_1_2_1_57_1","volume-title":"Component Software","author":"Szyperski Clemens","unstructured":"Clemens Szyperski. 1997. Component Software. Addison-Wesley."},{"key":"e_1_2_1_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869631.1869638"},{"key":"e_1_2_1_59_1","doi-asserted-by":"publisher","DOI":"10.5555\/186677.186692"}],"container-title":["ACM Transactions on Programming Languages and Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2518189","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2518189","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T20:14:13Z","timestamp":1750277653000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2518189"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,11]]},"references-count":57,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2013,11]]}},"alternative-id":["10.1145\/2518189"],"URL":"https:\/\/doi.org\/10.1145\/2518189","relation":{},"ISSN":["0164-0925","1558-4593"],"issn-type":[{"value":"0164-0925","type":"print"},{"value":"1558-4593","type":"electronic"}],"subject":[],"published":{"date-parts":[[2013,11]]},"assertion":[{"value":"2012-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-05-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2013-11-01","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}