Sun Sep 20 16:26:37 CEST 2009

From Stack to Point-Free

I've been thinking a bit more about DSP-style ``parallel pipelined
RISC (VLIW/VECTOR)'' programming vs. serial stack-machine approach.
Both have their uses.

The stack machine approach seems to work best for non-numeric
sequencing style code: very simple recursive processors performing
tasks that can be handled by dedicated state machines.  Essentially:
stack machines have cheap branching.

On the other end of the spectrum there is the DSP mainstream: VLIW +
VECTOR (i.e. TI C6000).  Here the data-oriented approach seems to work
best.  Control structures are very expensive, but for sufficiently
streamlined data, the architecture packs a lot of power.

( Granted, Chuck Moore's view on DSP (many simple stack machine cores)
  does have its appeal as it combines a bit of both worlds.  I'd like
  to give it a try, but current economic inertia doesn't seem to
  favour the idea much... )

I'd like to steer Staapl a bit into the direction of the DSP world.
Mostly because I'm convinced that the concatenative / compostional /
point-free style is a good abstraction for building high-level DSP
specifications, and Staapls macro system, together with some to-be
constructed type system, could serve as the vehicle for developping
such applications.

Some pointers from John Nowak:

Backus[1]. De Moor[2], Bird[3], Meijer[4], Patterson[5], Tatsuya[6],
Iverson[7], Meertens[8], Gibbons[9].

[1] http://nl.wikipedia.org/wiki/John_Backus
[2] http://www.comlab.ox.ac.uk/people/oege.demoor/
[3] http://en.wikipedia.org/wiki/Richard_Bird_%28computer_scientist%29
[4] http://lambda-the-ultimate.org/user/776
[5] http://www.soi.city.ac.uk/~ross/
[7] http://en.wikipedia.org/wiki/Kenneth_E._Iverson
[8] http://en.wikipedia.org/wiki/Lambert_Meertens