Back to the Future opened on the third of July, 1985. The first compiler on this drive is stamped the eighth.
She saw the movie, or she didn't. Five days later she started writing a compiler by hand, in her own bytecode, because that is still the only thing the machine runs. And when files start coming out the other side of it, they have a new name:
Dot L U A.Now, I know what you're thinking. You're doing some mental arithmetic.
The language you are thinking of was written in 1993, in Rio de Janeiro, by three very different people. The scholarly consensus here, which is to say me, alone, in a garage, has decided that this is purely a coincidence, for her name is Louise Ursula Albright.
She spends three more weekends on this, and boy, does this become even more interesting.
By this point, I'm really in to it. Late nights. Early mornings. Lunch breaks. Whenever I can find time to tear apart some of what she's done, I'm captive to her song.
In August 1985 the compiler is rewritten in its own language as a single .LUA source file. The hand-assembled compiler is used exactly one more time, on the //e, to translate that source into bytecode. After that, the compiler compiles its own source, and what comes out is byte-for-byte what the hand compiler produced.
4,202 bytes in. 4,202 bytes out. A shining piccolo in the vast array of kettle drums.
That equality is exactly the guarantee Ken Thompson describes in Reflections on Trusting Trust, which came out in 1984 and which I have no evidence whatsoever that she read.
You can see what the heap bought her in those same three weeks. Same program, before and after:
-- July 1985, no upvalues: the function is handed itself local fact = function(self, n) return n * self(self, n - 1) end -- August 1985, with upvalues: it calls itself by name local fact = function(n) return n * fact(n - 1) end
When you start writing your own language, everyone starts with the top one. You tell yourself it's temporary, and maybe that's true, or maybe you stop playing around with the language before you get farther.
In three weeks she was one of the ones that persisted.
From here, every compiler on the ladder is written in the language the rung below accepts and compiled by it, and the only hand-authored bytecode in the whole process is the initial bootstrap seed machine.
Brava, Ms. Albright.
Jorj Bauer
Discussions
Become a Hackaday.io Member
Create an account to leave a comment. Already have an account? Log In.