Wed Apr 28 13:41:31 EDT 2010
Dataflow notation: input and output?
The idea is that you don't want to duplicate array references inside
loops, so maybe it's better to use a load/store mechanism built into
the Function -> C printer.
data Let = Let String String [String] deriving Show
data Function = Function [String] [Let] [String]
Hmm.. another case of leaky abstractions.. What is necessary is a
well-defined translation from expression to dataflow form.
1. Given a (Haskell) function that maps a bunch of inputs (either
curried or as a tuple) to a bunch of outputs.
2. Given an abstract description of I/O ports.
3. Construct a C program that binds the computation to the ports.
This is a "LIFT" operation. Find a good representation that can guide
the rest of the implementation.