Web-O-Matic: using System Limit Programming in a declarative object-oriented language for building complex interactive Web applications.
Presented at DOCUMENT PROCESSING AND SGML, Workshop of project DAVID - Algebraic Document Processing BRAGA - Portugal 2-4 September 1996.
Web-O-Matic is a compiler and run-time system for the WOM programming language. This is a declarative object-oriented language in which Web authors can build complex interactive Web applications.
WOM extends HTML, augmenting it with constructs for creating instances - text input fields, reuseable imagemaps, and other components of a Web page - which persist throughout the life of an application. There are also constructs for setting constraints between these instances. Considered as an OOP language, WOM has two novel features: it doesn't use methods or messages, relying instead on equational constraints; and it can handle input and output in a natural way.
The Web-O-Matic compiler compiles WOM programs into code in a conventional object-oriented language (currently OS/2 Object Rexx, but Java would also be feasible) which resides on the Web server. On receiving an HTTP request, the server translates it into messages which it sends to these server objects, and to which they reply by sending back HTML.
We are using Web-O-Matic in work for the Institute for Fiscal Studies, as a tool with which economists can connect their economic prediction programs to the Web without needing to know CGI programming.
WOM and Web-O-Matic are based on System Limit Programming (SLP), a new programming paradigm arising from Goguen's application of category theory to general systems theory. A system of interacting components can be described as a categorical diagram; the behaviour of the system is given by the limit, in the category theoretical sense, of the behaviours of its components. This provides the basis for an extremely general method of programming. So far, we have experimented with four applications of SLP: Model Master, an object-oriented spreadsheet programming tool; Systematic, an extension of the equational language Eqlog for systems specification; an object-oriented extension of Prolog; and Web-O-Matic.
|Postscript copy of paper|
|HTML copy of paper|
|Lou Burnard's report on the workshop|