Realtime Signal Processing: Dataflow, Visual, and Functional Programming

Hideki John Reekie

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


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.