Compiling Linear Logic using Continuations
Jean-Philippe Bernardy, Dan Rosén, Nicholas Smallbone · Chalmers Publication Library (Chalmers University of Technology) · 2014
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 programming problems.