[comp.lang.misc] Languages for specifying user-system interaction

becker@ernie.Berkeley.EDU (Beverly Sobelman Becker) (09/19/89)

I'm working on a project for a graduate course on the design of
programming languages, and, since user interface design is one of my
primary interests, I've chosen to explore the use of languages for
describing user-system interaction.  I've found references to work
using state-transition diagrams and BNF grammars, and am interested in
those and any other language-oriented approaches that have been
pursued (i.e, something other than a toolkit/subroutine library
approach).

Any pointers would be much appreciated; I would be happy to summarize
if there is interest in either newsgroup (comp.lang.misc or
comp.cog-eng). 

Thanks very much,

Beverly Becker
becker@ernie.berkeley.edu

[formerly bhs@mbunix.mitre.org]

weh@sei.cmu.edu (Bill Hefley) (09/20/89)

In article <31384@ucbvax.BERKELEY.EDU> becker@ernie.Berkeley.EDU ( Beverly H. Sobelman Becker) writes:
>I'm ... explor[ing] the use of languages for
>describing user-system interaction. 

You might want to explore the Serpent User Interface Management System that
has been developed by some of my colleagues here at the SEI.  Len Bass
(ljb@sei.cmu.edu) headed up the development team.  From the Introduction to
the Serpent SLANG Reference Manual:

"Serpent is a User Interface Management System (UIMS) that supports the
development and execution of the user interface of a software system.
Serpent supports the incremental development of the user interface from the
prototyping phase through production and maintenance.  Serpent encourages a
separation of functionality between the user interface portion of an
application and its functional portion.  Serpent is also easily extended to
support additional input/output technologies.

This Slang Reference Manual describes the model, syntax and semantics of the 
Slang dialog language. Slang is the language within Serpent used for the
specification of user interfaces."

I believe that Serpent is available for Ultrix Vaxen and Suns using X11 in a
beta release version.  Serpent is implemented as three seperate parts: 
the application (which can be written in C or in Ada), the dialogue 
(which must be written in the user interface language called Slang), and the 
presentation, which is essentially a binding between Serpent and whatever 
technology you want, in this case the X Toolkit with the Athena widgets.

Bill Hefley
weh@sei.cmu.edu