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
Some pointers from John Nowak:
Backus. De Moor, Bird, Meijer, Patterson, Tatsuya,
Iverson, Meertens, Gibbons.