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?

Thesis mysteries and frustrations

Ahead of my PhD defence tomorrow, I'm digging out this half-finished draft and getting it posted. At the end of June, I finally submitted my PhD thesis. As the work-over-time curve went up in the preceding months, I became increasingly struck by the sheer open-endedness of the thing I'm writing. Many aspects of writing and … Continue reading Thesis mysteries and frustrations

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