SISAL: streams and iteration in a single-assignment language. Language reference manual, Version 1. 1
James R. McGraw, S. Skedzielewski, Stephen J. Allan, Dale H. Grit, R. R. Oldehoeft, John Glauert, I. Dobes, P. Hohensee · OSTI OAI (U.S. Department of Energy Office of Scientific and Technical Information) · 1983
Many multi-processor systems are currently under study by various groups around the world. The understanding and exploitation of parallelism in these systems is a primary goal of these studies. To facilitate the use and comparison of these systems, we proposed to define a common high-level language. The primary candidate was a single-assignment, applicative, dataflow language. In spite of remarkable diversity in hardware structures, all proposed systems could benefit from the functional semantics of such a language, and from other characteristics such as implicit parallelism, freedom from side effects, locality of effects, etc. A compiler would be produced having a single Front-end (language specific) parser and several Back-end (machine specific) code generators. An Intermediate Format is defined to serve as the interface between parser and code generators and interface between this system and other language systems. Benchmark programs were produced. SISAL is designed to express algorithms for execution on computers capable of highly concurrent operation. More specifically, the application area to be supported is numerical computation which strains the limits of high performance machines, and the primary targets for translation of SISAL programs are dataflow data-driven machines. Nevertheless, it has been our intention that the language not have idiosyncrasies reflecting themore » particular nature of the application area or target machine. It should be reasonable for SISAL to evolve into a general purpose language appropriate for writing programs to run on future general parallel computers.« less