GDA (Graphical Diagnostic Assistant) Technology
A Graphical Applications Language and Product for Performance Monitoring, Quality Control, and Diagnosis
A graphical language - GDL
While at Gensym, Greg Stanley conceived of the idea of the Graphical Diagnostic Language (GDL), and developed it along with co-workers Eric Finch and Steve Fraleigh and others. We productized the result as GDA, an acronym for “Graphical Diagnostic Assistant”, changed to “Gensym Diagnostic Assistant for marketing reasons. GDL allowed domain experts to focus on the application logic (for filtering, calculations, statistics, recognizing events and recurring problems, diagnosing problems, managing displays, and taking corrective actions), rather than on programming in some text-based language.
This was one of the first true graphical languages, along with LabView and GRAFCET that appeared around the same time. In a true graphical language, a user “programs” starting by drawing diagrams through a graphical user interface, rather than just entering text. The development environment paradigm is “clone, connect, and configure”. That is, the user selects (“clones”) program blocks from a palette, connects them, and then configures them. The graphical objects might represent function blocks like numerical calculators, filters, AND gates, or alarm generators. Or, they might represent action steps in a procedural sequence. The connecting arrows represent relationships between objects, such as passing of input/output information for information flow diagrams. Or, they can represent sequential actions in the case of procedures and workflows. The highest level of the programming language is graphical - text is entered a properties of the graphical objects. This differs from traditional programming where only text is entered.
The picture below shows an example GDA screen shot. The graphical blocks are the “source code” for the logic and actions. Text fields are only comments. A property table of detailed configuration information for a program block is available by right clicking on the graphical object.This view happens to show an operator message display as well, although the operator interface did not require looking at the logic diagrams.