> I was reading the recent "Steps towards the reinvention of
> programming" paper from VPRI today and noticed this snippet:
>
> "A subset of the "Joy" language is used for the internal
> representation of dataflow programs. Joy is
> a language based on Combinatory Logic, useful for program
> transformation because it has no free
> variables. We used a simplified Joy based on Linear Logic that
> requires the programmer to make
> explicit any duplication or deletion."
>
> This is is on page 26 talking about a Visual Dataflow Programming.
Joy programs have a straightforward translation to a sort of visual
dataflow representation. Due to the stack, the resulting diagrams are
quite clear (lines do not cross, data flows in "columns", there are no
cycles, etc). Here's everyone's favorite hypotenuse function where the
right-most column is the top element of the stack:
http://johnnowak.com/heap/hypot.png
What's nice about this visual representation is that it's very clear how
many elements each function consumes and produces. I've used it to explain
the functional stack-based paradigm to non-programmers with a fair deal of
success. I'll post some more interesting examples of visual translations
later -- I'm at work at the moment and it seems I only have that one image
uploaded.
- John