[racket] Off topic: A curriculum (books, papers, essays) for how to design and implement compilers and interpreters?
Shriram Krishnamurthi <sk at cs.brown.edu> writes:
> It depends on what kinds of compilers/interpreters they were trying to
> build. A course of study for Fortran would like quite different from
> one for ML would look quite different from one for JavaScript (though
> there are of course many overlaps).
Indeed -- I found myself in the interesting position here (a financial
firm in NY) over the summer of being offered the chance to provide a
series of puzzles on any theme to a group of talented amateurs (three
junior sysadmins and an intern in an `elite' financial setting), with
the stipulation that the language used be Perl -- what they mostly
needed experience in for their `day job' -- and Perl 5.8.8 (the in-house
default install) at that.
In about a dozen and a half puzzles, I was able to get them through a
quick intro to functional programming followed by step-by-step
construction of a scheme interpreter in the `The Art of the Interpreter'
style.
It was necessarily a rather speedy overview of the subject -- with
out-of-band discussion of how tail-call optimization looks behind the
scenes, macros, and similar more advanced looks at the subject matter
for those who showed interest and followed up on their own -- but it
went pretty well.
I wouldn't recommend Perl as a language for this if we were starting
From scratch, but as a means of broadening the horizons of people who
were already Perl programmers, it went well.
I'd be happy to share the lecture notes / example code from this with
anyone who's interested -- with the understanding that this came
together in a rather ad-hoc style, so I don't promise it's the way I
would do it if I had more time. :-)
--
Jim Wise
jwise at draga.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 192 bytes
Desc: not available
URL: <http://lists.racket-lang.org/users/archive/attachments/20110919/4f97803d/attachment.sig>