The First Compiler: How Alan Jay Perlis Made Programming Human

nutwani911 pts1 comments

The First Compiler: How Alan Jay Perlis Made Programming Human

Nirmal Utwani

SubscribeSign in

The First Compiler: How Alan Jay Perlis Made Programming Human<br>Week 01 of the Turing Award Series — when computers stopped speaking only in numbers, and why that matters for how we code today<br>Nirmal Utwani<br>Jun 11, 2026

Share

I miss learning for the sake of learning. Going into rabbit holes. Reading research papers has always been aspirational for me but hard to be consistent with.<br>Thanks for reading! Subscribe for free to receive new posts and support my work.

Subscribe

What’s different now is that the barrier to actually grokking hard concepts is so much lower. You can take a dense 1960s systems paper, work through it with an LLM, and come out the other side genuinely understanding it. You can customize the learning based on your skills, your experience, your knowledge.<br>So I’m starting a series on Turing Award winners and other CS papers I find interesting.<br>How This Works

Most of it will be AI generated: the code, the write-ups, the structure. But every entry has one section written by me. Writing is how I think. It’s what validates my understanding.<br>This is that section.

My Take

We’ve gone through tons of advancements in computer languages over the years, but at the heart of everything, computers have always understood it the exact same way. We have built abstractions on top, like Scala, Javascript, Python and, most recently, English as a new programming language, but deep, deep down inside, computers have always looked at zeros and ones, or things to do operations to manipulate an actual bit on a disk or something. That has never changed.<br>What makes Alan Jay Perlis’s work stand out is that he was the first to say humans don’t have to do the hard work of translating things into how computers understand them. You should be able to write a simple mathematical equation or formula, and the compiler will do the translation. Not everyone has to understand and write machine code. He was the first to invent something humans could write in instead of having to write machine code.<br>The other thing he did really well was try to get all of the best computer science minds in the world to come to a common way of thinking about languages and compilers. That’s what allowed developers to be so easily able to move around, and the concepts remain similar across all programming languages. It’s because of what Alan Jay Perlis did, and now, because all the languages are so similar, LLMs have been able to understand those languages really, really well. That’s why we can program in English today.

What He Actually Did

Alan Jay Perlis won the first Turing Award in 1966 “for his influence in the area of advanced programming techniques and compiler construction.”<br>Two things stand out:<br>1. IT — The Internal Translator (1955–56)<br>Before Perlis, programmers wrote machine code by hand. Every instruction was a string of numbers. If you wanted to compute x = (a + b) * c, you’d write something like:<br>65 0100 001115 0101 0012<br>19 0102 0013<br>24 0103 0014<br>Each line is one instruction. The numbers mean: clear the accumulator, load a value, add another value, multiply, store the result. The last four digits of each instruction told the computer where on the spinning drum to find the next instruction. If you got it wrong, the machine waited a full rotation. Programming wasn’t just logic. It was a timing puzzle.<br>Perlis built a translator. You typed normal math. The compiler figured out the machine code. That was IT. It was the first compiler that actually worked.<br>People didn’t think you could do this automatically. They thought machine code needed human cleverness. Perlis proved them wrong.<br>2. ALGOL 60 — The Language That Taught Every Language<br>In 1958 Perlis chaired a meeting in Zurich with mathematicians and computer scientists from America and Europe. The goal: agree on one language that would work everywhere.<br>That language became ALGOL 60.<br>ALGOL 60 introduced:<br>Block structure (variables that stay inside their { })

Recursion (functions calling themselves)

Formal syntax (the first language defined by a grammar, not prose)

Type declarations (variables had declared types)

Every language since borrowed these ideas. Python, Java, C, Go, Rust — they all descend from ALGOL 60.<br>This is why modern programming languages look so similar to each other. This is why LLMs trained on code can understand them so well. This is why we can now write code in English and have it work.<br>The foundation was laid in 1960.

The Code

I built a mini compiler that mirrors what IT did: take text, turn it into tokens, build an abstract syntax tree, compile to bytecode, execute.<br>It’s 200 lines of Python. No external dependencies. You can run it in a REPL and see it work:<br>> x = 3> y = x * (2 + 4)<br>> y<br>18<br>Or you can run python compiler.py --verbose and watch it turn your expression into stack bytecode, instruction by instruction.<br>The full code and explanation are on GitHub:...

code perlis compiler first programming work

Related Articles