ATTENTION: The software behind KU ScholarWorks is being upgraded to a new version. Starting July 15th, users will not be able to log in to the system, add items, nor make any changes until the new version is in place at the end of July. Searching for articles and opening files will continue to work while the system is being updated. If you have any questions, please contact Marianne Reed at mreed@ku.edu .

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.