Computing with Capsules

  title={Computing with Capsules},
  author={Jean-Baptiste Jeannin and Dexter Kozen},
Capsules provide an algebraic representation of the state of a computation in higher-order functional and imperative languages. A capsule is essentially a finite coalgebraic representation of a regular closed λ-coterm. One can give an operational semantics based on capsules for a higher-order programming language with functional and imperative features, including mutable bindings. Static (lexical) scoping is captured purely algebraically without stacks, heaps, or closures. All operations of… 
Capsules and Closures
Sound Regular Corecursion in coFJ
The aim of the paper is to provide solid foundations for a programming paradigm natively supporting the creation and manipulation of cyclic data structures. To this end, we describe coFJ, a Java-like
CoCaml: Functional Programming with Regular Coinductive Types
CoCaml is presented, a functional programming language extending OCaml, which allows us to define recursive functions on regular coinductive datatypes, but parameterized by an equation solver.
CoCaml: Programming with Coinductive Types
We present CoCaml, a functional programming language extending OCaml, which allows us to define functions on coinductive datatypes parameterized by an equation solver. We provide numerous examples
Universal Semantics for the Stochastic Lambda-Calculus
These two semantic approaches build on previous work that used similar techniques to reason about higher-order probabilistic programs, but for the first time admit an adequacy theorem relating the operational and denotational views.
Enhanced Regular Corecursion for Data Streams
We propose a simple calculus for processing data streams (infinite flows of data series), represented by finite sets of equations built on stream operators. Furthermore, functions defining streams
Substructural logical specifications
This dissertation introduces and demonstrates four methodologies for developing and using substructural logical frameworks for specifying and reasoning about stateful and concurrent systems, and shows that generative invariants can form the basis of progress-and-preservation-style reasoning about programming languages encoded in SLS.
Capsules and Separation
We study a formulation of separation logic using capsules, a representation of the state of a computation in higher-order programming languages with mutable variables. We prove soundness of the frame
Practical coinduction
It is shown that coinduction is not only about bisimilarity and equality of behaviors, but also applicable to a variety of functions and relations defined on coinductive datatypes.
Environments and the complexity of abstract machines
It is shown that local environments admit implementations that are asymptotically faster than global environments, lowering the dependency from the size of the initial term from linear to logarithmic, thus improving the bounds in the literature.


Capsules and Closures
Relational Semantics for Higher-Order Programs
This paper provides a natural relational semantics for a programming language with higher-order functions that is purely compositional, with all contextual considerations completely encapsulated in the state.
The semantics of local storage, or what makes the free-list free?(Preliminary Report)
Denotational semantics for an ALGOL-like language with finite-mode procedures, blocks with local storage, and sharing (aliasing) is given by translating programs into an appropriately typed
Notions of Computation and Monads
  • E. Moggi
  • Computer Science
    Inf. Comput.
  • 1991
An Abstract Framework for Environment Machines
  • P. Curien
  • Computer Science
    Theor. Comput. Sci.
  • 1991
Local variable scoping and Kleene algebra with tests
Linearity, Sharing and State: a fully abstract game semantics for Idealized Algol with active expressions
Higher order operational techniques in semantics
Introduction 1. Operational reasoning about primitive objects A. Gordon 2. Semantics for core concurrent ML with computation types A. Jeffrey 3. Relational reasoning about contexts S. B. Lassen 4.
A Game Semantics of Local Names and Good Variables
After refining the semantics via a notion of garbage collection, it is proved that the compact elements are definable as terms, and hence obtain a full abstraction result.