Beginnings
of Visual Compilers
It occurred to me the other day that I may
have been the inventor of the first Visual Compiler.
Sometime about 1976 while contracting at Lear
Siegler I has occasion to work on the MCDU (Multifunction Control/Display Unit)
software for a military aircraft.
Up until the end of 1973 I had been software
manager at Cascade Data - a small business computer manufacturer
in Grand Rapids Michigan. While with
Cascade Data I developed along with a second person a RPG compiler for which I
used techniques of Cheatham that I had picked up in a two week compiler
construction summer course at Cornell.
I can't provide a full reference at the present time since the course
materials are currently in another location.
While developing the software for the MCDU it
occurred to me that I could use similar techniques to create a compiler to
create tables to be traversed in response to key pushes that were made by the
pilot in order to make selections via the MCDU display.
Therefore, I create a Backus-Naur Form (BNF)
syntax for MCDU entry to change the display due to particular Line Select Key
and Mode Key pushes or to indicate that data entered in the scratchpad line of
the MCDU should be selected as the new value of a particular field.
This is quite similar to the current use of
mouse clicks on buttons or other widgets of a Windows form and entry into a
dialog box.
Then when a key was pushed on the MCDU, the
portion of the table for the currently displayed page was looked up to
determine the action associated with the key.
Then the action was executed.
The action might cause a new page to be displayed or, for instance,
convert scratchpad data to a numeric value of a particular format, evaluate the
converted data for within range and the like, and, if valid, cause a particular
aircraft variable to be modified. That
is, one action for each particular key push event where each action performed a
specified task.
Hence
the action code had become more complicated due to the necessary logic to
determine the reason that the action had been entered thus causing extended
code validation as well as problems that had to be solved in order to release
the new FMCS version.
Anyway,
as with the current visual compilers such as Microsoft Visual Basic, C#, C++,
and such there was an action routine for which the code was to be supplied
associated with each widget. With the
current compilers, the programmer can place widgets into a display form and
then click on them to allow for naming the action and supplying the code. Then, when the compiled or interpreted
program is run, clicking on the displayed widget causes the supplied code to be
executed.
With
the MCDUs, the MCDU has its standard configuration and my compiler created the
internal tables (which the Visual compilers must do) to cause the associated
action to be executed.
Therefore,
unless someone comes along that did it prior to 1976, it seems to me that I can
take credit for being the first to develop the concept.