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.