SofCheck Inc., best known as a vendor of software analysis and verification technology and Ada Compilers, is working on a parallel programming language called ParaSail that has been presented at two learned conferences recently.ParaSail – for Parallel Specification and Implementation Language – is being developed "from scratch" and is particularly aimed at safety-critical systems where C/C++, and parallelizations of C/C++ are notoriously unsafe but it is also intended to make use of abundant processing resources that will soon be potentially available. It is SofCheck's assertion that chips with more than 64 cores will become relatively easy to make, but they will prove difficult to program
effectively without a well-constructed parallel programming language.
SofCheck (Burlington, Mass.) is led by chairman and chief technology officer Tucker Taft who is well known as an industry leader in compiler construction and programming language design. It was Taft, while employed at Intermetrics Inc., who was the lead designer of the Ada 95 programming language and who helped add formal methods to parts of the Ada language.
Taft presented a paper entitled An introduction to ParaSail at the Ada Europe conference held in Valencia, Spain, in June 2010 and a paper by the same title at the Open Source Convention being held this week in Portland Oregon. Taft was also scheduled to present a tutorial on experimenting with ParaSail, for which there is now a prototype compiler.
According to the abstract of Taft's Oscon paper "ParaSail is a new language, but it borrows concepts from other programming languages, including the ML/OCaml/F# family, the Lisp/Scheme/Clojure family, the Algol/Pascal/Modula/Ada/Eiffel family, the C/C++/Java/C# family, and the region-based languages, especially Cyclone."
The language is described as being simpler than many others with only four basic concepts; modules, types, objects, and operations. It does not include pointers, exceptions and uses stack- and region-based data storage management rather than garbage collection. It supports implicit parallelism, making programmers have to work to achieve sequential operation, rather than the other way around. By default the program constructs run in parallel and it promotes a formal approach to software with compile-time checks for correctness with respect to the formal annotations.
In the Oscon paper Taft was set to describe the status of a prototype compiler and a ParaSail Virtual Machine.Progress in the development of the ParaSail language is the subject of a dedicated blog at http://parasail-programming-language.blogspot.com