Elk is a parallel programming language for embedded applications targeting multi-core architectures in an energy-efficient manner. The structure of Elk programs not only gives the compiler useful information for parallelization but also allows programmer to write applications in a more natural way than C or C++. Elk is loosely based on StreamIt and also affected from David Black-Schaffer's PhD thesis. Currently, the Elk compiler and its run-time system only targets Stanford ELM architecture and, in fact, programming the ELM architecture was the main motivation of designing Elk. However, we strived to make Elk independent from the specifics of the ELM architecture. We envision that Elk can target any multi-core architecture with efficient core-to-core DMA support.
  • Hello World briefly shows how programming with Elk looks like.
  • Introduction explains the basic concepts of Elk language.
  • Language reference provides a detailed description of the Elk language, standard library, and run-time system.
  • Compiler Architecture describes how our compiler is implemented.
  • Bechmarks lists applications we use to evaluate Elk and its current target architecture, ELM.
Please contact jongsoo "at" cva DOT stanford "." edu for any question.