ParaSail, a new language oriented toward parallelism and verification

For those who enjoy seeing sausages made, as opposed to just eating them, we have started a blog following the design of a new programming language called "ParaSail" for Parallel Specification and Implementation Language (not to be confused with SAIL or MAINSAIL, languages originating in the Stanford AI Lab):

ParaSail doesn't exist yet, but the blog talks about it in what my colleagues call the "software present tense," presuming some day it might. Postings are about once a week, though it varies a lot. As with most blogs, the most recent entry is presented first, but it is probably wise to read the first few entries as they give a bit of the background, before reading the more current entries.

ParaSail is intended for high-criticality software. The things that might make ParaSail of interest are its implicit parallelism, its integrated support for annotations (preconditions, postconditions, assertions, constraints, etc.), the fact that all modules are parameterized (i.e. are essentially generic templates), and that there are only two kinds of modules, interfaces and classes (which implement interfaces). A type is produced by instantiating an interface with appropriate parameters. The two kinds of modules are intended to cover the entire spectrum of grouping constructs, from packages/modules at the high end, to simple types at the low end.

ParaSail clearly inherits plenty of ideas from other languages, such as Modula-2/3, ML/CAML/OCAML, CLU, Eiffel, C++, Java, Ada, etc. The implicit parallelism and the integrated annotations were some of the reasons to justify starting from scratch, but also there is the pleasure of now and then starting with a clean sheet of paper.

In any case, it is inherently a work in progress, but comments and questions are certainly welcomed.

-Tucker Taft

Comment viewing options

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


ParaSail grammar and Google Group

Since this posting, we have made good progress on defining ParaSail, and we have what is close to a final grammar. We have also defined a ParaSail Virtual Machine which provides efficient support for very light-weight "pico" threads, and we have the beginnings of a compiler for the language. We also started a Google Group:

The latest grammar is posted on the Google group.

Draft of ParaSail Reference Manual now available

"For those who enjoy seeing sausages made, as opposed to just eating them ..."

Well now, if you prefer just to eat the ready-made sausages, there is a relatively complete draft of a ParaSail Reference Manual, now available on our Google Group:

A subset compiler is now working, and will be made available for general use in about a month.

Oh, and in case you like beer with your sausages, there is now an official ParaSail entry on the web site:

ParaSail in the press

A couple of articles about ParaSail came out in the past 24 hours:

Both of these seem to be in response to my appearing at OSCON '11 in Portland, OR yesterday to give a talk on ParaSail.

By the way, a prototype compiler for ParaSail is nearing its first release. It will be announced both on the ParaSail blog and on the ParaSail google group.

Alpha release of ParaSail compiler and VM now available

We just made the first (alpha) release of the ParaSail prototype compiler and an accompanying ParaSail virtual machine. Please visit the ParaSail Google Group for details on how to download it:

ParaSail : Less is More with Multicore

An article with the above title just appeared on

There is also a significantly more robust release (rev 2.6) of the ParaSail compiler and virtual machine now available. See the ParaSail Google Group for a link and an overview of its more recent enhancements: