5 ms·
There are lots of cool papers Dybvig has published related to Chez Scheme that are relevant for anyone hacking on compilers. Specifically, destination-driven co
by eatonphil 4y ago
There are lots of cool papers Dybvig has published related to Chez Scheme that are relevant for anyone hacking on compilers. Specifically, destination-driven code generation is really neat.
My favorite is the slides on the development of Chez Scheme: http://icfp06.cs.uchicago.edu/dybvig-talk.pdf http://icfp06.cs.uchicago.edu/dybvig-talk.pdf.
A few other good ones:
* Destination Driven Code Generation: https://legacy.cs.indiana.edu/~dyb/pubs/ddcg.pdf https://legacy.cs.indiana.edu/~dyb/pubs/ddcg.pdf
* The Development of Chez Scheme: https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72.4350&rep=rep1&type=pdf https://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.72...
Here's a pretty full list: https://www.researchgate.net/scientific-contributions/R-Kent-Dybvig-3228079 https://www.researchgate.net/scientific-contributions/R-Kent....
- eatonphil 4y agoIf you want to see how destination driven code generation (DDCG) works concretely, check out this old presentation by a V8 developer. It shows concretely how DDCG compares to common optimizations like peephole and top-of-stack caching. And shows concrete examples of compiling various forms (expressions, assignment, control flow, etc) with DDCG. The only reason it's on my personal Github is because the original is so hard to find. https://github.com/eatonphil/one-pass-code-generation-in-v8 https://github.com/eatonphil/one-pass-code-generation-in-v8
- pcorsaro 4y agoDybvig was my compilers professor during my second semester of my senior year at Indiana University. He was a very good teacher with a well laid out class. Since I was a second semester senior, I screwed around and barely went to class and just barely scraped by. That was one of my bigger regrets in college was not taking advantage of that class.
- bjoli 4y agoI always recommend his talk "A macro writer's bill of rights" [0] to people. It ties into some of the papers he has written, and also shows how nice it is to have a source->source optimizer. You write some code, and can the look at it after most of the common transformations (inlining, DCE, loop unrolling, constant propagation). I spent some time reading the r6ra discussions and was blown away by the thought that went into the whole thing. There are very few parts of the semantics of R6RS that are actually bothersome. The only thing I really don't like is promises and the dynamic environment. [0] https://m.youtube.com/watch?v=LIEX3tUliHw https://m.youtube.com/watch?v=LIEX3tUliHw