GULCII

Graphical Untyped Lambda Calculus Interactive Interpreter

Outline

GULCII is an untyped lambda calculus interpreter supporting interactive modification of a running program with graphical display of graph reduction. Lambda calculus is a minimal prototypical functional programming language developed by Alonzo Church in the 1930s. Church encoding uses folds to represent data as higher-order functions. Dana Scott's encoding composes algebraic data types as functions. Each has strengths and weaknesses.

The performance is a code recital, with the internal state of the interpreter visualized and sonified. Part 1 introduces Church encoding. Part 2 develops Scott encoding. An interlude takes in two non-terminating loops, each with their own intrinsic computational rhythm. Finally, Part 3 tests an equivalence between Church and Scott numerals.

Duration: ~12mins.

Video

The video example encoded to h264 High Profile Level 4.1 video + AAC audio in an MP4 container:
https://mathr.co.uk/gulcii/gulcii.mp4 (275MB)

Alternatively, the same content encoded in a WebM (VPX VP9 + Opus) container:
https://mathr.co.uk/gulcii/gulcii.webm (320MB)

Alternatively again, the same content as Ogg (Theora + Vorbis):
https://mathr.co.uk/gulcii/gulcii.ogv (359MB)

An embedded HTML5 player is below:

Biography

Claude Heiland-Allen is an artist from London UK interested in the complex emergent behaviour of simple systems, esoteric geometries, and mathematical aesthetics. Using computer software, and programming his own, has been a part of his practice for both sound and vision since the mid 1990s.

First exposed to functional programming in his first year at Oxford University at the turn of the century, in the form of Haskell (the language which his present-day GULCII is implemented in), he also spends a significant portion of his time writing code for art's sake in other languages like C and GLSL. Over the last decade he has performed and presented across Europe and beyond.

https://mathr.co.uk/

Support Statement

The performance involves functional programming in two ways. Firstly, the live recital of lambda calculus code into the interpreter for evaluation. Secondly, the interpreter itself is written in the functional programming language Haskell.

Regarding related work, Henning Thielemann's "live-sequencer" has a similar approach to code evaluation with names rebindable to terms during runtime. Sonification of data has a long history, including a mention by Douglas Adams in "Dirk Gently’s Holistic Detective Agency" (1987), while sonification of machines is perhaps more niche. I was inspired by Valentina Vuksic's "Sei Personaggi Part 2", in which "the magnetic fields of the memory modules (RAM) are being picked up acoustically while the experimental computer drama is moving on"; the Puredyne GNU/Linux startup sound, "cat /dev/mem > /dev/dsp"; and also Dave Griffith's "Betablocker" live-coding acid techno machine.

I have performed twice before in 2011 with an earlier version of GULCII, at the LiWoLi festival in Linz, and at nohup Bow Arts Open in London.

Technical Requirements

I will bring:

I will need:

I will not need internet access.


EOF