Charisma is a parallel programming language that also supports a deterministic and simple
parallel programming style, and cleanly separates sequential and parallel code. With Charisma, one
declares multiple indexed collections of data-driven objects, and specifies the overall dataflow and
control flow in a high level script. Each object's sequential method, invoked from the Charisma
"script", consumes some remotely generated data, and "publishes" some data without worrying
about who will consume it. A relatively simple compiler analyzes data-dependencies between
produced and consumed values to generate messages and code for the triggering of object methods.
This notation is especially conducive to collaborative application development, where a parallel
structure is agreed upon via Charisma code, and application scientists can work on sequential
code sections via well-defined interfaces.
Investigator: