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”

Can We Add Reflection to Machine Code?

It still frustrates me that we can't just interactively bootstrap a self-sustainable programming system from a blank, interactive Unix process with a hex editing interface. Like DEBUG.COM but for the age of the GUI, which you may have realised is around 40 years old by now. I refuse to create what I desire through successive … Continue reading Can We Add Reflection to Machine Code?

Connections between self-sustainability, self-hosting, meta-circularity, and reflection

More thesis headscratchers I have to finally iron out ๐Ÿ˜ฆ Warning: personal notes, rambling, stream-of-consciousness even more than usual! Self-sustainability, Unix Paradigm, Large Scope: we start with a text editor T written in language L. We open T's source code in T and make some improvement. We compile a slightly improved text editor T'. The … Continue reading Connections between self-sustainability, self-hosting, meta-circularity, and reflection

A “File” is just a common address space for processes

(Binary) Files are the* common format for inter-process** communication across space and time***. (*) Because they are compacted; the only (uncompacted) alternative has too much risk of insane space cost. (**) Where the relevant part of the "process" is a flat, numerical address space. Things might be very different in a nested or name-based address … Continue reading A “File” is just a common address space for processes

My Two Absolute, Hands-Down Least Favourite Things in Programming

This essay was sparked by me struggling to write my thesis' Background chapter and finding I had to comprehensively explain several concepts. Hopefully some appropriate slice through it will end up in the actual chapter. (Did I get something wrong? Do set me straight in the comments.) As we all learned in Computing 101, volatile … Continue reading My Two Absolute, Hands-Down Least Favourite Things in Programming

Five Heuristics Guiding My Research Interests

(Alternate title: Five Theses Against The State of Programming?) In summary, they are: Premature Commitment delenda est. Implementation, not design, is the bottleneck. Seek the appropriate level of generality. Transcend the ancestral environment. Code is an optimisation of manual change. 1. Premature Commitment delenda est Everything should be malleable and reversible by default; the subtraction … Continue reading Five Heuristics Guiding My Research Interests