I meant for September to be a month to rest a little from SICP and to work through Thorsten Ball’s book Writing a Compiler in Go (WACIG). For the most part that’s been a success, although my laziness got the best of me a little bit. I’ve nearly finished the book, with only a few short chapters left to go, and should have it done in September. However, I didn’t take the time to actually implement the code in C# for my Monkey implementation.
WACIG is a good book. Like it’s predecessor it’s simple and easy to follow, and the code, obviously written in Go, is easy to follow and well written with a lot of tests. To follow it you’ll have to have read WAIIG as the book is dependent upon what you build there. It doesn’t go into how to build a lexer or parser again. What it does show is how to simply build a stack based bytecode compiler and virtual machine. It’s not as complicated as you may think it is at first, and in about 300 pages you’ll have one up and running.
So after taking September off from SICP it’s time to get back on the long trail of finishing that tome. I feel like SICP packs as much information in 10 pages as some other books pack all together, which makes it more meaty then a lot of technical books to work through. But before diving right back into SICP, I’m going to take the first two weeks of October (hopefully 10 days) to work through and finally finish The Little Schemer which is a fun little book with a lot of recursion.
I also need to find the energy to do a little bit more blogging. I finally finished the little series on lists in Scheme, which is one of the few actually technical series of posts that I’ve written. These posts take a bit more energy and thought to write out, but they help me get my thoughts together. If anything is going to eventually drive traffic to this blog, it surely will be these types of posts. It’s questionable how much traffic posts on Scheme will drive here as it’s not a widely used language. But after SICP they may take a turn to a more pragmatic language.
I do have some reservations about trying to build this blog on trendy topics which almost seems to be a requirement to having a popular site. I’d be content with having a few hundred readers a month which I may be able to do with a more narrow focus which is interest based. I’m still working out what that will be. Programming language design and interpreters would undoubtedly not draw as much traffic as would writing about the latest web frameworks, but they’re more interesting from a hobby perspective to work with.
In the mean time before getting focused on building this blog I’ll keep hacking away with Scheme and SICP. From there I take a bit of a detour back to algorithms to build up my chops. In four or five months I should also have completed the Discrete Math specialization on Coursera and be in a better position to understand the material in the Types and Programming Languages book.
Anyway, until then, hopefully the distractions keep to a relative minimum and within 7-8 months I’ll be able to look back and say I finished SICP.