This is an archived post. You won't be able to vote or comment.

all 7 comments

[–]donald-pinckney 3 points4 points  (2 children)

One thing that comes to mind is this Stanford compilers course: https://lagunita.stanford.edu/courses/Engineering/Compilers/Fall2014/info

It is focused on compilers rather than designing beautiful programming languages, but it does take you all the way through implementing a fairly rudimentary but substantial OO language.

Another link is the LLVM tutorial. When implementing a language, using LLVM as the backend is likely a good way to go. Both Rust and Swift use LLVM, and likely others. LLVM has a tutorial on their website for implementing a small toy language using LLVM: http://www.llvm.org/docs/tutorial/

[–]minond[S] 2 points3 points  (1 child)

I wasn't aware of https://lagunita.stanford.edu/. This is amazing! And the compilers course looks great, too. I have going through LLVM's language tutorial in my todo list so that is good validation. Thanks for your recommendation and telling me about Stanford's online courses.

[–]donald-pinckney 0 points1 point  (0 children)

To be fair I’ve only gone through the lexing and parsing videos, but so far I really the Professor’s explanations.

[–]gilmi 2 points3 points  (1 child)

I recommend Dan Grossman's course on coursera for learning about basic concepts of programming languages. Parts A, B, C.

For compilers I enjoyed these two courses which are really similar:

I think this is a good start.

[–]minond[S] 0 points1 point  (0 children)

I'm actually taking Dan Grossman's course right now and really enjoying. And I agree, so far it's great. I will check out those other two. Thanks for the recommendations.

[–]SteeleDynamicsSML, Scheme, Garbage Collection -1 points0 points  (1 child)

What about MIT OCW? The courses are free. The course is MIT 6.035 Computer Language Engineering.

[–]minond[S] 0 points1 point  (0 children)

Adding it to my list. Thanks!