On Feb 6, 2019, at 11:28, Matthias Felleisen <[email protected]> wrote: > On Feb 6, 2019, at 2:22 PM, 'Paulo Matos' via Racket Users > <[email protected]> wrote: >> Interestingly according to Matt these ideas were already floating around at >> his uni as early as 98? > My recollection is that Kent taught with this approach because it simplified > homeworks for students and graders and I encouraged him to write it up for > the “education pearl” section that I launched for JFP in ’03.
When I took Kent’s compilers class (which would’ve been around ’98 or ’99), which he co-taught with Dan Friedman, they were in the early-ish stages of exploring the idea; it might have been the first year of implementation, and I don’t doubt it helped the graders since the class was fairly large. I can say from a student perspective, it was really helpful for understanding what was going on: each pass had one very specific purpose — a few maybe had two, but almost all passes were straightforward on their own. By the end of the semester we had a Scheme-to-Sparc-ASM compiler written in about 36 passes. At the time, the only special tooling we had was a form of match that had a shorthand for “recur and bind variable(s) to the result(s)”, so we had to write all the just-copy-the-AST branches of our recursion manually. A big chunk of the work in implementing nanopass was setting up a language-definition framework that’d allow the copying code to be generated. Cheers, Jordan -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

