Fri Sep 11 14:20:53 CEST 2009

Staging Control Flow

It looks like all the things I'd like to do (making DSP/Control
prototyping and finding correct implementations two orthogonal
problems that do not involve duplication of effort) all has to do with
staging control flow : how high can you make the level of abstraction
while still guaranteeing that the eventual product is a bounded-time
combinatorial circuit / state machine.

Most of the DSP/Control applications have a very functional, parallel
data flow character.  What makes them difficult to implement is that
they need to pass through the von-neumann bottleneck.  There are a lot
of choices to be made turning 1. equations into directed functions and
2. sequencing operations (control) and managing intermediate results

A key paper is going to be this one[1].  Both from the perspective of
making it possible to express the original algorithm in a
straightforward way, and from the perspective of making all the design
decisions explicit.

Above I'm talking about moving from higher level languages down to
some ideal low-level machine architecture.  Mapping to _real_ hardware
is then another problem that might involve ``lobotomizing'' a compiler
and bringing decisions to the surface so they can take part in a
global optimization process.

[1] http://www.cas.mcmaster.ca/~carette/publications/scp_metamonads.pdf