This article has been posted by Dwight VandenBerghe in comp.compilers
I was seventeen and had a lot of time on my hands. I was a programmer for the US Marines, stationed in Da Nang, Vietnam, in the mid sixties, and during the long nights I would go through the IBM microfiche – they kept a full set in the computer room, all the manuals and all the source code for all their tools. I got interested in the COBOL compiler, and I read through the assembler code for it. I still remember reading the instructions that scanned in an integer. It just thrilled me, seeing how that magic was done. I stayed up late into the early morning, trying to figure it all out.
It’s 3:10AM here now, and I’ve just finished downloading some papers from Norway on attribute grammars in ML. I have to go print them out. I’m dead tired, but this stuff is so exciting that sleep will have to wait. I’m 48 now, and my youngest boy is almost seventeen. My grandkids are great, and my wife is a gem, but you know, I hope that I am still cheating sleep for another couple of decades, because I feel seventeen, not nearly fifty. Compilers are magical. Compilers are like the two opposing mirrors in the funhouse – you see infinity, yet you are clearly finite. Writing a compiler, you go back and forth, from the infinite to the practical, over and over again. And now, with the advent of functional programming into my life, there is an elegance to the code that I haven’t seen before. The functional style seems to me to be made for us compiler jockeys. And the advances that have been made in this field: BURS theory, the SUIF system, transformational tree rewrite systems, higher-order attribute grammars, the exciting new work with LL(infinite) parser generators … it’s simply thrilling. Nothing else compares, at least, for me. Applications suck; device drivers are tedious; operating systems and file management and databases are boring. After 31 years, I’ve pretty much done it all, and if it wasn’t for compilers I’d be bored stiff. Yet here it is, the wee hours yet again. Last night I finally hauled myself to sleep at a little after 2AM, because I found some great papers on polymorphic type theory on some server in the UK. So it goes.