Carnap: The Programming Language

An addition to the list of programming languages named after logicians (e.g., Gödel, Haskell, Curry): Carnap

The Carnap Programming Language

Process oriented programming: shared data structures and the concurrent processes that act upon them.

Carnap is a general purpose programming language for the next generation of many-core devices, many many-core systems and their applications. It introduces a process oriented programming model that allows programmers to separate the concerns of data structures and the concurrent processes that act upon them.

The primitive process of a Carnap program is called an action. An action determines a local or shared state. Actions are assembled by construction to form the component processes of a program. Programs consist of concurrent processes that construct and interact via logically shared data structures and resources called Contexts.

In this way the application programmer is able to separate concerns, reasoning separately about the two primary aspects of Carnap programs: potentially large scale data structures and the concurrent processes that act upon them.

Contexts are named, type associative and statically typed.

Two system level contexts allow concurrent access to SQL databases and any system that will respond to a standard universal resource identifier (URI). Concurrency control is provided by the Carnap primitives (initial implementations will include a File Server, PostgreSQL and Apache 2.0).

The primary goal of Carnap is to ease the general purpose programming of applications that can utilize the concurrency of future many-core and many many-core systems.” The Carnap Programming Language Manual

Carnap is Open Source and freely available to the research community.

One thought on “Carnap: The Programming Language

  1. “You can begin to play with Carnap programs immediately by writing code using the interpreter in ANTLRWorks and looking at the parse tree that it generates. A full programming manual should be available shortly….Download ANTLRWorks : pragmatic purposes our initial target platform is Java “From

Leave a Reply

Your email address will not be published. Required fields are marked *