ParaSail (programming language)

ParaSail
Logo for ParaSail Programming Language
Paradigmcompiled, concurrent, imperative, structured, object-oriented
Designed byS. Tucker Taft
DeveloperAdaCore
First appeared2009; 15 years ago (2009)
Stable release
9.3 / 6 June 2021; 3 years ago (2021-06-06)
Typing disciplinestrong, static
Platformx86
OSLinux, macOS, Windows
LicenseGPL v3
Filename extensions.psi, .psl
Websiteparasail-lang.org
Major implementations
psli, pslc
Influenced by
Modula, Ada, Pascal, ML
Influenced
Nim[1]

Parallel Specification and Implementation Language (ParaSail) is an object-oriented parallel programming language. Its design and ongoing implementation is described in a blog[2] and on its official website.[3]

ParaSail uses a pointer-free programming model, where objects can grow and shrink, and value semantics are used for assignment. It has no global garbage collected heap. Instead, region-based memory management is used throughout. Types can be recursive, so long as the recursive components are declared optional. There are no global variables, no parameter aliasing, and all subexpressions of an expression can be evaluated in parallel. Assertions, preconditions, postconditions, class invariants, etc., are part of the standard syntax, using a Hoare-like notation. Any possible race conditions are detected at compile time.

Initial design of ParaSail began in September 2009, by S. Tucker Taft.

Both an interpreter using the ParaSail virtual machine, and an LLVM-based ParaSail compiler are available. Work stealing is used for scheduling ParaSail's light-weight threads. The latest version can be downloaded from the ParaSail website.[3]

  1. ^ Rumpf, Andreas (19 October 2017). "Nim without GC". Araq's Musings. Retrieved 1 September 2020.
  2. ^ ParaSail blog
  3. ^ a b ParaSail website