ejh@sei.cmu.edu (Erik Hardy) (11/24/89)
The Software Engineering Institute announces the Serpent User Interface Management System, Alpha Release 0.7. Serpent is available via anonymous ftp from expo.lcs.mit.edu (18.30.0.212) and can be found in contrib/serpent.tar.Z. The compressed tar file takes up about 1.54 MB. Serpent Alpha Release 0.7 represents a significant change over Alpha Release 0.6, in terms of directory structure, file names, and usage. There are new functions/capabilities, and some new demonstrations. See notes/README for more information and to get started. Serpent represents a new generation of User Interface Management Systems which manage the total dynamic behavior of an interface and which allow applications to remain uninvolved with the details of the user interface. Serpent is a UIMS which is designed to manage the specification and dynamic behavior of (relatively) arbitrary toolkits. It provides for a fixed application programmer interface across changes in toolkits. This allows an application to evolve from one toolkit to another, and Serpent manages all of the interactions between the toolkits. There is a language which is used to describe the user interface and its dynamic behavior. There is an editor (under construction) which will allow the interface to be built using standard type drawing facilities. Only the language and its supporting software is being released at this time. The language is very simple for specifying simple interfaces ("Hello World" is reproduced in its entirety following the text) and is powerful enough to provide for drawing and visual programming demonstrations (both are included in the released software). Serpent is intended to be used either with an application (in a production environment) or without an application (in a prototyping environment). There is an interface description language used both by the application to describe its interface to Serpent and by the toolkits to describe their interfaces to Serpent. Applications and toolkits written in either C or Ada can be used with Serpent, although the interface description mechanism is designed to be extensible to other languages. The use of Serpent depends upon the types of toolkits which have been integrated into it. The released version of Serpent is based on the Athena Widget Set under the X Toolkit. The usage of the toolkit includes moving and resizing capability for widgets and point specification capabilities for form widgets (to allow pointing for the positioning of new widgets). The Hello World program is: #include "saw.ill" ||| OBJECTS: hello: label_widget {ATTRIBUTES: label_text: "Hello world"; }