1. 16

A long time ago, even before the internet, a brave group of computer scientists set off to change the world. Working at Lawrence Livermore National Laboratory, they designed a revolutionary new language that exploited fully, implicit parallelism. Using dataflow techniques mapped onto a conventional syntax they created a language that was both usable and amazingly efficient. I had the amazing good fortune to be associated with that group for 8 years.

In the early 1990’s we were so bold as to think that we should replace FORTRAN as a mainstream scientific computational language (See Dave Cann’s excellent article Retire FORTRAN, a debate rekindled! ) We made huge strides in building efficient multitasking compilers that efficiently utilized the SMP architectures of the day. Alas, as parallel machines went to purely distrubuted memories based on message passing, our technology couldn’t keep up. The group supporting Sisal withered and died leaving small but fervent outposts of believers scattered around the world.

Today, SMP architectures dominate the high performance marketplace. Hell, you can even get a multiprocessor Macintosh for your desktop! We were proved right in the end and the time is ripe for a reintroduction of Sisal to the waiting world. This initial release is just a cleaned up version of where the code was frozen in 1996. I have polished the fenders a bit to make it ready for the next phase… a moderately reworked frontend. I will try to work on Sisal one night a week until hell freezes over to get this done.

  1.  

    1. 1

      Did Sisal have a way to translate continue/next, break and similar things to fold or filter? Say we have something like this:

      for n in numbers:
          if n % 2 == 0:
              continue
          yield n
      

      This is equivalent to: [n for n in numbers if n % 2 != 0]

      But does Sisal allow these “imperative” filters?