Skip to main content
Kent Academic Repository

Coeffects: Unified static analysis of context-dependence

Petricek, Tomas, Orchard, Dominic A., Mycroft, Alan (2013) Coeffects: Unified static analysis of context-dependence. Lecture Notes in Computer Science, 7966 . pp. 385-397. ISSN 0302-9743. (doi:10.1007/978-3-642-39212-2_35) (KAR id:57543)


Monadic effect systems provide a unified way of tracking effects of computations, but there is no unified mechanism for tracking how computations rely on the environment in which they are executed. This is becoming an important problem for modern software – we need to track where distributed computations run, which resources a program uses and how they use other capabilities of the environment.

We consider three examples of context-dependence analysis: liveness analysis, tracking the use of implicit parameters (similar to tracking of resource usage in distributed computation), and calculating caching requirements for dataflow programs. Informed by these cases, we present a unified calculus for tracking context dependence in functional languages together with a categorical semantics based on indexed comonads. We believe that indexed comonads are the right foundation for constructing context-aware languages and type systems and that following an approach akin to monads can lead to a widespread use of the concept.

Item Type: Article
DOI/Identification number: 10.1007/978-3-642-39212-2_35
Uncontrolled keywords: coeffects, static analysis, programming patterns
Subjects: Q Science > QA Mathematics (inc Computing science) > QA 9 Formal systems, logics
Divisions: Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing
Depositing User: Dominic Orchard
Date Deposited: 28 Sep 2016 13:16 UTC
Last Modified: 24 Nov 2021 10:40 UTC
Resource URI: (The current URI for this page, for reference purposes)

University of Kent Author Information

  • Depositors only (login required):

Total unique views for this document in KAR since July 2020. For more details click on the image.