SAC programming language

This article is about the functional language intended for numerical applications. For hardware description language, see SA-C (programming language).
SAC
Paradigm array, functional
Designed by Sven-Bodo Scholz, Clemens Grelck, et al.
First appeared 1994
Typing discipline static, strong
OS POSIX-compliant UNIX
License proprietary
Website http://www.sac-home.org
Influenced by
APL, SISAL, C

SAC (Single Assignment C) is a strict purely functional programming language whose design is focused on the needs of numerical applications. Emphasis is laid on efficient support for array processing. Efficiency concerns are essentially twofold. On the one hand, efficiency in program development is to be improved by the opportunity to specify array operations on a high level of abstraction. On the other hand, efficiency in program execution, i.e. the runtime performance of programs, in time and memory consumption, is still to be achieved by sophisticated compilation schemes. Only as far as the latter succeeds, the high-level style of specifications can actually be called useful.

To facilitate compiling to efficiently executable code, certain functional language features which are not considered essential for numerical applications, e.g. higher-order functions, polymorphism, or lazy evaluation, are not (yet) supported by SAC. These may be found in general-purpose functional languages, e.g. Haskell, Clean, Miranda, or ML.

To overcome the acceptance problems encountered by other functional or array based languages intended for numerical / array intensive applications, e.g. SISAL, NESL, Nial, APL, J, or K, particular regard is paid to ease the transition from a C / Fortran like programming environment to SAC.

In more detail, the basic language design goals of SAC are to:

This article is issued from Wikipedia - version of the 8/3/2016. The text is available under the Creative Commons Attribution/Share Alike but additional terms may apply for the media files.