Notes on “Chains of Meaning in STEPS”

The "Chains of Meanings" tech report (Piumarta 2009) contains a nice application of the OMeta parsing DSL, or perhaps one of its precursors called IS. The task is to compile high-level abstract syntax (concretised as a Lisp Fibonnaci function) to x86 machine instructions. These tech reports, while immensely valuable, are seldom optimised for readability to … Continue reading Notes on “Chains of Meaning in STEPS”

PAINT25 Invited Talk transcript: “Notational Freedom via Self-Raising Diagrams”

(I gave two talks at SPLASH this year. Besides my Onward! Essays submission, I was kindly invited to open the PAINT workshop on Programming Abstractions, Interactive Notations and Tools. Because it was not recorded, and there was no associated paper, I'm posting a lightly edited script here. This is my first iteration of these ideas; … Continue reading PAINT25 Invited Talk transcript: “Notational Freedom via Self-Raising Diagrams”

Ode to Id (Notes on COLA’s object model), Part N

(Previously: Part 1, Part 2) (EDIT 2025-08-05: formalising all this stuff for a paper made me realise that Id's multi-parent mechanism probably does NOT quite suffice to model Self! Will correct in future, for now, be warned...) Id only makes one assumption about existing objects, which is that each somehow has a binder object ("vtable"). … Continue reading Ode to Id (Notes on COLA’s object model), Part N

Ode to Id (Notes on COLA’s object model), Part 2

So far, we have this: function send(obj, selector, ...args) { const method = bind(obj, selector); return method(obj, ...args); } function bind(obj, selector) { if (selector === 'lookup' && obj === VtableVT) return vtable_lookup; else return send(vtable(obj), 'lookup', selector); } Our as-yet undefined terms are VtableVT, vtable_lookup, and vtable (yes, I'm sticking to the paper's name … Continue reading Ode to Id (Notes on COLA’s object model), Part 2

Ode to Id (Notes on COLA’s object model), Part 1

"Open, Reusable Object Models" (Piumarta & Warth 2006) is my most beloved paper of all time. I discovered STEPS half-way through my final year of undergrad and was immediately enthralled by the vision of programming presented for "COLAs", half of which is described by this small tech report. I remember being impatient to finish my … Continue reading Ode to Id (Notes on COLA’s object model), Part 1

People Whose Research Programmes I May Need To Understand

They said that, after my PhD, I should be an expert in my narrow topic. I suppose that's true, if we're talking about precisely the topic embodied in the dissertation. However, from the additional literature suggested to me during the corrections process, and my freer scope since submitting, I've been humbled to discover just how … Continue reading People Whose Research Programmes I May Need To Understand

Notes on the “late binding” of Virtual Memory, etc.

When a DLL/shared object is loaded into process virtual memory, it competes for space with the process' code and data, so its base address is knowable only at load-time. The DLL has metadata ("relocations") describing the address references in its code, and the loader uses this metadata to go through all these references and patch … Continue reading Notes on the “late binding” of Virtual Memory, etc.