Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
SISAL
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{About||the fiber|Sisal|the town|Sisal, Yucatán|the company|Sisal (company)}} {{Multiple issues| {{More footnotes|date=April 2018}} {{More citations needed|date=April 2018}} }} {{Infobox programming language | name = SISAL | paradigm = [[Functional programming|functional]], [[Dataflow programming|dataflow]] | designer = James McGraw | developer = James McGraw et al., at [[University of Manchester]], [[Lawrence Livermore National Laboratory|LLNL]], [[Colorado State University]], [[Digital Equipment Corporation|DEC]] | released = {{Start date and age|1983}} | typing = [[Static typing|static]], [[Strong and weak typing|strong]] | implementations = osc, sisalc | influenced by = VAL, [[Pascal (programming language)|Pascal]], [[C (programming language)|C]], [[Fortran]] | influenced = [[Haskell]],{{citation needed|date=April 2016}} [[SAC programming language|SAC]] }} '''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. == 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 [[Compiler|compiled]] [[implementation]] was made in 1986. Its performance is superior to [[C (programming language)|C]] and rivals [[Fortran]], according to some sources,<ref>Retire Fortran?: a debate rekindled, David Cann, August 1992, Communications of the ACM, Volume 35, Issue 8</ref> combined with efficient and automatic parallelization. SISAL's name came from [[grep]]ping "sal" for "Single Assignment Language" from the Unix dictionary /usr/dict/words. Versions exist for the [[Cray]] [[Cray X-MP|X-MP]], [[Cray Y-MP|Y-MP]], [[Cray-2|2]]; [[Sequent Computer Systems|Sequent]], [[Encore Computer|Encore Alliant]], DEC [[VAX|DEC VAX-11/784]], [[dataflow]] architectures, KSR1, [[Inmos]] [[Transputer]]s, and [[systolic array]]s. == Architecture== The requirements for a [[Granularity#Computing|fine-grain parallelism]] language are better met with a [[dataflow programming]] language than a [[system programming language]].{{citation needed|date=December 2016}} 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.<ref name="wpi2010"/> == 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.<ref name="wpi2010">[http://www.wpi.edu/Pubs/E-project/Available/E-project-031210-134520/unrestricted/FinalReport.pdf Fine-Grain Parallelism: An Investigative Study into the merits of Graphical Programming and a Fine-grain Execution Mode]</ref> In 2018 SISAL was modernized with indent-based syntax, first-class functions, lambdas, closures and lazy semantics within a project SISAL-IS.<ref name="sisalis">[https://github.com/parsifal-47/sisal-is Modernized Sisal Interpreter (MSInt)]</ref> == References == ===Notes=== {{Reflist}} ===Bibliography=== {{Refbegin}} * [https://web.archive.org/web/20070920003407/http://hopl.murdoch.edu.au/showlanguage.prx?exp=876 VAL Overview] * [http://www.cmp.uea.ac.uk/~jrwg/Sisal/00.Contents.html Sisal Language Tutorial] {{refend}} == External links == * [http://sourceforge.net/projects/sisal SISAL Parallel Programming] SourceForge.net project page [[Category:Concurrent programming languages]] [[Category:Functional languages]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:About
(
edit
)
Template:Citation needed
(
edit
)
Template:Infobox programming language
(
edit
)
Template:Multiple issues
(
edit
)
Template:Refbegin
(
edit
)
Template:Refend
(
edit
)
Template:Reflist
(
edit
)