Show simple item record

dc.contributor.authorWilliams, Jack
dc.contributor.authorMorris, J. Garrett
dc.contributor.authorWadler, Philip
dc.date.accessioned2018-10-26T20:03:24Z
dc.date.available2018-10-26T20:03:24Z
dc.date.issued2018-11
dc.identifier.citationJack Williams, J. Garrett Morris, and Philip Wadler. 2018. The Root Cause of Blame: Contracts for Intersection and Union Types. Proc. ACM Program. Lang. 2, OOPSLA, Article 134 (November 2018), 29 pages. https://doi.org/10.1145/3276504en_US
dc.identifier.urihttp://hdl.handle.net/1808/27076
dc.description.abstractGradual typing has emerged as the tonic for programmers with a thirst for a blend of static and dynamic typing. Contracts provide a lightweight form of gradual typing as they can be implemented as a library, rather than requiring a gradual type system.

Intersection and union types are well suited to static and dynamic languages: intersection encodes overloaded functions; union encodes uncertain data arising from branching code. We extend the untyped lambda calculus with contracts for monitoring higher-order intersection and union types, for the first time giving a uniform treatment to both. Each operator requires a single reduction rule that does not depend on the constituent types or the context of the operator.

We present a new method for defining contract satisfaction based on blame behaviour. A value positively satisfies a type if applying a contract of that type can never elicit positive blame. A continuation negatively satisfies a type if applying a contract of that type can never elicit negative blame. We supplement our definition of satisfaction with a series of monitoring properties that satisfying values and continuations should have.
en_US
dc.publisherAssociation for Computing Machineryen_US
dc.rights© 2018 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution 4.0 International License.en_US
dc.rights.urihttps://creativecommons.org/licenses/by/4.0/en_US
dc.subjectFunctional languagesen_US
dc.subjectSemanticsen_US
dc.subjectTheory of computationen_US
dc.subjectProgram semanticsen_US
dc.subjectSoftware and its engineeringen_US
dc.subjectGradual typingen_US
dc.subjectBlameen_US
dc.subjectContractsen_US
dc.subjectIntersectionen_US
dc.subjectUnionen_US
dc.titleThe Root Cause of Blame: Contracts for Intersection and Union Typesen_US
dc.typeArticleen_US
kusw.kuauthorMorris, J. Garrett
kusw.kudepartmentElectrical Engineering & Computer Scienceen_US
dc.identifier.doi10.1145/3276504en_US
kusw.oaversionScholarly/refereed, publisher versionen_US
kusw.oapolicyThis item meets KU Open Access policy criteria.en_US
dc.rights.accessrightsopenAccessen_US


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

© 2018 Copyright held by the owner/author(s).  This work is licensed under a Creative Commons Attribution 4.0 International License.
Except where otherwise noted, this item's license is described as: © 2018 Copyright held by the owner/author(s). This work is licensed under a Creative Commons Attribution 4.0 International License.