On Feb 6, 2019, at 11:28, Matthias Felleisen <matth...@felleisen.org> wrote: > On Feb 6, 2019, at 2:22 PM, 'Paulo Matos' via Racket Users > <racket-users@googlegroups.com> 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 racket-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.