SISAL: Difference between revisions

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
imported>WillNess
Architecture: Fixed a typo
 
imported>Bender the Bot
m External links: HTTP to HTTPS for SourceForge
 
Line 18: Line 18:
'''SISAL''' ('''Streams and Iteration in a Single Assignment Language''') is a [[General-purpose programming language|general-purpose]] [[single assignment]] [[Functional programming|functional]] [[programming language]] with [[strict semantics]], [[implicit parallelism]], and efficient [[Array (data structure)|array]] handling.
'''SISAL''' ('''Streams and Iteration in a Single Assignment Language''') is a [[General-purpose programming language|general-purpose]] [[single assignment]] [[Functional programming|functional]] [[programming language]] with [[strict semantics]], [[implicit parallelism]], and efficient [[Array (data structure)|array]] handling.


SISAL outputs a [[dataflow]] graph in Intermediary Form 1 (IF1). It was derived from the Value-oriented Algorithmic Language (VAL), designed by [[Jack Dennis]], and adds [[recursion]] and finite streams. It has a [[Pascal (programming language)|Pascal]]-like syntax and was designed to be a common [[high-level programming language]] for numerical programs on a variety of [[Multiprocessing|multiprocessor]]s.
SISAL outputs a [[dataflow]] graph in Intermediary Form 1 (IF1). It was derived from the Value-oriented Algorithmic Language (VAL), designed by [[Jack Dennis]], and adds [[recursion]] and finite streams. It has a [[Pascal (programming language)|Pascal]]-like syntax and was designed to be a common [[high-level programming language]] for numerical programs on a variety of [[Multiprocessing|multiprocessor]]s.<ref name="foldoc">{{foldoc|SISAL}}</ref>


== History ==
== History ==
Line 49: Line 49:


== External links ==
== External links ==
* [http://sourceforge.net/projects/sisal SISAL Parallel Programming] SourceForge.net project page
* [https://sourceforge.net/projects/sisal SISAL Parallel Programming] SourceForge.net project page


[[Category:Concurrent programming languages]]
[[Category:Concurrent programming languages]]
[[Category:Functional languages]]
[[Category:Functional languages]]

Latest revision as of 03:12, 11 August 2025

Script error: No such module "about". Template:Multiple issues

Script error: No such module "Infobox".Template:Template otherScript error: No such module "Check for unknown parameters". SISAL (Streams and Iteration in a Single Assignment Language) is a general-purpose single assignment functional programming language with strict semantics, implicit parallelism, and efficient array handling.

SISAL outputs a dataflow graph in Intermediary Form 1 (IF1). It was derived from the Value-oriented Algorithmic Language (VAL), designed by Jack Dennis, and adds recursion and finite streams. It has a Pascal-like syntax and was designed to be a common high-level programming language for numerical programs on a variety of multiprocessors.[1]

History

SISAL was defined in 1983 by James McGraw et al., at the University of Manchester, Lawrence Livermore National Laboratory (LLNL), Colorado State University and Digital Equipment Corporation (DEC). It was revised in 1985, and the first compiled implementation was made in 1986. Its performance is superior to C and rivals Fortran, according to some sources,[2] combined with efficient and automatic parallelization.

SISAL's name came from grepping "sal" for "Single Assignment Language" from the Unix dictionary /usr/dict/words.

Versions exist for the Cray X-MP, Y-MP, 2; Sequent, Encore Alliant, DEC DEC VAX-11/784, dataflow architectures, KSR1, Inmos Transputers, and systolic arrays.

Architecture

The requirements for a fine-grain parallelism language are better met with a dataflow programming language than a system programming language.Script error: No such module "Unsubst".

SISAL is more than just a dataflow and fine-grain language. It is a set of tools that convert a textual human readable dataflow language into a graph format (named IF1 - Intermediary Form 1). Part of the SISAL project also involved converting this graph format into runnable C code.[3]

SISAL Renaissance Era

In 2010 SISAL saw a brief resurgence when a group of undergraduates at Worcester Polytechnic Institute investigated implementing a fine-grain parallelism backend for the SISAL language.[3]

In 2018 SISAL was modernized with indent-based syntax, first-class functions, lambdas, closures and lazy semantics within a project SISAL-IS.[4]

References

Notes

Template:Reflist

Bibliography

Template:Refbegin

Template:Refend

External links

  1. Template:Foldoc
  2. Retire Fortran?: a debate rekindled, David Cann, August 1992, Communications of the ACM, Volume 35, Issue 8
  3. a b Fine-Grain Parallelism: An Investigative Study into the merits of Graphical Programming and a Fine-grain Execution Mode
  4. Modernized Sisal Interpreter (MSInt)