Abstract:
Multimedia streaming applications are - all at the same time - reactive,
highly parallel, array-oriented, and subject to physical timing
constraints. Furthermore, implementation constraints (speed, power,
latency...) enforce the use of parallel execution architectures, which goes
against the traditional compilation schemes of reactive programs. At the
same time, current representations of multimedia applications are far from
perfect, and provide no means to reason about application properties such
as concurrency, or timing and resource constraints. In this talk, we
investigate the similarities between system architects' "whiteboard
notation", and the reactive programming. We take a fresh look at the
concept of iterators, which provide a natural expression of repetitive
computations and concurrency. We show how they can be extended to provide
a representation of physical time, and how such enhanced iterators can be
used to trade off space (=concurrency) and time (=serialised execution) in
highly concurrent reactive programs without compromising the synchronous
view of the system. Finally, we show how the physical time information
captured by the iterators can be used to verify timing properties of
applications.