Any recommended books (or other resources) for someone who wants to learn to become a Zig contributor one day?
I’m a web developer by trade (Python, TypeScript). In the past I’ve also done iOS development, desktop app development, game development, and taught object-oriented programming: Objective-C, Java, C++ (but this was all a long time ago: it’s been mostly Python for the past couple of decades).
Thanks!
I’ve always been fascinated by programming languages and how they might be designed and implemented. But I’ve never worked on one before. In fact I’ve never really done any low-level programming (C, assembly, etc).
I’m aware of Crafting Interpreters: thought I could work through that and do the challenges in Zig. Writing a C Compiler by Nora Sandler has also been recommended to me. Also Computer Systems: A Programmer’s Perspective, and Linkers and Loaders. But I’m not really in a position to assess the relevance or usefulness of these for contributing to Zig.
Here are some links to resources about how the compiler works (or at least used to work). How relevant they are probably depends on how you want the contribute to zig.
Zig’s compiler is written in Zig. Be familiar with C compiler or if you have done any other compilers or interpreters, that would certainly be helpful, but I think one of the most important thing is being familiar with writting Zig programs.
I wouldn’t say it was the course that defined my career in compiler space, but it definitely contributed more than all other stuff.
For Zig in particular, I suggest reading Zig – Mitchell Hashimoto to get familiar with the big picture, and then just reading the source of the compiler?