
Andrew Coppin
OK, so... If you were going to forget everything we humans know about digital computer design - the von Neuman architecture, the fetch/decode/execute loop, the whole shooting match - and design a computer *explicitly* for the purpose of executing Haskell programs... what would it look like?
Back in the eighties (I don't remeber exactly when), Thomas Clarke, Stuart Wray and I got together to think this through (we had the possiblity of funding to make something). We had lots of ideas, but after much arguing back and forth the conclusion we reached was that anything we could do would either be slower than mainstream hardware or would be overtaken by it in a very short space of time. I'm not sure that the conclusion still holds because conventional architectures are approaching an impasse, but there's a lot of force left in the arguments: most of the improvements I can think of also benefit imperative languages, so if they're worthwhile they'll happen anyway. One of the things that is different now is the availability of parallelism, but the mainstream is working pretty hard on that. There's an opportunity there, in that functional languages have some nice properties when it comes to parallel execution, but to make an impact we'd have to get on with it pretty sharpish. -- Jón Fairbairn Jon.Fairbairn@cl.cam.ac.uk