4 ms·
Shameless plug for the programming language course I'm TAing. It covers how to write a similar interpreter, with more detail about evaluation and less about par
by justinpombrio 9y ago
Shameless plug for the programming language course I'm TAing. It covers how to write a similar interpreter, with more detail about evaluation and less about parsing. The book and all of the assignments are online.
http://cs.brown.edu/courses/cs173/2016/index.html http://cs.brown.edu/courses/cs173/2016/index.html
http://cs.brown.edu/courses/cs173/2016/assignments/programming/interp.html http://cs.brown.edu/courses/cs173/2016/assignments/programmi...
http://cs.brown.edu/courses/cs173/2016/assignments.html http://cs.brown.edu/courses/cs173/2016/assignments.html
The "interpreter" assignment has a similar end-goal as this tutorial.
Many of the other assignments (the ones prefixed "ML-") are "mystery languages", where you try to tell the difference between two programming languages that have the same syntax but different semantics. It's a fun way to explore the consequences of language design, I think.
Next year we might do a MOOC.
- Twisol 9y agoI can vouch for the mystery language assignments at least -- we worked through several at this year's Racket summer school (https://summer-school.racket-lang.org/2017/ https://summer-school.racket-lang.org/2017/), and they were interesting and very engaging. (Hi Justin!)
- totalperspectiv 9y agoThis course looks awesome! Do you (or those scrolling by) know of any other courses like this? By this I mean short but focused burst of learning done in person.
- Twisol 9y agoYes, there seem to be a number of summer schools every year on a variety of topics, although the ones I'm familiar with are based more in academia than in industry. I think they tend to get announced on the Types mailing list (https://lists.seas.upenn.edu/mailman/listinfo/types-announce https://lists.seas.upenn.edu/mailman/listinfo/types-announce). Here are a few that I'm aware of: * Racket summer school: https://summer-school.racket-lang.org/2017/ https://summer-school.racket-lang.org/2017/ * Oregon Programming Languages Summer School: https://www.cs.uoregon.edu/research/summerschool/summer17/ https://www.cs.uoregon.edu/research/summerschool/summer17/ * DeepSpec summer school: https://deepspec.org/event/dsss17/ https://deepspec.org/event/dsss17/
- mlazos 9y agoI took the course a few years ago and can't overstate how much I learned implementing the interpreter assignments. They entirely revamped my thinking about programming and even prepared me for the real world a bit (my team at work just built a custom scheme interpreter for a deep learning DSL)