<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
      <title>2026 Week 1: Critical in Critical Code Studies — CCS Working Group</title>
      <link>https://wg.criticalcodestudies.com/index.php?p=/</link>
      <pubDate>Sun, 12 Apr 2026 07:18:12 +0000</pubDate>
          <description>2026 Week 1: Critical in Critical Code Studies — CCS Working Group</description>
    <language>en</language>
    <atom:link href="https://wg.criticalcodestudies.com/index.php?p=/categories/2026-week-1/feed.rss" rel="self" type="application/rss+xml"/>
    <item>
        <title>Book: Forty-Four Esolangs by Daniel Temkin</title>
        <link>https://wg.criticalcodestudies.com/index.php?p=/discussion/189/book-forty-four-esolangs-by-daniel-temkin</link>
        <pubDate>Sun, 11 Jan 2026 09:21:46 +0000</pubDate>
        <category>2026 Week 1: Critical in Critical Code Studies</category>
        <dc:creator>jeremydouglass</dc:creator>
        <guid isPermaLink="false">189@/index.php?p=/discussions</guid>
        <description><![CDATA[<p>Daniel Temkin's <em><a rel="nofollow" href="https://mitpress.mit.edu/9780262553087/forty-four-esolangs/">Forty-Four Esolangs: The Art of Esoteric Code</a></em> is our featured book discussion for this week.</p>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/ws/r1fbjscgcrl8.png" alt="" title="" /><br />
<em>Strands forming a glyph as part of a short program computing the Fibonacci sequence in the esolang</em> Rivulet.<br />
<br /><br />
From the MIT Press:</p>

<blockquote>A riveting collection of one artist’s many approaches to esolangs—esoteric programming languages—showcasing the form’s limitless artistic potential.

In Forty-Four Esolangs, Daniel Temkin challenges conventional definitions of language, code, and computer, showing the potential of esolangs—or esoteric programming languages—as pure idea art. The languages in this volume ask programmers to write code in the form of prayer to the Greek gods, or as a pattern of empty folders, or to type code in tandem with another programmer, each with one hand on the keyboard, their rhythm and synchrony signifying computer action. Temkin includes languages written over the past fifteen years, along with some designed especially for this book. Other pieces are left as prompts for the reader to simply consider or perhaps to implement on their own.

Esolangs are a collaborative form. Each language is a complete world of thought, where esoprogrammers build on the work of esolangers to make new discoveries. The language Velato, for instance, asks programmers to write music as code; while the language creates constraints for the programmer, each programmer brings their own coding and musical sensibility to the language. Other pieces are pure poetic suggestion in the legacy of Yoko Ono’s event scores. These ask the programmer to, for example, follow the paths of the clouds over a single day and construct a language in response that uses those movements as code. Just as Ben Vautier claimed everything is art, this book blurs the lines between computation and everything else.</blockquote>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/th/8r6eh85xak1z.png" alt="" title="" /><br />
<em>Homonymic symbols encoding a multivalent statement with multiple GOTO interpretations in the esolang</em> Valence.<br />
<br /><br />
<em>Forty-Four Esolangs</em> is a part of the Hardcopy series at the MIT Press edited by Nick Montfort and Mary Flanagan. From their series forward:</p>

<blockquote>Hardcopy features computational artworks that manifest themselves in print. Works in the series engage with and arise from computation in culturally important ways. The series is a space for (among other things) books that are computer-generated by artists and poets, whether they include text, image or both; print works based around glitched media formats; ones that feature type-in programs with sample output; and ones arising from online interaction with automated agents.</blockquote>

<hr />

<p><br /><br />
For this Critical Code Studies Working Group book discussion of <em>Forty-Four Esolangs</em> we may begin with a framing and a common starting point of a few selected passages (provided below). To situate the provided selections it is important to understand the structure of Temkin's book, which draws on Sol LeWitt's distinction between "concept" and "idea" in conceptual art and adapts it to code art practice. Accordingly <em>Forty-Four Esolangs</em> enumerates the presentation of 44 conceptual "Prompts" in the first half of the book (Language 0, Language 1, Language 2...). The book then presents variously-implemented "Realizations" in the book's second half, each named ("Velato (2009)", "Olympus (2022)", "FatFinger (2017)"...) and each corresponding to a numbered Prompt.</p>

<p>This week in our Working Group is organized around the topic "Where is the Critical in Critical Code Studies?" -- and it makes particular sense at this moment for us to unpack the <em>critical</em> heft behind Temkin's works of "pure idea art" in a conceptual art tradition. <em>Forty-Four Esolangs</em> features an excellent forward by Allison Parrish, who frames Temkin's code art practice as aesthetic-political as she draws a line departing from Peter Naur's notion of the programmer's abstract “Theory Building View” through to Lillian-Yvonne Bertram's "Of course, programming is political. How could it not be? No one is doing anything in coding without someone else.” Parish arrives here by way of a key passage from the conclusion of Amy J. Ko's "<a rel="nofollow" href="https://faculty.washington.edu/ajko/papers/Ko2016WhatAreProgrammingLanguages.pdf">What is a Programming Language, Really?</a>" (2016):</p>

<blockquote>"[W]e understand what [programming languages (PL)] are formally and we increasingly understand what they are as tools. Other agendas, particularly those that probe the human, social, societal, and ethical dimensions of PL, are hardly explored at all. As researchers, we should be concerned with every view, and see each as an opportunity to understand holistically how PL can shape our world"</blockquote>

<p>Selections from <em>Forty-Four Esolangs</em> are provided here as shared starting points for discussion. The short excerpts include the author's Preface, the manifesto-like "Sentences on Code Art", three conceptual Prompts (4, 40, and 41), and three corresponding Realizations ("Cloud Computing", "Rivulet", "Valence"). The selections are embedded and attached below along with linked resources, including the source code for two realizations, corresponding online interactive editor for each, and some introductory tutorials / documentation. Consider trying out the examples given in the reading selections (or exploring your own creations).</p>

<p>Temkin's work may illuminate (and be illuminated by) LeWitt's conceptual art, Montfort and Flanagan's print computational artworks, Naur's "Theory Building View," Bertam's "programming is political," or Ko's "human, social, societal, and ethical dimensions." However, in the end, we may return to the bare question: What <em>are</em> Temkin's esolangs? What is the art of esoteric code? Thank you for joining this discussion.</p>

<p>-- Jeremy Douglass, CCSWG 2026<br />
<br /><br />
<strong>For Discussion:</strong></p>

<ul>
<li>What is the relationship of esoteric code to code in culture?</li>
<li>How does esoteric code relate to conceptual art?</li>
<li>What do these programming languages look like through the lens of software engineering and computer science?</li>
<li>What do they look like from the point of view of the history of computation?</li>
<li>How is <em>Forty-Four Esolangs</em> related to the concept of "print computational artwork"?</li>
<li>How do we see Bertram's "programming is political" or Ko's "human, social, societal, and ethical dimensions" in this work?</li>
</ul>

<p><strong>Resources:</strong></p>

<ul>
<li>Realization 40 (Rivulet) [<a rel="nofollow" href="https://github.com/rottytooth/Rivulet">source code</a>] [<a rel="nofollow" href="https://observablehq.com/@jwolondon/rivulet-editor">online editor</a>] [<a rel="nofollow" href="https://observablehq.com/@jwolondon/rivulet-intro">introduction</a>]</li>
<li>Realization 41 (Valence) [<a rel="nofollow" href="https://github.com/rottytooth/Valence">source code</a>] [<a rel="nofollow" href="https://danieltemkin.com/Esolangs/Valence">online editor</a>] [<a rel="nofollow" href="https://github.com/rottytooth/Valence/blob/main/readme.md">introduction</a>]</li>
<li>Chinchilla, Chris. "Esoteric Languages Challenge Coders to Think Way Outside the Box: Daniel Temkin’s new book dives into the coding exercise/art form." IEEE Spectrum, 04 Sep 2025. [<a rel="nofollow" href="https://spectrum.ieee.org/esoteric-programming-languages-daniel-temkin">Feature author interview</a>]</li>
</ul>

<p><em>Forty-Four Esolangs--excerpts (Preface, Sentences on Code Art, Prompts 4,40,41, Realizations 4, 40, 41):</em><br />
</p>
]]>
        </description>
    </item>
    <item>
        <title>Week 1: Where is the Critical in Critical Code Studies?</title>
        <link>https://wg.criticalcodestudies.com/index.php?p=/discussion/195/week-1-where-is-the-critical-in-critical-code-studies</link>
        <pubDate>Mon, 12 Jan 2026 05:42:33 +0000</pubDate>
        <category>2026 Week 1: Critical in Critical Code Studies</category>
        <dc:creator>markcmarino</dc:creator>
        <guid isPermaLink="false">195@/index.php?p=/discussions</guid>
        <description><![CDATA[<p><span data-youtube="youtube-MtAnUjg2VNE?autoplay=1"><a rel="nofollow" href="https://www.youtube.com/watch?v=MtAnUjg2VNE"><img src="https://img.youtube.com/vi/MtAnUjg2VNE/0.jpg" width="640" height="385" border="0" alt="image" /></a></span></p>

<p><strong>For Discussion:</strong><br />
Where is the critical in critical code studies?<br />
What do you feel is the most productive marriage of critical and technical inquiry?<br />
What code readings (articles or writings or other) marry these ideals effectively? <br />
What are examples of discussions of code objects where one side or the other of this spectrum has dominated or is more needed?<br />
What are your concerns in this debate?</p>

<p>Read the (unedited)<a rel="nofollow" href="https://docs.google.com/document/d/1f3DgcquvfABg-862UJi_bgpQ7uwchxWnmywJaeWvVdk/edit?usp=sharing" title="transcript of our video introduction here"> transcript of our video introduction here</a>.</p>
]]>
        </description>
    </item>
    <item>
        <title>Week 2: AI Sprint: Vibe Coding Strachey's Love Letter Generator (1952)</title>
        <link>https://wg.criticalcodestudies.com/index.php?p=/discussion/207/week-2-ai-sprint-vibe-coding-stracheys-love-letter-generator-1952</link>
        <pubDate>Tue, 20 Jan 2026 10:16:41 +0000</pubDate>
        <category>2026 Week 1: Critical in Critical Code Studies</category>
        <dc:creator>davidmberry</dc:creator>
        <guid isPermaLink="false">207@/index.php?p=/discussions</guid>
        <description><![CDATA[<h1>The Exercise</h1>

<p>This week we're running a collaborative exercise to try vibe coding for yourself and reflect on the experience. Rather than an abstract prompt, we're working with a specific historical object which is <a rel="nofollow" href="https://en.wikipedia.org/wiki/Strachey_love_letter_algorithm" title="Christopher Strachey's Love Letter Generator">Christopher Strachey's Love Letter Generator</a> from 1952.</p>

<p><a rel="nofollow" href="https://en.wikipedia.org/wiki/Christopher_Strachey" title="Christopher Strachey">Christopher Strachey</a> (1916-1975) stands as one of the key figures whose work we now recognise as a foundational transitions in computational culture. The Stracheys belonged to the <a rel="nofollow" href="https://en.wikipedia.org/wiki/Bloomsbury_Group" title="Bloomsbury Group">Bloomsbury Group</a>, the group of intellectuals including Virginia Woolf, John Maynard Keynes and Strachey's uncle Lytton Strachey, which makes his later computational work all the more interesting for crossing of cultural and technical domains.</p>

<p>He was a pioneer in programming language design and denotational semantics, Strachey programmed the <a rel="nofollow" href="https://www.bl.uk/stories/blogs/posts/restoring-the-first-recording-of-computer-music" title="first computer music">first computer music</a> in England in 1951, rendering the National Anthem on Manchester's Ferranti Mark 1, followed by recordings of "Baa, Baa, Black Sheep" and "In the Mood" <a rel="nofollow" href="https://soundcloud.com/the-british-library/first-recording-of-computer-music-1951-copeland-long-restoration" title="captured by the BBC">captured by the BBC</a>. More significant still, in 1952 he created a love letter generator for the same machine that represents the first known instance of computer-generated literature, a development that prefigures contemporary anxieties about LLMs whilst also gesturing towards the literary experimentalism of his milieu.</p>

<p>His later development of <a rel="nofollow" href="https://en.wikipedia.org/wiki/Time-sharing" title="time-sharing">time-sharing</a> concepts in 1959 points to the infrastructural transformations that enable the distributed computational environments we now inhabit. What makes Strachey's life so fascinating is how it demonstrates the convergence of cultural, technical and literary spheres, collapsing distinctions that are difficult to cross over, even today.</p>

<p>The (literary) significance of the Love Letter Generator extends beyond its curiosity as an early version of computational culture. It seems to be a parody of one of literature's most codified genres, the love letter. It contains conventional declarations, expected rhythms of longing and affirmation, etc.. Strachey's algorithm (which sadly we seem to have lost) might be what the Russian Formalists would call a device of <a rel="nofollow" href="https://en.wikipedia.org/wiki/Amatory_fiction" title="amatory writing">amatory writing</a>, revealing the "templates" that structure even our most intimate texts. The generator's outputs read either as both sincere and satirical, occupy the same uncomfortable space as <a rel="nofollow" href="https://en.wikipedia.org/wiki/Oulipo" title="Oulipian constraint-based writing">Oulipian constraint-based writing</a> or <a rel="nofollow" href="https://en.wikipedia.org/wiki/Cut-up_technique" title="Burroughs's cut-ups">Burroughs's cut-ups</a>, which would emerge a decade later. The fact that Strachey drew his vocabulary from Roget's <em>Thesaurus</em>, shows fascinating connections to the idea of a systematisation of language. Perhaps this deepens the irony as the love letter, supposedly a singularity of expression, is revealed as a combinatorial operation on an inherited lexical dictionary. This might make us think of the generator not just as an engineering experiment but as a work of <em>literary theory made executable</em>, a machine for demonstrating that romantic discourse, like all discourse, is structured by rules that precede and exceed the speaking subject.</p>

<p>Your task: use an LLM to create your own version of the Love Letter Generator, then document what happens.</p>

<p>You can use our <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/205/critical-code-studies-workbench" title="new CCS workbench">new CCS workbench</a> or any other LLM to help co-create it</p>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/uw/spt7dv8ob37i.png" alt="" title="" /></p>

<h1>Why Strachey?</h1>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/mo/wp5htb9fd48l.png" alt="" title="" /></p>

<p>The Love Letter Generator is arguably the perfect historical antecedent for vibe coding. Written for the <a rel="nofollow" href="https://en.wikipedia.org/wiki/Manchester_Mark_1" title="Manchester Mark 1">Manchester Mark 1</a>, Strachey's algorithm generates "love letters" by filling sentence templates with words randomly selected from lists compiled from Roget's Thesaurus. The original code is lost, but the algorithm has been reimplemented many times.</p>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/ep/f11grs1xr7u2.png" alt="" title="" /></p>

<p>A sample output:</p>

<p>DARLING SWEETHEART</p>

<p>YOU ARE MY AVID FELLOW FEELING. MY AFFECTION CURIOUSLY CLINGS TO YOUR PASSIONATE WISH. MY LIKING YEARNS FOR YOUR HEART. YOU ARE MY WISTFUL SYMPATHY: MY TENDER LIKING.</p>

<p>YOURS BEAUTIFULLY</p>

<p>M. U. C.</p>

<h1>This raises the follwing questions:</h1>

<ol>
<li><p>The letters are grammatically correct, emotionally legible, yet produced without actual understanding. Strachey noted his interest in how "a rather simple trick" could produce "an illusion that the computer is thinking", anticipating both the ELIZA effect and what I'm calling elsewhere the "<a rel="nofollow" href="http://stunlaw.blogspot.com/2025/11/ai-sprints.html" title="competence effect">competence effect</a>," but for text generation rather than dialogue.</p></li>
<li><p>Who wrote these letters? Strachey? The machine? Roget (whose Thesaurus supplied the vocabulary)? This question of distributed authorship maps directly onto vibe coding's triadic hermeneutic structure.</p></li>
<li><p>Both Strachey and Turing were gay men working during the 1952 prosecutions. Jacob Gaboury reads the generator as "pure camp", as an exultant love of the artificial. The gender-neutral, anonymous letters can be read as a quiet act of resistance.</p></li>
<li><p>There was a Code Critique thread on the Strachey Love Letter Algorithm at the <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/152/code-critique-strachey-love-letter-algorithm-thread" title="2024 CCSWG, proposed by Titaÿna Kauffmann">2024 CCSWG, proposed by Titaÿna Kauffmann</a>. Key questions included: How is reimplementation a reinterpretation? What does it tell us about the legacy and "reborn-digital" heritage of Strachey? How can we "queer" this narrative through CCS? This questions remain (even more) relevant to vibe coding.</p></li>
</ol>

<h1>The Sprint Structure</h1>

<h2>Days 1-2: Vibe code your generator</h2>

<p>Choose an LLM (Claude, ChatGPT, Gemini, Copilot, <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/205/critical-code-studies-workbench" title="the CCS workbench">the CCS workbench</a> or whatever you have access to) and prompt it to create a Love Letter Generator. You might, for example,</p>

<ul>
<li>Ask it to recreate Strachey's original algorithm</li>
<li>Ask for a "love letter generator" without mentioning Strachey</li>
<li>Share Montfort's reimplementation and ask for modifications</li>
<li>Try different approaches and see what emerges</li>
<li>Remember to keep your prompt history. This becomes a primary text for critical reading.</li>
</ul>

<h2>Days 2-4: Document the cognitive modes</h2>

<p>As you work, you might want to pay attention to, for example,</p>

<ul>
<li><strong>Cognitive delegation:</strong> Where did you offload judgment to the LLM? Did it lead you down unproductive paths?</li>
<li><strong>Productive augmentation:</strong> Where did human architectural control combine effectively with machine implementation?</li>
<li><strong>Cognitive overhead:</strong> Did managing the LLM's context or correcting its assumptions take you significant effort?</li>
</ul>

<p>Note any moments where the "<a rel="nofollow" href="https://stunlaw.blogspot.com/2025/11/ai-sprints.html?m=1" title="competence effect">competence effect</a>" appeared, which is where the LLM's output looked ok but was subtly wrong, or where its apparent understanding masked a deeper misunderstanding.</p>

<h2>Days 2-7: Share and compare</h2>

<p>Post your reflections to this thread (and the code if it is short enough - consider using the "Spoilers" tag to make the post manageable by others.</p>

<ol>
<li>Does your LLM's version resemble Strachey's structure, or does it "improve" it?</li>
<li>What did the LLM add or subtract?</li>
<li>Is the output a reimplementation of Strachey, of Montfort's reimplementation, or of the concept of a love letter generator?</li>
<li>How do we read the differences critically?</li>
<li>What does your prompt history reveal about the distribution of agency?</li>
</ol>

<h1>Resources</h1>

<h2>Strachey's Algorithm</h2>

<ul>
<li>Nick Montfort's Python reimplementation: <a rel="nofollow" href="https://nickm.com/memslam/love_letters.py" title="https://nickm.com/memslam/love_letters.py">https://nickm.com/memslam/love_letters.py</a></li>
<li>Interactive version: <a rel="nofollow" href="https://www.gingerbeardman.com/loveletter/" title="https://www.gingerbeardman.com/loveletter/">https://www.gingerbeardman.com/loveletter/</a></li>
<li>Wikipedia: <a rel="nofollow" href="https://en.wikipedia.org/wiki/Strachey_love_letter_algorithm" title="https://en.wikipedia.org/wiki/Strachey_love_letter_algorithm">https://en.wikipedia.org/wiki/Strachey_love_letter_algorithm</a></li>
<li>David Link's Manchester Mark 1 emulator reconstruction: <a rel="nofollow" href="https://alpha60.de/art/love_letters/" title="https://alpha60.de/art/love_letters/">https://alpha60.de/art/love_letters/</a></li>
<li>Previous CCSWG thread: <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/152/code-critique-strachey-love-letter-algorithm-thread" title="https://wg.criticalcodestudies.com/index.php?p=/discussion/152/code-critique-strachey-love-letter-algorithm-thread">https://wg.criticalcodestudies.com/index.php?p=/discussion/152/code-critique-strachey-love-letter-algorithm-thread</a></li>
<li>The Critical Code Studies workbench, which allows you to create code within the tool, <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/205/critical-code-studies-workbench" title="https://wg.criticalcodestudies.com/index.php?p=/discussion/205/critical-code-studies-workbench">https://wg.criticalcodestudies.com/index.php?p=/discussion/205/critical-code-studies-workbench</a></li>
</ul>

<h2>The Core Love Letter Logic</h2>

<p>The algorithm is remarkably simple. From Montfort's reimplementation:</p>

<pre><code>def longer():
    return (
        ' My'
        + maybe(adjectives)
        + ' '
        + choice(nouns)
        + maybe(adverbs)
        + ' '
        + choice(verbs)
        + ' your'
        + maybe(adjectives)
        + ' '
        + choice(nouns)
        + '.'
    )
def shorter():
    return ' ' + choice(adjectives) + ' ' + choice(nouns) + '.'
</code></pre>

<p>It contains a template plus word lists. It can be understood quickly and reimplemented in any language, and which makes it ideal for observing what LLMs do when asked to recreate it.</p>

<h2>Critical Reading</h2>

<ul>
<li>JSTOR Daily: "The Love Letter Generator That Foretold ChatGPT": <a rel="nofollow" href="https://daily.jstor.org/the-love-letter-generator-that-foretold-chatgpt/" title="https://daily.jstor.org/the-love-letter-generator-that-foretold-chatgpt/">https://daily.jstor.org/the-love-letter-generator-that-foretold-chatgpt/</a></li>
<li>Paul Curzon's description <a rel="nofollow" href="https://web.archive.org/web/20181006074019/https://www.cs4fn.org/creativity/loveletters.php" title="from the Wayback Machine">from the Wayback Machine</a>.</li>
<li>Gaboury, J. (2013) ‘On Uncomputable Numbers: The Origins of a Queer Computing’, Media-N: Journal of the New Media Caucus [Preprint]. Available at: <a rel="nofollow" href="https://median.newmediacaucus.org/caa-conference-edition-2013/on-uncomputable-numbers-the-origins-of-a-queer-computing/" title="https://median.newmediacaucus.org/caa-conference-edition-2013/on-uncomputable-numbers-the-origins-of-a-queer-computing/">https://median.newmediacaucus.org/caa-conference-edition-2013/on-uncomputable-numbers-the-origins-of-a-queer-computing/</a></li>
</ul>

<h1>Vibe Coding Discussion</h1>

<p>This exercise lets us examine several questions</p>

<ul>
<li>When an LLM "reimplements" Strachey's code, what is it actually doing? Is it reading Montfort's version? Training data that includes discussions of the algorithm? The concept filtered through countless blog posts?</li>
<li>Does your LLM produce something that looks like Strachey's generator but operates differently? How would you know?</li>
<li>From Strachey (1952) to ELIZA (1966) to vibe coding (2025) can we trace how the "competence effect" intensifies as systems become more capable while remaining equally lacking in understanding. Does your experience of vibe coding confirm or question this genealogy?</li>
<li>What would it mean to do critical code studies on the vibe coding session itself, including the prompts, the iterations, the failures, rather than on the resulting code?</li>
<li>If Strachey's generator produces grammatically correct, emotionally legible love letters through pure combinatorics, what does this suggest about the relationship between literary form and authentic expression? Does the generator parody the love letter, or does it reveal something already present in the genre?</li>
<li>Given the Bloomsbury Group's preoccupation with sincerity, intimacy, and the limits of language, particularly in figures like <a rel="nofollow" href="https://en.wikipedia.org/wiki/Virginia_Woolf" title="Virginia Woolf">Virginia Woolf</a> and <a rel="nofollow" href="https://en.wikipedia.org/wiki/Lytton_Strachey" title="Lytton Strachey">Lytton Strachey</a>, how might we read Christopher Strachey's generator as continuous with rather than discontinuous from that literary project?</li>
</ul>

<p>I'll post my own attempt and reflections partway through the week. Looking forward to seeing what emerges and post your experiences below.</p>
]]>
        </description>
    </item>
    <item>
        <title>Hai / Bye: syntactic ambiguity in Valence</title>
        <link>https://wg.criticalcodestudies.com/index.php?p=/discussion/190/hai-bye-syntactic-ambiguity-in-valence</link>
        <pubDate>Sun, 11 Jan 2026 20:29:01 +0000</pubDate>
        <category>2026 Week 1: Critical in Critical Code Studies</category>
        <dc:creator>Temkin</dc:creator>
        <guid isPermaLink="false">190@/index.php?p=/discussions</guid>
        <description><![CDATA[<ul>
<li>Title: Hai / Bye</li>
<li>Author: Daniel Temkin</li>
<li>Language: Valence</li>
<li>Year of development: 2026</li>
</ul>

<p>Picking up from the <a rel="nofollow" href="https://wg.criticalcodestudies.com/index.php?p=/discussion/189/book-forty-four-esolangs-by-daniel-temkin" title="main book thread for Forty-Four Esolangs">main book thread for Forty-Four Esolangs</a>, we'll build a short program in Valence to show how syntactic ambiguity works in the language. It will be the Hai / Bye program, presented in full at the end of this post.</p>

<p>In English, we can form sentences like "Billy saw the group with the telescope," which resolve in two different ways: the group has the telescope, or Billy is looking through the telescope at the group.<br />
<img src="https://wg.criticalcodestudies.com/uploads/editor/jw/hbi14kls4nwt.png" alt="" title="" /></p>

<p>Valence brings to programming this same structural ambiguity, where a line of code can hold multiple interpretations. When running the program, the interpreter forks the program at each ambiguous statement, allowing all versions of the program to play out in parallel. There is no single "correct" reading. This can be tried using the <a rel="nofollow" href="https://danieltemkin.com/Esolangs/Valence">online interpreter / code editor</a>.</p>

<p>Each Valence sign can be a command, an expression, a variable, or a literal value (by default, an octal digit). Its reading is determined by context: whether it is treated as a command vs. an expression, and how many parameters it is given.</p>

<p>Monads (signs that take one parameter), are written <a rel="nofollow" href="https://en.wikipedia.org/wiki/Polish_notation" title="prefix">prefix</a>. Using 𐅶 as example, it is written <code>𐅶x</code> for parameter x. When a sign has two parameters, it is written <a rel="nofollow" href="https://en.wikipedia.org/wiki/Infix_notation" title="infix">infix</a>,<code>x𐅶y</code>.</p>

<p>Each possible syntax tree for a line of code is evaluated; if we want to lock down these readings, we can explicitly mark a set of signs as a parameter by surrounding them with square brackets.</p>

<p>For example, take the line of code <code>𐅶𐅶𐅶</code>:</p>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/8n/bd3skfkzfpky.png" alt="" title="" /></p>

<p>Either the first sign is the command and it's a while loop, <code>𐅶[𐅶[𐅶]]</code> (these are marked in red as there's a syntax error: the loop is never closed). Or the middle sign is the command, and it's an add/assign (<code>+=</code>), <code>[𐅶]𐅶[𐅶]</code>. The interpreter shows us a version of the code with brackets marking all parameters, with syntax highlighting displaying the command in green.</p>

<p>However, we don't have only two readings but four. There's a second form of ambiguity, because the third sign can be read as either a variable or a literal value (the octal digital zero). We use other signs to explicitly choose one or the other:</p>

<p><code>𐅶𐅶[𐅾𐅶]</code> locks it down to mean the variable 𐅶, while <code>𐅶𐅶[𐆇𐅶]</code> indicates the value 0. These are just one use of 𐅾 and 𐆇, which themselves have many different readings.</p>

<p>Here is a longer sample that relies on that second form of ambiguity, between literal vs. variable name:</p>

<pre><code>[𐅶]𐆉𐆇𐆇
[𐆁]𐆉[𐅶]
𐅾[𐆇[[𐅾𐆁]𐅶[𐆇𐅻]]]
[𐆊]𐆉[𐆇𐅶]
𐆉[𐅻]
[𐆉]𐅶[𐆇𐅾]
𐆉[𐆊]
[𐆉]𐅶[𐆇𐅾]
</code></pre>

<p>When run in the editor, it has two interpretations, which execute in parallel:</p>

<p><img src="https://wg.criticalcodestudies.com/uploads/editor/1n/7bbrue4pe179.png" alt="" title="" /></p>

<p>video:</p>

<div></div>



<p>Below each of the two Interpretations are a State box, showing the final state of all Valence variables for that run. There are eight variables in Valence, and each corresponds to one of the signs used in the language. In the first interpretation, 𐆉 ends with the value 6, while in the right, it's given the value 8. Next to each line is psuedo-code showing how the interpreter reads it. For the left version, we have this:</p>

<pre><code>𐅶 = 1
𐆁 = 𐅶
goto((𐆁 + 5))
𐆊 = 0
set_label(𐅻)
𐆉 += 2
set_label(𐆊)
𐆉 += 2
</code></pre>

<p>In lines 1 and 2, we assign the value 1 to 𐆁, followed by a goto expression. While Valence allows for structured sequencing with a while loop, it also has goto, which works in terms of labels. On line 5, we set the label 𐅻 (which literally sets the value of 𐅻 to 4 -- not 5, as line numbers are zero-based in Valence). The goto is not to either of those labels, but to the expression <code>(𐆁 + 5)</code>. At that point in the program, 𐆁 has the value 1, so this resolves to 6. 6 is an alternate meaning of the symbol 𐆊, so we jump to the label 𐆊.</p>

<p>The right interpretation has a different reading for line 2: <code>𐆁 = 0</code>. This is because, in the second line (<code>[𐆁]𐆉[𐅶]</code>), 𐅶 is read as both a variable and a literal (the octal value 0o0). As the literal value, we calculate a different label to jump to,𐅻, giving us the value 8 instead of 6. The syntax highlighting helps us read this, as variables are marked in orange and literals in yellow.</p>

<blockquote><div>
  <p>NOTE: If an evaluated expression is larger than eight, it mods eight (takes the remainder when divided by 8) to find the label to jump to. If two lines are labeled the same way, it jumps to the closest one</p>
</div></blockquote>

<p>We can build on this to create longer programs that have multiple meanings. Here is the complete Hai/Bye program which extends our existing program, printing either "Hai" or "Bye" to the screen:</p>

<pre><code>[𐅶]𐆉𐆇𐆇
[𐆉]𐆉[𐆇𐆇]
[𐆁]𐆉[𐅶]
𐅾[𐆇[[𐅾𐆁]𐅶[𐆇𐅻]]]
𐆉[𐅻]
[𐆉]𐅶[[𐆇𐅶]𐆇[𐆇𐅾]]
𐆉[𐆊]
[𐆋]𐆉[[𐅻]𐆉[[[𐅻[𐅻[𐆇𐆇]]]𐅶[𐆇𐅻]]𐅶[[𐅾𐆉]𐆁[𐆇𐆋]]]]
[𐅶]𐆉[𐅾𐆋]
[𐆋]𐅶[𐅻[𐆇𐅻]]
[𐆋]𐅶[[𐆇𐅶]𐆇[[[𐅻[𐆇𐆇]]𐅶[𐆇𐆁]]𐆁[𐅾𐆉]]]
[𐅶]𐅻[𐅾𐆋]
[𐆋]𐅶[[𐆇𐅶]𐆇[𐆇𐆊]]
[𐆋]𐅶[[[𐅻[𐆇𐆇]]𐅶[𐆇𐆊]]𐆁[𐅾𐆉]]
[𐅶]𐅻[𐅾𐆋]
𐆋[𐅾𐅶]
</code></pre>

<p>Below is the interpretation of that program. The "Hai" and "Bye" differ only in how line 3 is interpreted:</p>

<pre><code>𐅶 = 1
𐆉 = 1
𐆁 = 𐅶 (for Bye) | 𐆁 = 0 (for Hai)
goto((𐆁 + 0o5))
set_label(𐅻)
𐆉 += (0 - 0o2)
set_label(𐆊)
𐆋 = cast(char, (0o105 + (𐆉 * 0o3)))
𐅶 = 𐆋
𐆋 += 0o50
𐆋 += (0 - (0o17 * 𐆉))
𐅶 APPEND 𐆋
𐆋 += (0 - 0o6)
𐆋 += (0o16 * 𐆉)
𐅶 APPEND 𐆋
print(𐅶)
</code></pre>

<p>On line 2, we set 𐆉 to 1. In the <code>Bye</code> version of the program, we don't skip line 7, which subtracts 0o2 (octal 2), giving us -0o1. This single change affects all the following calculations.</p>

<p>On line 9, we assign to 𐆋 <code>0o105 + (0o3 * 𐆉)</code>, producing 'H' or 'B' depending on the value of 𐆉. This is then copied to 𐅶, which will become our final output string. On lines 11 and 12, we assign<code>𐆋 += (0o50 + (-0o17 * 𐆉))</code>, getting us from 'H' to 'a' or from 'B' to 'y'. For the third character, <code>𐆋 += -0o6 + (0o16 * 𐆉)</code>. Each character is appended to 𐅶, which is printed on the final line of the program.</p>
]]>
        </description>
    </item>
   <language>en</language>
   </channel>
</rss>
