662 points · 82 comments · 3 years ago · macrolocal
cs.cornell.edujjice
darzu
For undergrad level PL, I highly recommend Dan Grossman's MOOC[0] or recent class recorded lectures[1]. Dan's thesis work strongly influenced Rust's borrow checker.
Disclosure: Dan advised me in undergrad and Adrian is a friend.
[0] https://www.coursera.org/learn/programming-languages
[1] https://courses.cs.washington.edu/courses/cse341/19sp/ (ctrl-f "Videos")
yodsanklai
I wish my school offered something even half good as this.
Me too. In my school, we had great introduction/mid-level classes but at the graduate level, I found our classes underwhelming. Mostly Prof/Researchers teaching their narrow specialties and trying to recruit PhD students, but without putting much time in their lectures as they didn't care about teaching. Bunch of slides, research papers to read. They wouldn't bother making a heavy programming project, which was left to their colleagues doing less research.
tester756
I've seen it like 2 years ago and it is well prepared course.
CS 6120 is a PhD-level Cornell CS course by Adrian Sampson on programming language implementation.
I just dont understand why is this "PhD level"
agomez314
satvikpendem
photochemsyn
https://www.cs.cornell.edu/~asampson/blog/llvm.html
This is a great resource, I've wanted to learn how to use LLVM to compile to RISCV assembly for a while, e.g.
tomcam
in the self-guided version, your end-of-semester assignment is to change the world through the magic of compilers.
I’m not feeling any pressure or anything
avinassh
Andy Pavlo's CMU 15-721: Advanced Database Systems is similar, where you will hack on Postgres to implement a Foreign Data Wrapper (FDW)
UncleOxidant
debanjan16
jws
Well worth using as a resource.
happytiger
LZ_Khan
[deleted]
ofalkaed
This page lists the curriculum for following this course at the university of your imagination, for four imagination credits (ungraded).
Seems rather ridiculous of Cornell to dictate terms for the University of My Imagination (UMI), if an imaginary professor at UMI wants to grade my work I think they should be allowed to do so and even grant me an imaginary degree if they feel I have earned it. Guess it is true, universities do stifle creativity.
My prof developed a production SML compiler that's fairly widely used, so he was the best resource I could have asked for. Such a humble guy as well. The thing that was most interesting to me was the use of ADTs on the implementation end. I couldn't imagine how much more tedious it would be dealing with the many types of trees a compiler deals with without them.
The class's impact on my overall career isn't direct, as I don't work near the compiler space at all (unfortunately), but there were so many good type level concepts I got out of that course. Plus, it was just a blast. Late nights with a bunch of tmux panes ironing out bugs to rack up test coverage - such fond memories :)
I highly recommend playing with compiler implementation for anyone that's unfamiliar. There are a lot of good introductory resources out there and they're just such a fascinating part of our industry. A beautiful cross roads between CS theory and practical application.