[comp.windows.x] Xhibition Presentation: Ada Interactive User Interface Builder

jpl@esl.UUCP (Jim Leege) (05/25/89)

Since mid-1987, a team of software engineers at ESL, a Subsidiary of
TRW, has been developing an interactive user interface builder using 
X Windows and Ada.  The system is called GRAMMI, an acronym for 
Generated Reusable Ada Man Machine Interface.  The GRAMMI system has
been released internally and is being used on other ESL projects.
The GRAMMI development team will be offering a technical presentation
about the system at 3:00 PM on Wednesday, 28 June, at the X'hibition
Conference in San Jose, California.

GRAMMI was initially developed on monochrome and color SUN 3's running
under UNIX 4.2 R 3.4.  The GRAMMI system and the GRAMMI-to-application
interface code it automatically generates are written in Ada.  The
public domain X-to-Ada binding from Science Applications International
Corporation (SAIC) was used to bind GRAMMI to X Windows at the Xlib
level.

GRAMMI has three main sub-systems:  the User Interface Editor (UIE),
the MMI Software Generator (MSG), and the GRAMMI Application
Environment (GAE).  The GRAMMI user composes screens from within the
UIE, selecting GRAMMI Widgets (buttons, fields, data plots, forms,
resource managers, tuners, etc.) from the MMI Parts Library and
customizing them by filling out their attribute forms.  (The MMI
Parts Library is extensible.  Projects can use the existing widgets
or add their own.)  As screens are composed by the UIE user,
corresponding Screen Description Files (SDFs) are composed inside the
UIE.  The user invokes the MSG to produce application interface code
from the SDFs.  The application developer connects the application to
the interface and binds these with the GAE to produce the target
system.  If the target system operator doesn't like the lay-out or
colors of the MMI, he or she can change them with the UIE, and rerun
the GAE with no code rewriting or recompilation!

For further information, call Karen Mackey, the GRAMMI Program 
Manager, at 408-743-6472.