The Carnap Programming Language

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: Carnap programs consist of data structures and the concurrent processes that act upon them.

§2 "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.

§3 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.

§4 Contexts are named, type associative and statically typed.


Carnap was mentioned here before, but I think that the website provides more information now, specifically there are now some example programs to look at.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

In the spirit of the season

In the spirit of the season ahead of us, I think that it would have been better to find a language named after the first name of the famed philosopher, but alas that's the closest I managed.

Are you implying...

...something about Carnap's nose?

I've only seen black and

I've only seen black and white photos, so I can't comment on that...

safety of it vs. e.g. skeletons?

I browsed the site but am not cluefull enough to know: how might Carnap compare in terms of 'correct by construction' to using a skeleton library approach to concurrency? I get the feeling that while skeletons might seems restrictive, they are more likely to help you avoid strange concurrency bugs.