ALGEBRAS, THEORIES AND FREENESS: AN INTRODUCTION FOR COMPUTER SCIENTISTS

In the last ten years or so a lot of algebraic ideas have wormed their way into Computer Science, particularly in work connected with correctness of compilers, with abstract data types and with specification. We have been among those responsible [Burstall and Goguen 1980, 1981]. Most papers begin with a compressed section of definitions, but it is difficult for the well-disposed outsider to make much of these. Reference to books for algebraists, such as Graetzer [1979], or even to those angled towards automata theory [Arbib and Manes 1975] may not be encouraging. So it is perhaps worthwhile to present some of the key algebraic ideas in a leisurely and, we hope, intuitive form, emphasising the Computer Science connection. Some water has flowed under the bridge since one of us was last involved in an attempt to do this [Goguen, Thatcher, Wagner and Wright 1975].