SLP is based on Goguen's work [Goguen 1992][Goguen 1975] in General Systems Theory (GST) on the nature of objects and systems. As a very brief intellectual history of GST, one might say that it started with the notion of feedback. Conceived to explain the behaviour of metabolic systems, this notion was soon seen to apply to other kinds of system, such as economic, electronic, and mechanical. This lead to a search for other universally-applicable properties and styles of description, from which originated the disciplines of cybernetics and General Systems Theory. To avoid misinterpretation, we stress that SLP itself has nothing to do with feedback, which is mentioned only because it is where GST began.

Goguen's work is based on the branch of mathematics known as category theory. We shall not attempt to describe this here, but shall merely say that a category is a mathematical structure, in the same way that a group, set, or vector space is. There are operations for constructing new categories and parts of categories, from old. One of these, which we use in describing systems behaviour, is called ``limit''. Categories can be studied as mathematical structures in their own right, but one can also use them as ``containers'' or ``workspaces'' which hold other mathematical or computational structures, such as logics, or - as here - object and system descriptions. In this setting, they can abstract common properties from a wide range of different situations, and they often turn out to have a remarkably wide-ranging applicability, as well as coherence: categorical descriptions of one situation often snap together with those of another like Lego, even when this was not originally intended.

Goguen's work applies this universality to General Systems Theory, formalizing the notion of an ``object'', and of what it means for objects to be composed into systems. It uses these concepts to explain phenomena in concurrent systems - inheritance, deadlock, and so on - doing so in a very general way which applies not only to computer systems, but also to electrical circuits, systems described by differential equations, and many others.

The generality of these foundations means that SLP can be equally general. Speaking technically, objects within a system of interacting objects can be described categorically. The behaviour of the entire system is then given by applying the ``limit'' operator to the individual objects and their interactions. This applies equally to computational systems as to any others, and means that the behaviour of a system of interacting computational objects (such as text fields and hiders) is the ``limit'' of the behaviours of the individual objects. Because the limit operator has well-defined mathematical properties, as well as providing a particularly simple conceptualisation of system behaviour, this gives us a secure and simple framework to support us in designing a language to describe systems. As can be seen with Web-O-Matic, it also enables the language to be very parsimonious.

As well as Web-O-Matic, SLP has been applied to an experimental OOP version of Prolog, an object-oriented spreadsheet front-end, and an extension to Eqlog [Goguen 1985] for specifying systems.

Sat Oct 12 23:35:52 BST 1996