Interleaved 2D Notation for Concatenative Programming
Concatenative languages use implicit argument passing to provide a concise expression of programs comprising many composed transformation functions. However, they are sometimes regarded as "write-only" languages because understanding code requires mentally simulating the manipulations of the argument stack to identify where values are produced and consumed. All of this difficulty can be avoided with a notation that presents both the functions and their operands simultaneously, which can also ease editing by making available values and functions directly apparent. This paper presents a two-dimensional notation for these programs, comprising alternating rows of functions and operands with arguments and return values indicated by physical layout, and a tool for interactive live editing of programs in this notation.
Mon 5 DecDisplayed time zone: Auckland, Wellington change
10:30 - 12:00 | |||
10:30 15mTalk | Integration testing can be reliable and low-effort in a projectional IDE through snapshots - DEMOVirtual PAINT Bastian Kruck itemis SECURE // Hasso Plattner Institute | ||
10:45 15mTalk | Towards a Python 3 IDE for Teaching Creative Programming PAINT Tristan Bunn Victoria University of Wellington, Craig Anslow Victoria University of Wellington, Karsten Lundqvist | ||
11:00 15mTalk | Conjecturing on a Fundamental Theorem of Computation and its Implications for a New Theory in Programmer Experience Design PAINT Gary Miller University of Technology Sydney | ||
11:15 15mTalk | Domain-Specific Visual Language for Data Engineering Quality PAINT DOI Pre-print | ||
11:30 15mTalk | Blocks, Blocks, and More Blocks-Based Programming PAINT Benjamin Selwyn-Smith Oracle Labs, Craig Anslow Victoria University of Wellington, Michael Homer Victoria University of Wellington DOI | ||
11:45 15mTalk | Interleaved 2D Notation for Concatenative Programming PAINT Michael Homer Victoria University of Wellington DOI Pre-print |