Programming Research Group Technical Report TR-12-91

Getting your wires crossed

Geraint Jones

1991, 16pp.

Things should be as simple as possible "and no simpler", so they say. This paper is about simplifying a construct in Ruby, to reduce the complexity of the algebra without sacrificing expressive power. Ruby, for which Mary Sheeran is largely responsible, is a language of relations and a collection of rules -- equalities -- for algebraic transformation of expressions in that language.

The presentation here is by way of being a natural history of the combining forms that build state machines. It shows that over time the operators have evolved as we have been able to simplify calculation by chosing to name combining forms which have simple properties, rather than naming those forms which correspond to the original intuition about the application area, and this apparently without making it significantly harder to relate the calculations to reality. Whether there are any general lessons which can be drawn from this history, I leave to the reader.


This paper was presented at the Glasgow Functional Programming Group Workshop, Portree, Skye, Scotland, 12-14 August 1991, and has also been published in Functional Programming, Glasgow 1991, eds. Rogardt Heldal, Carsten Kehler Holst, Philip Wadler, Springer Verlag, Workshops in Computing, 1991.

It is available as a 83,243 byte compressed PostScript file.