Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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/assignments/programmi...

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.



I 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/), and they were interesting and very engaging. (Hi Justin!)


This 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.


Yes, 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).

Here are a few that I'm aware of:

* Racket summer school: https://summer-school.racket-lang.org/2017/

* Oregon Programming Languages Summer School: https://www.cs.uoregon.edu/research/summerschool/summer17/

* DeepSpec summer school: https://deepspec.org/event/dsss17/


I 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)




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: