SAC programming language

SAC programming language

Infobox programming language
name = SAC

paradigm = array, functional
year = 1994
designer = Sven-Bodo Scholz, Clemens Grelck, et al
developer =
latest release version =
latest release date =
typing = static, strong
implementations =
dialects =
influenced_by = APL, SISAL, C
influenced =
operating_system = POSIX-compliant UNIX
website = http://www.sac-home.org

SAC (Single Assignment C) is a strict purely functional programming language which 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:

* provide a purely functional language with a syntax very similar to that of C in order to ease, for a large community of programmers, the transition from an imperative to a functional programming style;
* support multi-dimensional arrays as first class objects;
* allow the specification of shape- and dimension-invariant array operations;
* provide high-level array operations that liberate programming from tedious and error-prone specifications of starts, stops and strides for array traversals thereby improving code reusability and programming productivity, in general.
* incorporate a module system that allows for separate compilation, separate name spaces, and abstract data types, and, additionally, provides an interface to foreign languages in order to enable reuse of existing code;
* provide means for a smooth integration of states and state modifications into the functional paradigm based on uniqueness types;
* use the module system, the foreign language interface, and the integration of states in order to create a standard library which provides a functionality similar to that of the standard C libraries, e.g. powerful I/O facilities or mathematical functions;
* facilitate the compilation to host machine code which can be efficiently executed both in terms of time and space demand;
* facilitate the compilation for non-sequential program execution in multiprocessor environments.

External links

* [http://www.sac-home.org The SAC Home Page]


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Look at other dictionaries:

  • APL (programming language) — APL Paradigm(s) array, functional, structured, modular Appeared in 1964 Designed by Kenneth E. Iverson Developer Kenneth E. Iverson …   Wikipedia

  • SAC — or sac may refer to:Biology* Sac (biology), a bag like structure possibly containing fluid, in a plant, animal, or fungus.United States geography* Sac City, Iowa * Sac County, Iowa * Sac River, a river in southwest Missouri * Sacramento,… …   Wikipedia

  • Dataflow programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing …   Wikipedia

  • Array programming — In computer science, array programming languages (also known as vector or multidimensional languages) generalize operations on scalars to apply transparently to vectors, matrices, and higher dimensional arrays.Array programming primitives… …   Wikipedia

  • Montgomery Blair High School — Motto Crescens Scientia (To Expand Knowledge) Established 1925 (opened 1935) Type Public (Magnet) Secondary …   Wikipedia

  • ACT-R — (pronounced act ARE : Adaptive Control of Thought Rational) is a cognitive architecture mainly developed by John Robert Anderson at Carnegie Mellon University. Like any cognitive architecture, ACT R aims to define the basic and irreducible… …   Wikipedia

  • Didactics of Informatics — Didactics of computer science (didactics of informatics) is a sub field of computer science (informatics). Since 1960 experts of higher education, the pioneers of didactics of computer science, are developing guidelines and curricula… …   Wikipedia

  • Superior Art Creations — Infobox computer underground group name = Superior Art Creations (SAC) caption = origin = country =Germany status = active years active = 1994 ndash;present category = artscene warez founders = Roy (aka Carsten Cumbrowski) and Hetero (aka… …   Wikipedia

  • List of computer science conferences — This is a list of academic conferences in computer science. Most of these academic conferences are annual or bi annual events.The order with which the conferences are listed in their respective fields corresponds to a rough and non authoritative… …   Wikipedia

  • Microcomputer — The Commodore 64 was one of the most popular microcomputers of its era, and is the best selling model of home computer of all time.[1] computer with a microprocessor as its central processing unit …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”