# Interesting Joy usage

## Chris Double — 2008-03-29 12:31:35

    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.

    Link to paper here:

    http://www.vpri.org/pdf/steps_TR-2007-008.pdf

    Chris.

    --

    http://www.bluishcoder.co.nz

## john@johnnowak.com — 2008-03-29 16:07:23

    > 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