Okay, it’s been like a week since the last chunk in Software Language Engineering. It’s going to be at least a week before the next update, too, which will—spoiler alert—also involve altering some of the last edition for the sake of clarity and code ethics.
So why have I been taking so freakin’ long with it?
A bunch of things, which I will have the dignity to specifically name, came up. One, writing. I’m still a little slow at it at the moment, but I had a bunch of great ideas that had to go in the books. While I’m typically hesitant to stop with a Java project for any length of time, lest I forget what I was doing, the same rule tragically applies to my other love, literature.
On top of that, I have begun a brief project in game development which has not been chronicled for the blog. It is, on the bright side, finished already. (It is a lot easier than writing a compiler, let alone a compiler/interpreter framework.) It might eventually make it into another tutorial, after I’m finished with my new-and-improved compiler tutorial, as this could easily extend into applying GLSL through Java.
Anybody who has ever been a solopreneur or even a hobbyist programmer knows that this is already enough to set me off balance, and I wish that was it, but it unfortunately is not. Not a million distractions, just a few. I’ve also done a lot of cooking lately for my girlfriend’s birthday, inclusive of a pistachio-orange chiffon birthday cake, tiramisu (as of tonight), and other fancied things such as a Cajun-Indian fusion-food split pea soup. One of these days, I might put those up on the blog, too; but they aren’t sufficiently chronicled and scripted into recipes. I’ve made a few interesting friends on Google+, which have led me to a sequence of (cool headed) debates, discussions, and for some, half-hour-long lectures on such things as the Michelson-Morley experiment and protolanguages & linguistic anthropology. (Mostly history related things.)
The worst part is, I really have been enjoying myself. I do have to apologize, as I cannot, with a straight face, say that the delay has been due to an inconvenience; only a set of distractions. At the same time, I can promise you this: the next lecture will introduce a method of circumventing common applications of reflection using a combination of maps and enumerations; which are very handy when you are dealing with a static set of classes which cannot be expected to change. I will have a fully functioning AST parser by my next chapter, concluding what I consider to be “part one” of the tutorial. Part two will be about taking that syntax tree and transforming it into another language, be it another protocol or a machine code. (I will not be discussing the bulk of machine commands for an amd64 processor, probably ever; but there’s a chance I’ll talk about the structure of portable executables. That’s .exe files—pronounced “eksies”. I might touch on a few other binaries, too.) I can also promise you that I’m going to enjoy bringing it to you.
It might be another day or two before I can dive into the code again, full-force; but I’ll have it together soon. There is a point in one’s knowledge of a subject, at which it can only be furthered through sharing that knowledge with others. I’ve been there for a while in this area.
Thanks for all of your patience!