{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,10,9]],"date-time":"2025-10-09T21:06:01Z","timestamp":1760043961393,"version":"3.41.0"},"reference-count":51,"publisher":"Association for Computing Machinery (ACM)","issue":"OOPSLA","license":[{"start":{"date-parts":[[2019,10,10]],"date-time":"2019-10-10T00:00:00Z","timestamp":1570665600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"National Science Foundation","doi-asserted-by":"publisher","award":["1518844, 1763922"],"award-info":[{"award-number":["1518844, 1763922"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2019,10,10]]},"abstract":"<jats:p>In the context of gradual typing, type soundness guarantees the safety of typed code. When untyped code fails to respect types, a runtime check finds the discrepancy. As for untyped code, type soundness makes no promises; it does not protect untyped code from mistakes in type specifications and unwarranted blame.<\/jats:p>\n          <jats:p>To address the asymmetry, this paper adapts complete monitoring from the contract world to gradual typing. Complete monitoring strengthens plain soundness into a guarantee that catches problems with faulty type specifications. Furthermore, a semantics that satisfies complete monitoring can easily pinpoint the conflict between a type specification and a value. For gradual typing systems that fail complete monitoring, the technical framework provides a source-of-truth to assess the quality of blame.<\/jats:p>","DOI":"10.1145\/3360548","type":"journal-article","created":{"date-parts":[[2019,10,11]],"date-time":"2019-10-11T14:53:33Z","timestamp":1570805613000},"page":"1-29","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":8,"title":["Complete monitors for gradual types"],"prefix":"10.1145","volume":"3","author":[{"given":"Ben","family":"Greenman","sequence":"first","affiliation":[{"name":"Northeastern University, USA"}]},{"given":"Matthias","family":"Felleisen","sequence":"additional","affiliation":[{"name":"Northeastern University, USA"}]},{"given":"Christos","family":"Dimoulas","sequence":"additional","affiliation":[{"name":"Northwestern University, USA"}]}],"member":"320","published-online":{"date-parts":[[2019,10,10]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"crossref","unstructured":"Esteban Allende Johan Fabry and \u00c9ric Tanter. 2013. Cast Insertion Strategies for Gradually-Typed Objects. In DLS. 27\u201336.  Esteban Allende Johan Fabry and \u00c9ric Tanter. 2013. Cast Insertion Strategies for Gradually-Typed Objects. In DLS. 27\u201336.","DOI":"10.1145\/2578856.2508171"},{"volume-title":"The Lambda Calculus: Its Syntax and Semantics","author":"Barendregt Henk","key":"e_1_2_2_2_1"},{"key":"e_1_2_2_3_1","doi-asserted-by":"crossref","unstructured":"Gavin Bierman Martin Abadi and Mads Torgersen. 2014. Understanding TypeScript. In ECOOP. 257\u2013281.  Gavin Bierman Martin Abadi and Mads Torgersen. 2014. Understanding TypeScript. In ECOOP. 257\u2013281.","DOI":"10.1007\/978-3-662-44202-9_11"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796806005971"},{"key":"e_1_2_2_5_1","doi-asserted-by":"crossref","unstructured":"Ambrose Bonnaire-Sergeant Rowan Davies and Sam Tobin-Hochstadt. 2016. Practical Optional Types for Clojure. In ESOP. 68\u201394.  Ambrose Bonnaire-Sergeant Rowan Davies and Sam Tobin-Hochstadt. 2016. Practical Optional Types for Clojure. In ESOP. 68\u201394.","DOI":"10.1007\/978-3-662-49498-1_4"},{"volume-title":"ICFP","year":"2017","author":"Castagna Giuseppe","key":"e_1_2_2_6_1"},{"volume-title":"OOPSLA","year":"2017","author":"Chaudhuri Avik","key":"e_1_2_2_7_1"},{"key":"e_1_2_2_8_1","first-page":"1","article-title":"Blame Tracking and Type Error Debugging","volume":"2","author":"Chen Sheng","year":"2019","journal-title":"SNAPL."},{"key":"e_1_2_2_9_1","first-page":"1","article-title":"KafKa","volume":"12","author":"Chung Benjamin W.","year":"2018","journal-title":"Gradual Typing for Objects. In ECOOP."},{"key":"e_1_2_2_10_1","doi-asserted-by":"crossref","unstructured":"Matteo Cimini and Jeremy Siek. 2017. Automatically Generating the Dynamic Semantics of Gradually Typed Languages. In POPL. 789\u2013803.  Matteo Cimini and Jeremy Siek. 2017. Automatically Generating the Dynamic Semantics of Gradually Typed Languages. In POPL. 789\u2013803.","DOI":"10.1145\/3093333.3009863"},{"volume-title":"Cormac Flanagan, and Matthias Felleisen.","year":"2011","author":"Dimoulas Christos","key":"e_1_2_2_11_1"},{"key":"e_1_2_2_12_1","doi-asserted-by":"crossref","unstructured":"Christos Dimoulas Sam Tobin-Hochstadt and Matthias Felleisen. 2012. Complete Monitors for Behavioral Contracts. In ESOP. 214\u2013233.  Christos Dimoulas Sam Tobin-Hochstadt and Matthias Felleisen. 2012. Complete Monitors for Behavioral Contracts. In ESOP. 214\u2013233.","DOI":"10.1007\/978-3-642-28869-2_11"},{"key":"e_1_2_2_13_1","doi-asserted-by":"crossref","unstructured":"Asger Feldthaus and Anders M\u00f8ller. 2014. Checking Correctness of TypeScript Interfaces for JavaScript Libraries. In OOPSLA. 1\u201316.  Asger Feldthaus and Anders M\u00f8ller. 2014. Checking Correctness of TypeScript Interfaces for JavaScript Libraries. In OOPSLA. 1\u201316.","DOI":"10.1145\/2660193.2660215"},{"volume-title":"Robert Bruce Findler, and Matthew Flatt","year":"2009","author":"Felleisen Matthias","key":"e_1_2_2_14_1"},{"key":"e_1_2_2_15_1","doi-asserted-by":"crossref","unstructured":"Robert Bruce Findler and Matthias Felleisen. 2002. Contracts for Higher-Order Functions. In ICFP. 48\u201359.  Robert Bruce Findler and Matthias Felleisen. 2002. Contracts for Higher-Order Functions. In ICFP. 48\u201359.","DOI":"10.1145\/583852.581484"},{"key":"e_1_2_2_16_1","doi-asserted-by":"crossref","unstructured":"Michael Greenberg. 2015. Space-Efficient Manifest Contracts. In POPL. 181\u2013194.  Michael Greenberg. 2015. Space-Efficient Manifest Contracts. In POPL. 181\u2013194.","DOI":"10.1145\/2775051.2676967"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796812000135"},{"volume-title":"ICFP","year":"2018","author":"Greenman Ben","key":"e_1_2_2_18_1"},{"key":"e_1_2_2_20_1","first-page":"1","article-title":"How to evaluate the performance of gradual type systems","volume":"29","author":"Greenman Ben","year":"2019","journal-title":"JFP"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/371880.371887"},{"key":"e_1_2_2_22_1","first-page":"167","article-title":"Space-efficient Gradual Typing","volume":"23","author":"Herman David","year":"2010","journal-title":"HOSC"},{"key":"e_1_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Ralf Hinze Johan Jeuring and Andres L\u00f6h. 2006. Typed Contracts for Functional Programming. In FLOPS. 208\u2013225.  Ralf Hinze Johan Jeuring and Andres L\u00f6h. 2006. Typed Contracts for Functional Programming. In FLOPS. 208\u2013225.","DOI":"10.1007\/11737414_15"},{"key":"e_1_2_2_24_1","doi-asserted-by":"crossref","unstructured":"Andre Murbach Maidl Fabio Mascarenhas and Roberto Ierusalimschy. 2015. A Formalization of Typed Lua. In DLS. 13\u201325.  Andre Murbach Maidl Fabio Mascarenhas and Roberto Ierusalimschy. 2015. A Formalization of Typed Lua. In DLS. 13\u201325.","DOI":"10.1145\/2936313.2816709"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1498926.1498930"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1016\/0022-0000(78)90014-4"},{"volume-title":"Matthew Flatt, and Stephen Chong.","year":"2016","author":"Moore Scott","key":"e_1_2_2_27_1"},{"volume-title":"OOPSLA","year":"2017","author":"Muehlboeck Fabian","key":"e_1_2_2_28_1"},{"volume-title":"New and Amal Ahmed","year":"2018","author":"Max","key":"e_1_2_2_29_1"},{"volume-title":"POPL","year":"2019","author":"New Max S.","key":"e_1_2_2_30_1"},{"key":"e_1_2_2_31_1","doi-asserted-by":"crossref","unstructured":"Aseem Rastogi Nikhil Swamy C\u00e9dric Fournet Gavin Bierman and Panagiotis Vekris. 2015. Safe &amp; Efficient Gradual Typing for TypeScript. In POPL. 167\u2013180.  Aseem Rastogi Nikhil Swamy C\u00e9dric Fournet Gavin Bierman and Panagiotis Vekris. 2015. Safe &amp; Efficient Gradual Typing for TypeScript. In POPL. 167\u2013180.","DOI":"10.1145\/2775051.2676971"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133879"},{"volume-title":"Francesco Zappa Nardelli, and Jan Vitek","year":"2015","author":"Richards Gregor","key":"e_1_2_2_33_1"},{"key":"e_1_2_2_34_1","first-page":"1","article-title":"Transient Typechecks are (Almost) Free","volume":"15","author":"Roberts Richard","year":"2019","journal-title":"ECOOP."},{"key":"e_1_2_2_35_1","doi-asserted-by":"crossref","unstructured":"Jeremy Siek Peter Thiemann and Philip Wadler. 2015a. Blame and Coercion: Together Again for the First Time. In PLDI. 425\u2013435.  Jeremy Siek Peter Thiemann and Philip Wadler. 2015a. Blame and Coercion: Together Again for the First Time. In PLDI. 425\u2013435.","DOI":"10.1145\/2813885.2737968"},{"key":"e_1_2_2_36_1","doi-asserted-by":"crossref","unstructured":"Jeremy Siek Michael M. Vitousek Matteo Cimini Sam Tobin-Hochstadt and Ronald Garcia. 2015c. Monotonic References for Efficient Gradual Typing. In ESOP. 432\u2013456.  Jeremy Siek Michael M. Vitousek Matteo Cimini Sam Tobin-Hochstadt and Ronald Garcia. 2015c. Monotonic References for Efficient Gradual Typing. In ESOP. 432\u2013456.","DOI":"10.1007\/978-3-662-46669-8_18"},{"key":"e_1_2_2_37_1","unstructured":"Jeremy G. Siek Michael M. Vitousek Matteo Cimini and John Tang Boyland. 2015b. Refined Criteria for Gradual Typing. In SNAPL. 274\u2013293.  Jeremy G. Siek Michael M. Vitousek Matteo Cimini and John Tang Boyland. 2015b. Refined Criteria for Gradual Typing. In SNAPL. 274\u2013293."},{"volume-title":"Experience Report: Applying Random Testing to a Base Type Environment. In ICFP. 351\u2013356.","year":"2013","author":"St-Amour Vincent","key":"e_1_2_2_38_1"},{"key":"e_1_2_2_39_1","first-page":"1","article-title":"An extended account of contract monitoring strategies as patterns of communication","volume":"28","author":"Swords Cameron","year":"2018","journal-title":"JFP"},{"volume-title":"Matthew Flatt, Sam Tobin-Hochstadt, and Matthias Felleisen.","year":"2015","author":"Takikawa Asumu","key":"e_1_2_2_40_1"},{"key":"e_1_2_2_41_1","doi-asserted-by":"crossref","unstructured":"Asumu Takikawa T. Stephen Strickland Christos Dimoulas Sam Tobin-Hochstadt and Matthias Felleisen. 2012. Gradual Typing for First-Class Classes. In OOPSLA. 793\u2013810.  Asumu Takikawa T. Stephen Strickland Christos Dimoulas Sam Tobin-Hochstadt and Matthias Felleisen. 2012. Gradual Typing for First-Class Classes. In OOPSLA. 793\u2013810.","DOI":"10.1145\/2398857.2384674"},{"key":"e_1_2_2_42_1","doi-asserted-by":"crossref","unstructured":"Asumu Takikawa T. Stephen Strickland and Sam Tobin-Hochstadt. 2013. Constraining Delimited Control with Contracts. In ESOP. 229\u2013248.  Asumu Takikawa T. Stephen Strickland and Sam Tobin-Hochstadt. 2013. Constraining Delimited Control with Contracts. In ESOP. 229\u2013248.","DOI":"10.1007\/978-3-642-37036-6_14"},{"key":"e_1_2_2_43_1","doi-asserted-by":"crossref","unstructured":"Satish Thatte. 1990. Quasi-static Typing. In POPL. 367\u2013381.  Satish Thatte. 1990. Quasi-static Typing. In POPL. 367\u2013381.","DOI":"10.1145\/96709.96747"},{"key":"e_1_2_2_44_1","doi-asserted-by":"crossref","unstructured":"Sam Tobin-Hochstadt and Matthias Felleisen. 2006. Interlanguage Migration: from Scripts to Programs. In DLS. 964\u2013974.  Sam Tobin-Hochstadt and Matthias Felleisen. 2006. Interlanguage Migration: from Scripts to Programs. In DLS. 964\u2013974.","DOI":"10.1145\/1176617.1176755"},{"key":"e_1_2_2_45_1","doi-asserted-by":"crossref","unstructured":"Sam Tobin-Hochstadt and Matthias Felleisen. 2008. The Design and Implementation of Typed Scheme. In POPL. 395\u2013406.  Sam Tobin-Hochstadt and Matthias Felleisen. 2008. The Design and Implementation of Typed Scheme. In POPL. 395\u2013406.","DOI":"10.1145\/1328897.1328486"},{"key":"e_1_2_2_46_1","doi-asserted-by":"crossref","unstructured":"Sam Tobin-Hochstadt and Matthias Felleisen. 2010. Logical Types for Untyped Languages. In ICFP. 117\u2013128.  Sam Tobin-Hochstadt and Matthias Felleisen. 2010. Logical Types for Untyped Languages. In ICFP. 117\u2013128.","DOI":"10.1145\/1932681.1863561"},{"key":"e_1_2_2_47_1","first-page":"1","article-title":"Migratory Typing: Ten years later","volume":"17","author":"Tobin-Hochstadt Sam","year":"2017","journal-title":"SNAPL."},{"volume-title":"Siek","year":"2017","author":"Vitousek Michael M.","key":"e_1_2_2_49_1"},{"key":"e_1_2_2_50_1","unstructured":"Philip Wadler. 2015. A Complement to Blame. In SNAPL. 309\u2013320.  Philip Wadler. 2015. A Complement to Blame. In SNAPL. 309\u2013320."},{"key":"e_1_2_2_51_1","doi-asserted-by":"crossref","unstructured":"Philip Wadler and Robert Bruce Findler. 2009. Well-typed Programs Can\u2019t be Blamed. In ESOP. 1\u201315.  Philip Wadler and Robert Bruce Findler. 2009. Well-typed Programs Can\u2019t be Blamed. In ESOP. 1\u201315.","DOI":"10.1007\/978-3-642-00590-9_1"},{"volume-title":"Whip: Higher-Order Contracts for Modern Services. PACMPL 1, ICFP","year":"2017","author":"Waye Lucas","key":"e_1_2_2_52_1"},{"volume-title":"Sylvain Lebresne, Johan Ostlund, and Jan Vitek.","year":"2010","author":"Wrigstad Tobias","key":"e_1_2_2_53_1"}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360548","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360548","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3360548","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:22:58Z","timestamp":1750202578000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3360548"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,10,10]]},"references-count":51,"journal-issue":{"issue":"OOPSLA","published-print":{"date-parts":[[2019,10,10]]}},"alternative-id":["10.1145\/3360548"],"URL":"https:\/\/doi.org\/10.1145\/3360548","relation":{},"ISSN":["2475-1421"],"issn-type":[{"type":"electronic","value":"2475-1421"}],"subject":[],"published":{"date-parts":[[2019,10,10]]},"assertion":[{"value":"2019-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}