What I’ve Been Up To Lately

February, despite the extra day, sure went quick. At the end of January, I was in San Francisco attending the Association of Alternative Newsweeklies annual Web Conference. Before the conference I was starting to feel sick, but during the conference I somehow got better. Then, a few days upon return to Tucson, I relapsed and spent most of the rest of the week with a fever, coughing and generally feeling miserable. Then, a week after finally getting over that bug, I wound up getting sick again; this time it was something intestinal.

I’m all better now, but the point of bringing up being sick for too much of February is that it’s not conducive to productivity. At the AAN Web Conference we announced our new product, and the good news is that everyone wants it. But the bad news is that everyone wants it yesterday, and it’s something that we’ve only just announced, not something we can start selling. (It’s also not a boxed product, but rather an improved framework for developing and maintaining our customers web sites. As such, there will be a non-insignificant amount of setup work and time to get a client’s site into the new framework.) So I wish February didn’t have to go quite so quick, since there’s quite a bit of work still to be done.

I wasn’t too much involved with the development of this product before the conference, but I have been since. I’m glad I am, because I’m pretty darn excited about it. In addition to allowing clients to more directly manage the layout, style and functionality of their sites, it should help cut down the amount of development time we spend on doing site redesigns and allow new employees get up-to-speed quicker. That’s important, because there is already enough for a new developer to learn, considering we have both a proprietary abstracted database layer (Gyrobase) and proprietary programming language (<ev>).

Speaking of <ev>, that’s what I’ve been spending just about all my free time working on improving. Currently, the language’s parser and evaluator are written completely in Perl. While you might think this is a recipe for slowness — an interpreted language running on top of an interpreted language — it actually holds up reasonably well. But that’s not to say there isn’t lots of potential for improving performance, there is.

So, I’ve spent many nights and weekends in January and early February creating a compiler and virtual machine for <ev> written in C. In 2007 I had spent a weekend here and there writing an <ev> parser in C, mostly for the purpose of being a syntax validator. But it’s secondary purpose was to be the basis for this compiler and VM I’m now writing. It’s actually come quite a way. For instance, it successfully compiles and runs code that sets and displays variables. Though there’s still many more months of work ahead to get it to interact with the massive amounts of Perl code that would be impractical to re-implement in C, plus support for loops, conditionals, and math operations.

Truth be told, this compiler/VM has become a bit of an obsession. When I discovered that a compiler and a VM weren’t really such complex things and were well within my abilities to write, I haven’t been able to stop thinking about how to go about implementing them for <ev>. And it’s actually been a lot of fun.

Post a Comment

Your email is never shared. Required fields are marked *

*
*