Single Assignment C - Functional Programming Using Imperative Style

This paper proposes a new functional programming language called Sac (Single Assignment C) which tries to combine the best of two worlds: the efficiency and portability of C (or Fortran) and the concurrency deducable from the functional paradigm. The major objectives in the design of Sac comprise support for high performance concurrent scientific applications (number crunching), a module concept which allows for the integration of non-funtional components, and a syntax as close as possible to C.

[1]  Jack B. Dennis,et al.  VAL -- A Value-Oriented Algorithmic Language (Preliminary Reference Manual), , 1979 .

[2]  Lenore M. Restifo Mullin A Reduction Semantics for Array Expressions: The PSI Compiler , 1994 .

[3]  Philip Wadler,et al.  Comprehending monads , 1990, Mathematical Structures in Computer Science.

[4]  Claudia Schmittgen Spezifikation der Architektur und Realisierung eines Reduktionssystems mit konsequenter Unterstützung strukturierter Datenobjekte und n-stelliger definierter Funktionen , 1986 .

[5]  W. Hackbusch Iterative Lösung großer schwachbesetzter Gleichungssysteme , 1991 .

[6]  Philip Wadler,et al.  Deforestation: Transforming Programs to Eliminate Trees , 1990, Theor. Comput. Sci..

[7]  Philip Wadler,et al.  The essence of functional programming , 1992, POPL '92.

[8]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[9]  Philip Wadler,et al.  Linear Types can Change the World! , 1990, Programming Concepts and Methods.

[10]  所 真理雄 IVERSON言語(A Programming Language) , 1973 .

[11]  David C. Cann,et al.  SISAL: Initial MIMD Performance Results , 1986, CONPAR.

[12]  Zena M. Ariola,et al.  Order-of-evaluation analysis for destructive updates in strict functional languages with flat aggregates , 1993, FPCA '93.

[13]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[14]  L. Mullin A mathematics of arrays , 1988 .

[15]  Matthew Haines,et al.  Task Management, Virtual Shared Memory, and Multithreading in a Distributed Memory Implementation of Sisal , 1993, PARLE.

[16]  Marko C. J. D. van Eekelen,et al.  CLEAN: A language for functional graph writing , 1987, FPCA.

[17]  Marko C. J. D. van Eekelen,et al.  Guaranteeing Safe Destructive Updates Through a Type System with Uniqueness Information for Graphs , 1993, Dagstuhl Seminar on Graph Transformations in Computer Science.

[18]  David C. Cann,et al.  Retire Fortran? A debate rekindled , 1991, Proceedings of the 1991 ACM/IEEE Conference on Supercomputing (Supercomputing '91).

[19]  Marko C. J. D. van Eekelen,et al.  Functional Programming and Parallel Graph Rewriting , 1993 .