Technical Background

Stream processing is a well-established research area that attempts a unified approach to such diverse subjects as distributed data processing and multicore processor architectures. Stream processing has applications in all major fields of computing. The particular focus of this workshop is on asynchronous stream processing, that combines data-flow synchronisation and clean approach to communication thanks to the regular nature of streams (as opposed to general message-passing).

Single assignment C is a pure functional programming language designed for numerical calculations and array processing. This feature distinguishes Single assignment C from other functional programming languages, such as Haskell, Miranda or ML. On the other hand, the syntax is as close to the syntax of the C language, so that the portability problem can be solved much more efficiently than in the array programming languages such as SISAL or APL.

S-Net is a specialized coordination language for building stream processing networks from individual components that can be implemented in virtually any programming language.

Microthreaded C, or μTC in short, is a concurrent language based on the C language which allows the programmer to code concurrency-oriented applications for targeting chip multiprocessors. μTC source code contains fine-grained concurrent control structures, where the concurrency is explicitly written via new keywords. This language is used as an interface for defining dynamic concurrency and as an intermediate language to capture concurrency from data parallel languages such as Single Assignment C or as the target for parallelizing compilers for sequential languages.