https://web.archive.org/web/20131225040636/http://conal.net/...
> Why limit the question just to functional programming?
There was already an article about the general case :)
http://web.stanford.edu/class/cs242/readings/backus.pdf