4 min read

Last week, the team at ParaSail, released a new version of the parallel programming language, ParaSail 8.0 (ParaSail stands for Parallel Specification and Implementation Language). This programming language is designed for supporting the development of inherently safe and parallel applications that can be mapped to multicore, heterogeneous, or distributed architectures. It provides support for both implicit and explicit parallelism. All the ParaSail expressions are defined to have parallel evaluation semantics.

What’s new in ParaSail 8.0

Debugger

This release comes with an interactive debugger that is automatically invoked when the interpreter encounters a precondition, assertion, or postcondition that fails at run-time.  This release comes with fully analyzed pre- and postconditions that are checked at run-time.

ParaSail LLVM-based Compiler

This release comes with a translator that translates PSVM (ParaSail virtual machine) instructions to LLVM (Low-Level Virtual Machine) instructions, and from there to object code.

Language design principles

  • According to the new design principles, the language should be easy to read. The readability should be emphasized over symbols and should be similar to existing languages, mathematics, or logic. As the programs are usually scanned backward, so ending indicators should be as informative as starting indicators for composite constructs. For example, “end loop” or “end class Stack” rather than simply “end” or “}”.
  • Parallelism should be built into the language so that resulting programs can easily take advantage of as many cores as are available on the host computer.
  • Features that are error-prone or that can complicate the testing or proof process should be eliminated.
  • Language-defined types and user-defined types should use the same syntax and have the same capabilities.
  • All the modules should be generic templates or equivalent.
  • The language should be safe and the compiler should detect all potential race conditions as well as all potential runtime errors.

Enhanced ParaSail syntax

In this release, the back-quote character followed by a parenthesized expression may now appear within a string literal. Also, the value of the expression is interpolated into the middle of the string, in place of the back-quoted expression.

Reserved words

A list of words is now reserved in ParaSail. Few words from this list are, abs, abstract, all, and, block, case, class, concurrent, const, continue, each, else, elsif, end, exit, extends.

Object reference

Now a reference to an existing object can be declared using the following syntax: object_reference_declaration ::= ’ref’ [ var_or_const ] identifier [’:’ type_specifier ] ’=>’ object_name ’;’

Deprecations

ParaSail has removed a few of the features for ensuring safe parallelism:

  • The global variables have been removed so that operations may only access variables passed as parameters.
  • The parameter aliasing has been eliminated so that two parameters passed to the same operation don’t refer to the same object if one of the parameters is updatable within the operation.
  • Pointers have been removed so that optional and expandable objects and generalized indexing can provide an approach that allows safe parallelization.
  • Run-time exception handling has been eliminated so that it is possible for strong compile-time checking of preconditions and establish support for parallel event-handling.
  • The global garbage-collected heap has been removed so that  automatic storage management is provided.
  • Explicit threads, lock/unlock, or signal/wait has been eliminated so that parallel activities are identified automatically by the compiler.

Many users are not much happy with this news. Some  are unhappy with the CSS and are asking the team to fix it. One of the comments on HackerNews reads, “Please fix the CSS: I have to scroll horizontally every single line. I stopped at the first one. Tested with Firefox and Chrome on Android. Firefox reader mode doesn’t work on that site.”

Another user commented, “I was able to read it on my Android device in Chrome by using landscape mode. Until I scrolled down a little. Then a huge static navigation popup appeared taking up 40% of the screen!” Few others think that Fortran is better than ParaSail as it lets developers to name the loops.

Some others are excited about pre/post conditions. One of the users commented, “Having built in pre/post conditions is pretty nice.

Read more about this news on ParaSail’s official website.

Read Next

Racket 7.2, a descendent of Scheme and Lisp, is now out!

Typescript 3.3 is finally released!

Announcing Julia v1.1 with better exception handling and other improvements