Interpreter Project: Functions

Function declarations and function calls. This looks like a real language now. Of course there is no standard library, no networking library, input / output library, etc. It is apparent to me now that the language definition is relatively easy. It is all the supporting libraries that constitute the bulk of the work.

Proxies are a tool used for metaprogramming. They allow you to reach into common object operations, such as getting and setting properties, and make them do whatever you want. All it takes is wrapping an object in a call to `new Proxy` to open up a magical realm.

Abusing Proxies for DSLs

Interesting DSL created in about 100 lines of Javascript. I wonder if it could be duplicated in Ruby.

Interpreter Project: Control Flow

Branching and looping, two very critical pieces of any Turing complete programming language, are now available. With all of the other work that has been done these features were quite easy to implement as well.

Anyone can say they want to "change the world" and that "it's not about the money" — but talk is cheap — so we made our mission legally binding. At a time when the world sometimes seems totally devoid of integrity, we really just wanted to create something with unquestionable integrity.

Building Ghost

Love this. A ray of light after months of disturbing news from tech.

Interpreter Project: Statements

A lot of work went into this section. Statements were added to the grammar, as well as variable declarations, variable assignment and scopes.

Interpreter Project: Evaluating Expressions

The interpreter code is now in place and working. The foundation on which the rest of the Lox language will be created is done.

Canonical recently released Ubuntu 18.04, the company's latest iteration of its popular Linux distribution, nicknamed Bionic Beaver. Ubuntu 18.04 is a Long Term Support (LTS) release and will receive updates and support from Canonical until April 2023. But more notably... Unity is gone. GNOME is back. And Ubuntu has never been better.

Scott Gilbertson

I just set-up 18.04 on an old Macbook Air and I'm having a lot of fun with it.

Interpreter Project: Parser

Getting deep into the Lox language now. The parser is where the syntax of a language lives.

Interpreter Project: Metaprogramming

A bit of a side-step here to generate the many classes needed to store the structure of the Lox code to be run. I have Ruby do the hard work for me.

... programming for the web has always meant one thing: writing JavaScript. Even after 23 years of criticism and controversy, it’s still the web’s programming language.

Tom Black - Ruby on WebAssembly

Goodbye Javascript, and good riddance!

So here’s my advice for anyone who wants to make a dent in the future of web development: time to learn how compilers work.

Tom Dale - Compilers are the New Frameworks

Yep... working on it.

Interpreter Project: Scanner

Finally some progress on actual interpreter code. The scanner code is in place and generating tokens. Nothing much happens with them other than being printed to stdout, but it is progress.

Interpreter Project Shakeup

I should have spent a bit more time with that interpreter book before committing to use it for this project. I would need much more time to learn Scheme than I want to spend.'s up to the developers, designers, entrepreneurs and technology leaders to create a version of the open web that also happens to be the best version of the web.

Bringing people back to the open web

I agree that well built products will be required to lure people away from the walled gardens like Facebook, but that is not the only thing that is needed. There also needs to be a viable business model that doesn't include charging people (because they are already accustomed to using these tools for free), or monetizing their data in some way (which would put us right back into the situation we are in now).

Interpreter Project Boot

This is the second article in the Building an Interpreter series. The project is up and running on Github and some exercises from Chapter One of Essentials of Programming Languages have been written.

...the agonizing lack of thought that city officials put into making healthy, multi-modal streets and the lack of any modicum of seriousness given to non-car modes of transportation.

The Disgraceful Dockless Drama

The situation is also bad in the suburbs. Where I live the bike lane situation seems entirely random. Some roads have plenty of room for car lanes, bike lanes and parking while other roads have room only for car lanes, and some don't even have sidewalks. It would be nice to see a shift towards smaller electric vehicles everywhere.

CSS SANS is the font created by CSS, the programming language for web designing and typesetting.

This is great. The same kind of 'I just made it because I could' attitude that I want to focus on.

Building an Interpreter

An introduction to a series of articles on the creation of a little programming language. The goal is to just to have some fun with building a interpreter.