
Episode 1: A basic expression evaluator
About this video
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.
Why it appears in the archive
Recommended as a practical, approachable build-it-step-by-step introduction to writing compilers, light on theory.
AI-generated summary and labels from the source dataset; verify important details against the video. Source & credits.
From the Hacker News discussion
Here's a great YouTube series where a developer codes, step-by-step, a pretty fully-fledged programming language: [VIDEO] Not too much theory but from a nuts and bolts perspective I found it extremely approachable.
Read original comment ↗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: [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 :)
Read original comment ↗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: [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
Read original comment ↗