Arithmetic is the Simplest Thing That Could Possibly Work

In an essay by Marvin Minsky I read over the weekend, Communication with Alien Intelligence, Minsky explores the idea that arithmetic spontaneously arises in computing systems, analogously to the spontaneous assembly of amino acids in the Miller/Urey Experiment. In the process of exploring the first few thousand simplest Turing machine programs, he and his student…

Thunderbird’s Ridiculous Menu Structure

It so happened that, having just installed the beta of Thunderbird 1.5, one of the first things I wanted to do was compose an email. Early on in the message, I typed the word “summarise”. This spelling is correct in UK English, but clearly is not in US English, as the check-spelling-as-you-type indicator flashed up.…

Restartable Nested STM Transactions

I’ve just finished reading [Versioned Boxes as the Basis for Memory Transactions](http://research.microsoft.com/~tharris/scool/papers/cachopo-scool2005.pdf), which proposes some neat extensions to the STM model to make it more suitable for applications with long-running transaction and high contention. It also solves another problem of traditional STMs by guaranteeing that transactions will always see a consistent state during execution. These…

GRIN as intermediate representation for Lazy Functional Languages

Shae Erisson points out Urban Boquist’s GRIN thesis. It’s very interesting: the choice of the GRIN intermediate language allows a number of good optimisations. A control-flow analysis is done to enable inlining of evals. The information the analysis computes is similar to the kind of information you get from dynamic profiling in a Self-like system…