On March 15th at 10am MDT, please join us for the second Inside Racket
Seminar where Matthew Flatt will give us a walk-through of the
bytecode compiler.
As before, it will be on Google Hangouts on Air with Matthew walking
through the code and giving an explanation of how it all hooks
together. This is not a tutorial on Racket or on the compiler as a
library, but a kind of oral history and explanation of the software
and how it works. Our hope is that this will increase the ability of
others to build and maintain similar software as we share this kind of
expertise in a way that doesn't fit our existing distribution
mechanisms (research papers, RacketCon talks, documentation, etc.)
I hope that you are able to attend and send your own questions as we go through.
Here are some things you may want to look at to prepare:
0. The compiler is written in C, so be ready for that. :)
1. The decompiler tool has an explanation of the high-level structure
of the bytecode:
http://docs.racket-lang.org/raco/decompile.html
2. Casey's paper with Matthew and Robby, "The Racket Virtual Machine
and Randomize Testing", has another explanation of the bytecode and a
reduction semantics for it:
http://plt.eecs.northwestern.edu/racket-machine/
3. R. Kent Dybvig's 1987 PhD thesis, "Three Implementation Models for
Scheme", is readable and was personally very useful for me in
understanding how an implementation like Racket's works (in
particular, the second model):
http://www.cs.indiana.edu/~dyb/pubs/3imp.pdf
Please feel free to send questions beforehand, on this thread or to me
personally. We will archive the video for later viewing, etc.
Jay
--
Jay McCarthy
Associate Professor
PLT @ CS @ UMass Lowell
http://jeapostrophe.github.io
"Wherefore, be not weary in well-doing,
for ye are laying the foundation of a great work.
And out of small things proceedeth that which is great."
- D&C 64:33