Compiling Linear Logic using Continuations
As System F is the logical foundation of functional programming, it has
long been expected that Classical Linear Logic (CLL) is the logical
foundation of concurrent programming. In particular, thanks to an
involutive negation, its language of propositions correspond to protocols.
This means that CLL provides the principles to integrate concurrency into
functional programming languages.
Aiming towards this integration, we translate the concurrency features of
CLL into continuations, essentially via a negation-model of CLL into System
F. Practically, the translation can be used to embed CLL programs into
functional languages such as Haskell. We explain the properties of the
interface between the two languages. In particular, using an example, we
illustrate how the par (⅋) operator can solve practical functional
Classical Linear Logic