|
CMU-CS-05-104
Computer Science Department
School of Computer Science, Carnegie Mellon University
CMU-CS-05-104
CLL: A Concurrent Language Built from Logical Principles
Deepak Garg
January 2005
CMU-CS-05-104.ps
CMU-CS-05-104.pdf
Keywords: Concurrency, formulas-as-types, linear logic, logic
programming, monad
We present CLL, a concurrent programming language that symmetrically
integrates functional and concurrent logic programming. First, a
core functional language is obtained from a proof-term assignment
to a variant of intuitionistic linear logic, called FOMLL, via the
Curry-Howard isomorphism. Next, we introduce a Chemical Abstract
Machine (CHAM) whose molecules are typed terms of this functional
language. Rewrite rules for this CHAM are derived by augmenting
proof-search rules for FOMLL with proof-terms. We show that this
CHAM is a powerful concurrent language and that the linear connectives
⊗, ∃, ⊕, ‾° and & correspond to process-calculi connectives for
parallel composition, name restriction, internal choice, input
prefixing and external choice respectively. We also demonstrate that
communication and synchronization between CHAM terms can be
performed through proof-search on the types of terms. Finally,
we embed this CHAM as a construct in our functional language to
allow interleaving functional and concurrent computation in CLL.
72 pages
|