Show simple item record

Authordc.contributor.authorFigueroa, Ismael 
Authordc.contributor.authorTanter, Éric Pierre 
Admission datedc.date.accessioned2016-06-28T22:00:49Z
Available datedc.date.available2016-06-28T22:00:49Z
Publication datedc.date.issued2016
Cita de ítemdc.identifier.citationScience of Computer Programming 119 (2016) 3–30en_US
Identifierdc.identifier.issn0167-6423
Identifierdc.identifier.otherDOI: 10.1016/j.scico.2015.11.010
Identifierdc.identifier.urihttps://repositorio.uchile.cl/handle/2250/139232
General notedc.descriptionArtículo de publicación ISIen_US
Abstractdc.description.abstractComputational effects complicate the tasks of reasoning about and maintaining software, due to the many kinds of interferences that can occur. While different proposals have been formulated to alleviate the fragility and burden of dealing with specific effects, such as state or exceptions, there is no prevalent robust mechanism that addresses the general interference issue. Building upon the idea of capability-based security, we propose effect capabilities as an effective and flexible manner to control monadic effects and their interferences. Capabilities can be selectively shared between modules to establish secure effect-centric coordination. We further refine capabilities with type-based permission lattices to allow fine-grained decomposition of authority. We provide an implementation of effect capabilities in Haskell, using type classes to establish a way to statically share capabilities between modules, as well as to check proper access permissions to effects at compile time. We first exemplify how to tame effect interferences using effect capabilities by treating state and exceptions. Then we focus on taming I/O by proposing a fine-grained lattice of I/O permissions based on the current classification of its operations. Finally, we show that integrating effect capabilities with modern tag-based monadic mechanisms provides a practical, modular and safe mechanism for monadic programming in Haskell.en_US
Lenguagedc.language.isoenen_US
Publisherdc.publisherElsevieren_US
Type of licensedc.rightsAtribución-NoComercial-SinDerivadas 3.0 Chile*
Link to Licensedc.rights.urihttp://creativecommons.org/licenses/by-nc-nd/3.0/cl/*
Keywordsdc.subjectMonadsen_US
Keywordsdc.subjectCapabilitiesen_US
Keywordsdc.subjectComputational effectsen_US
Keywordsdc.subjectTagged monadsen_US
Títulodc.titleEffect capabilities for Haskell: Taming effect interference in monadic programmingen_US
Document typedc.typeArtículo de revista


Files in this item

Icon

This item appears in the following Collection(s)

Show simple item record

Atribución-NoComercial-SinDerivadas 3.0 Chile
Except where otherwise noted, this item's license is described as Atribución-NoComercial-SinDerivadas 3.0 Chile