teaching machines

Everywhere Pointer

My five-year-old son wanted to make an arrow. I one-upped him by making four arrows. He liked the shape and called it an “everywhere pointer.” We can make this with the following code: This code makes me realize I should try to add the unary negation operator. Right now I have to verbosely multiply by […]


If we can make 2-D art out of nothing but dots on the paper, it seems we should be able to make 3-D objects out of nothing but spheres. And we now can in Madeup. I added a dot┬ácommand, such that a sphere is placed at every point the programmer visits with a move command. […]

Recursive Objects

Madeup now supports recursion: Including the function definition in the environment of a closure tripped me up considerably, but I think I got it figured out. Or maybe I didn’t. The lattice was generated with this code: Cleaning up the corners is a job for another day.

First-person Math

Nothing brings together the remote reaches of computer science together like writing your own programming language. My abstract syntax tree exploits inheritance and polymorphism and multiple inheritance. My parsing is done in Java while the model of the program is built up of C++ classes. I’ve got tables, stacks, and vectors. Recursion is naturally all […]

First Run of Madeup

I’ve been working on building a mobile programming language and environment for generating 3-D objects. It’s called Madeup. The language uses Logo-like syntax, but it supports closures and 3-D navigation commands. The former is so that you don’t have to type as much. Functions just see variables in their enclosing scope; they don’t need as […]