Let's build a simple interpreter for APL – part 1

One coder tackles APL’s weird symbols and the crowd is equal parts impressed and terrified

TLDR: A coder has started building a beginner-friendly APL language reader in Python, turning a famously symbol-heavy language into a step-by-step project. The crowd’s reaction is the real show: some love the ambition, while others joke that reading it right-to-left is either brilliant or a disaster waiting to happen.

A programmer has kicked off a very nerdy, very brave mission: building a simple interpreter for APL, the famously strange programming language packed with exotic symbols, in Python. The post itself is a friendly walk-through—crediting Ruslan Spivak’s interpreter series as inspiration—while laying out the first baby steps: reading numbers, handling basic math, dealing with brackets, and even coping with APL’s famously odd negative sign, ¯. The author is candid about doing this partly to learn, partly to show their work, and partly because, frankly, it sounds fun.

But the real energy here is the community mood: a mix of admiration, curiosity, and “you are absolutely out of your mind” awe. APL has a reputation as the language that looks like a keyboard lost a fight with a symbol chart, so readers tend to split into camps. One side loves the ambition and sees it as a wonderfully chaotic learning project; the other side can’t get over the idea of building a tool for a language many outsiders find almost unreadable. Even tiny details sparked reactions, especially the decision to read code right to left because that matches how APL works—exactly the kind of choice commenters love to call either “genius” or “the setup for future pain.”

The humor basically writes itself: jokes about needing a special keyboard, staring into glyphs until they stare back, and treating the GitHub star request like a cheeky little red-carpet moment. In other words, classic coding-thread entertainment: one part education, one part flex, one part impending chaos.

Key Points

  • The article begins a series on building an APL interpreter in Python, inspired by Ruslan Spivak’s interpreter tutorial series.
  • The author’s stated goals include learning APL, improving Python skills, documenting implementation steps, and helping others build their own interpreter.
  • The project code is available in a GitHub repository, and the code for this installment is contained in `rgspl1.py`.
  • The first implementation target is parsing simple APL expressions with integers, floats, negative numbers, vectors, arithmetic functions, the commute operator `⍨`, and parentheses.
  • The article defines a `Token` class for lexical analysis and describes a right-to-left tokenization approach aligned with APL’s execution order.

Hottest takes

"equal parts impressed and terrified" — community mood
"genius or the setup for future pain" — community reaction
"a keyboard lost a fight with a symbol chart" — running joke
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.