logo
sign uplog in
library

Esoteric Programming Language Theory

Explore programming languages that eschew practicality and challenge received ideas of what computation is and how languages are designed — from obfuscatory to minimalist to non-textual and beyond.

CurriculumAll CohortsFacilitators

Course Goals

An introduction to the strangest ideas in computation and an examination of programming languages as a means of self-expression

A programming language is a system; a way of thinking. It is an open-ended artwork. Programmers experience the language by writing code in it; and by writing code, they must understand the ideas of the language. It is participatory, collaborative, and performative. It upholds the promise of digital art as a "dematerialized" artistic practice, yet it need not be digital at all. This class will explore languages that challenge computational norms.

Structure

This will meet five times. Each session will have readings to discuss and an in-class group assignment.

Syllabus / Schedule

Week 1: The Amiga Years

An introduction to the formative esolangs: FALSE, INTERCAL (C-INTERCAL), brainfuck, and Befunge, along with a host of derivative languages building on their premises.

READINGS: Dijkstra's "The Humble Programmer," an except from Wendy Chun's "Programmed Visions"

Week 2: Lexing, Stack-based languages, Computational Idealism

In the legacy of FORTH and Befunge are the Stack-based languages, eschewing variable names to make non-textual coding possible. The languages Piet and Alice expand on Befunge's promise to create visual 2D languages.

Computational idealism: what ideas do esolangs actually challenge and how? Looking at the Fluxus event scores for inspiration, we will review esolangs that refuse computation.

READINGS: "Computational Idealism" by Beatrice Fazi

Week 3: Multicoding

Multicoding languages like Whitespace and Chef create tension between multiple readings of the same code, including interpretations by the human and machine interpreter. Looking to Oulipo for inspiration, we'll consider esolangs as constraint sets for "reverse generative art," where the human programmer, not the computer, generates variations based on rules.

READINGS: "Chef and the Aesthetics of Multicoding" by Daniel Temkin

Week 4: Code and Natural Language

We will discuss languages that bring the ambiguity of natural languages into the programming space, or challenge the dominance of English. This will be discussed in the context of natural language processing and natural language programming; previous attempts to address the complexity of the natural world in logical language.

READINGS: "FLOW-MATIC" by Mark Marino, Interview with John Corbett

Week 5: Dematerialization in art and language, impossible languages

Accidental Turing Completeness shows the absurdity of using automata theory to decide what is a language or not. We will look at languages that sit on the border of being a programming language or not. Impossible languages might be theoretically valid but impossible to code, or are built on rules that are self-contradictory. We will view these in the legacy of Conceptual Art and experimental poetry.

READING: "Null Code" by Nick Montfort

Artifacts

Everyone will leave with an idea for a new language!

Who Should Sign Up

Anyone curious about esolangs who wants to know more about what it's all about!

$210
6 weeksUp to 10 learners
Prerequisites

A comfort with coding and an open mind about what constitutes programming.

If you know JavaScript, some of the examples will be easier to work with. However, this is open to programmers of all levels.

Everyone should walk away with a somewhat developed concept for a language. We will not be implementing the language, but we will critique concept, design, and programmability for each idea.

Looks like there aren't any cohorts planned :(

Want emails on new cohorts?