Realtime Signal Processing: Dataflow, Visual, and Functional Programming

Hideki John Reekie
johnr@eecs.berkeley.edu

Submitted for the Degree of
Doctor of Philosophy at the
University of Technology at Sydney
in the
School of Electrical Engineering
September 1995


Abstract

This thesis presents and justifies a framework for programming real-time signal processing systems. The framework extends the existing ``block-diagram'' programming model; it has three components: a very high-level textual language, a visual language, and the dataflow process network model of computation.

The dataflow process network model, although widely-used, lacks a formal description, and I provide a semantics for it. The formal work leads into a new form of actor. Having established the semantics of dataflow processes, the functional language Haskell is layered above this model, providing powerful features---notably polymorphism, higher-order functions, and algebraic program transformation---absent in block-diagram systems. A visual equivalent notation for Haskell, Visual Haskell, ensures that this power does not exclude the ``intuitive'' appeal of visual interfaces; with some intelligent layout and suggestive icons, a Visual Haskell program can be made to look very like a block diagram program. Finally, the functional language is used to further extend dataflow process networks, by simulating timed and dynamically-varying networks.

The thesis thus draws together a number of previously-separate ideas: a reasonable expectation of efficient execution using established dataflow compilation technology; a powerful and high-level programming notation; and a block-diagram style interface.


Note: The following postscript files are the complete thesis. Sooner or later I'll have a chapter-by-chapter breakdown -- email me if interested. Note that any postscript formatted for US letter sized paper has some of the figure placement a bit off.