Episode 1: A basic expression evaluator
Immo Landwerth (terrajobst)2 HN recommenders · recommended in 2 months, 2020-2026
284K views · 8 years ago · course · evergreen
The first episode of a long live-coding series in which Immo Landwerth builds the Minsk compiler for a small language in C#. It starts with a basic expression evaluator and builds toward a full language.
Recommended as a practical, approachable build-it-step-by-step introduction to writing compilers, light on theory.
1:14:32Building Your Own Dynamic Language
Stanford
21K views • 18 years ago
2:07:18Demo: Base language, compile-time execution
Jonathan Blow
164K views • 12 years ago
1:10:16Saša Jurić - Parsing from first principles - WebCamp Zagreb 2019
WebCamp Zagreb
6K views • 7 years ago
1:21:25Let's prototype a JavaScript JIT compiler!
Andreas Kling
49K views • 3 years ago
34:10Anders Hejlsberg on Modern Compiler Construction
Kasper
25K views • 9 years ago
47:51Brandt Bucher – A JIT Compiler for CPython
encukou
14K views • 2 years ago
38:38"Tree-sitter - a new parsing system for programming tools" by Max Brunsfeld
Strange Loop Conference
63K views • 8 years ago
1:01:37Compiling and Optimizing Scripting Languages
Google TechTalks
21K views • 17 years ago
40:48Andy Keep - Writing a Nanopass Compiler
ClojureTV
29K views • 12 years ago
43:00Tree-sitter: a new parsing system for programming tools - GitHub Universe 2017
GitHub
24K views • 8 years ago
1:15:46CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”
CppCon
178K views • 9 years ago
1:01:45A Talk Near the Future of Python (a.k.a., Dave live-codes a WebAssembly Interpreter)
David Beazley
26K views • 7 years ago
58:22Lecture 1B | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
116K views • 17 years ago
1:02:44Chris Seaton @ VMSS16: JRuby+Truffle: Why it’s Important to Optimise the Tricky Parts
softdevteamuk
5K views • 10 years ago
1:00:54GoingNative 2012 - Day 2 - Clang
aghuttun
13K views • 13 years ago
2:12:42Build Your Own Async
David Beazley
60K views • 7 years ago
2:03:12Co-dfns Live Stream: Compiler Design and Architecture
Aaron Hsu (arcfide)
21K views • 9 years ago
17:26Lecture 1 | Programming Paradigms (Stanford)
Stanford
1.2M views • 18 years ago
58:39Tim Ewald - Clojure: Programming with Hand Tools
ClojureTV
48K views • 12 years ago
1:30:03C++Now 2018: Matt Godbolt “What Else Has My Compiler Done For Me Lately?”
CppNow
11K views • 8 years ago
3 comments from Hacker News
I've been working full time for like 3 yrs as C# dev + doing higher edu at weekends at the same time and I was about to decide thesis topic. I've been searching for something challenging and found some very random post on programming forums about how compilers are hard etc and decided to give it a try. I had kind of advantage that I accidentally had some significant amount of experience with handwritten parsers (at first job we were doing custom-markdown-like-language renderer as PoC or even when doing apprenticeship in high school I was rolling out csv parser instead of using libs, because... I'm not sure why, I probably didnt know how to use package manager or something) I started reading about it a lot like dragon book (but it wasnt that useful tbh, too much math heavy) or link or playlist like this: ▶ this video And after year of jumping into it from time to time I've implemented small, custom-lang to LLVM IR to webassembly (via LLVM) compiler. Then I had to find new job (we were very poorly paid) and I was interested in semiconductors industry because it was gaining traction (e.g chip war book) and it felt way more engineering oriented unlike web dev. Web dev tech decisions felt for me very religious, like fancy-conferences/blogposts oriented. And since semiconductor industry often touches compilers, then that was opportunity for: better salary, interesting projects and in future transition to compilers I've joined semico company as C# dev and then due to project cancellati
I don't have something that could be of Crafting Interpreters level on hand, but the general suggestion given to this question on DotNetEvolution discord by Roslyn team members was to start with the spec itself: link This might be a bit of a learning curve if you don't have experience with writing compilers like that though. There are other materials that might prove useful should you go down this path: - A series of blog posts of a student who is writing a Rust to .NET compiler which you could follow along: link The project itself: link - A video series on writing a compiler for .NET from scratch: ▶ this video Notes: link As for CLR via C#, while it has certain facts that remained the same, the ecosystem has changed a lot since then, you really want to target the latest LTS to get best experience and performance. If you liked it, then I can strongly suggest link which covers .NET runtime internals. p.s.: if it's any consolation, the promise in CLR via C# of JIT having the advantage of dynamically profiling code execution and compiling to profile-guided version, tuned to the exact hardware and environment is finally fulfilled, many years later :)
Here's a great YouTube series where a developer codes, step-by-step, a pretty fully-fledged programming language: ▶ this video Not too much theory but from a nuts and bolts perspective I found it extremely approachable.