Reference. Adjoint Reactive GUI Programming
Most interaction with a computer is via graphical user interfaces. These are traditionally implemented imperatively, using shared mutable state and callbacks. This is efficient, but is also difficult to reason about and error prone. Functional Reactive Programming (FRP) provides an elegant alternative which allows GUIs to be designed in a declarative fashion. However, most FRP languages are synchronous and continually check for new data. This means that an FRP-style GUI will “wake up” on each program cycle. This is problematic for applications like text editors and browsers, where often nothing happens for extended periods of time, and we want the implementation to sleep until new data arrives. In this paper, we present an asynchronous FRP language for designing GUIs called . Our language provides a novel semantics for widgets, the building block of GUIs, which offers both a natural Curry–Howard logical interpretation and an efficient implementation strategy.
Cite
Cites 28 works (4 here)
With notes (4)
A judgmental reconstruction of modal logic pfenning-2001-a
A mixed linear and non-linear logic: Proofs, terms and models: Extended abstract bentonMixedLinearNonlinear1995
Intuitionistic linear logic regains the expressive power of intuitionistic logic through the ! (‘of course’) modality. Benton, Bierman, Hyland and de Paiva have given a term assignment system for ILL and an associated notion of categorical model in which the ! modality is modelled by a comonad satisfying certain extra conditions. Ordinary intuitionistic logic is then modelled in a cartesian closed category which arises as a full subcategory of the category of coalgebras for the comonad. This paper attempts to explain the connection between ILL and IL more directly and symmetrically by giving a logic, term calculus and categorical model for a system in which the linear and non-linear worlds exist on an equal footing, with operations allowing one to pass in both directions. We start from the categorical model of ILL given by Benton, Bierman, Hyland and de Paiva and show that this is equivalent to having a symmetric monoidal adjunction between a symmetric monoidal closed category and a cartesian closed category. We then derive both a sequent calculus and a natural deduction presentation of the logic corresponding to the new notion of model.
Linear logic girard_linear_1987
The familiar connective of negation is broken into two operations: linear negation which is the purely negative part of negation and the modality “of course” which has the meaning of a reaffirmation. Following this basic discovery, a completely new approach to the whole area between constructive logics and programmation is initiated.
Adjointness in Foundations lawvere_1969
External (24)
- Diamonds are not forever: liveness in reactive programming with guarded recursion (2020)
- Simply RaTT: a fitch-style modal calculus for reactive programming without space leaks (2019)
- Lambda Calculus for Reactive Programming (Master's thesis) (2018)
- Semantics of temporal type systems (Master's thesis) (2018)
- Fitch-Style Modal Lambda Calculi (2017)
- Guarded Dependent Type Theory with Coinductive Types (2016)
- Linear Hyperdoctrines and Comodules (2016)
- Fair reactive programming (2014)
- Temporal logic with "Until", functional reactive programming with processes, and concrete process categories (2013)
- Higher-order functional reactive programming without spacetime leaks (2013)
- LTL types FRP: linear-time temporal logic propositions as types, proofs as functional reactive programs (2012)
- Towards a Common Categorical Semantics for Linear-Time Temporal Logic and Functional Reactive Programming (2012)
- First Steps in Synthetic Guarded Domain Theory: Step-Indexing in the Topos of Trees (2011)
- Ultrametric Semantics of Reactive Programs (2011)
- Push-pull functional reactive programming (2009)
- Lucid Synchrone, version 3 (2006)
- Modal Logic (2001)
- Categorical Models for Intuitionistic and Linear Type Theory (2000)
- A modality for recursion (2000)
- Functional reactive animation (1997)
- Sheaves in Geometry and Logic (1994)
- LUSTRE: a declarative language for real-time programming (1987)
- The ESTEREL Synchronous Programming Language and its Mathematical Semantics (1984)
- The temporal logic of programs (1977)