

Writing a Compiler in 24 Small Steps [pdf] - falsestprophet
http://scheme2006.cs.uchicago.edu/#anincrementalapproachtocompilerconstruction

======
mdwrigh2
Here's a link to the actual pdf:

<http://scheme2006.cs.uchicago.edu/11-ghuloum.pdf>

------
scrrr
_"Compilers are perceived to be magical artifacts, carefully crafted by the
wizards, and unfathomable by the mere mortals."_

Then everyone with a cs-degree must be immortal.

~~~
hubb
i think you're over-estimating the abilities of the average cs grad if you
believe they all understand compilers.

~~~
philwelch
Unfortunately, Compilers is no longer a required class to get a CS degree. My
(possibly flawed) understanding is that in the heyday, it was.

It's really a shame, because learning about compilers applies all that stuff
you're supposed to learn about languages and automata theory, gives you an
excellent example of how to design a large software system, gives you insights
into programming language design, and above all demystifies the process of
what happens when you compile your own code.

~~~
WalterGR
_Unfortunately, Compilers is no longer a required class to get a CS degree._

As with all degrees, that depends entirely on the school.

~~~
philwelch
I meant in the average case.

~~~
baddox
What about in the worst case?

~~~
philwelch
In the worst case, you can go to a school that doesn't offer compilers. My
school offers but doesn't require it.

It would be interesting to discover the earliest CS program at a reputable
university without a compilers requirement.

------
hubb
the paper's been discussed at least once before on hn:
<http://news.ycombinator.com/item?id=1408241>

~~~
paulsmith
That paper is pretty interesting, but is just an overview of the actual
tutorial on writing the compiler, which is here:

[http://www.cs.indiana.edu/~aghuloum/compilers-
tutorial-2006-...](http://www.cs.indiana.edu/~aghuloum/compilers-
tutorial-2006-09-16.pdf)

Unfortunately, the tutorial seems to be in a draft state, with a good amount
content still needing to be written ("FIXME"s throughout).

