SAC - A functional array language for efficient multi-threaded execution

C. Grelck, S.-B. Scholz

    Research output: Contribution to journalArticlepeer-review

    87 Citations (Scopus)


    We give an in-depth introduction to the design of our functional array programming language SaC, the main aspects of its compilation into host machine code, and its parallelisation based on multi-threading. The language design of SaC aims at combining high-level, compositional array programming with fully automatic resource management for highly productive code development and maintenance. We outline the compilation process that maps SaC programs to computing machinery. Here, our focus is on optimisation techniques that aim at restructuring entire applications from nested compositions of general fine-grained operations into specialised coarse-grained operations. We present our implicit parallelisation technology for shared memory architectures based on multi-threading and discuss further optimisation opportunities on this level of code generation. Both optimisation and parallelisation rigorously exploit the absence of side-effects and the explicit data flow characteristic of a functional setting.
    Original languageEnglish
    Pages (from-to)383-427
    Number of pages45
    JournalInternational Journal of Parallel Programming
    Issue number4
    Publication statusPublished - 1 Aug 2006


    Dive into the research topics of 'SAC - A functional array language for efficient multi-threaded execution'. Together they form a unique fingerprint.

    Cite this