BLODI-G(ID:7889/)

Grpahical programming system 


Bell Labs Holmdel, NJ experimental graphical compiler for the Graphic-1 system, based on the BLODI-B system but generalised to a great set of problems. The BLODI-G system actually used two computers, it had a visual compiler written in GRIN94 to write the BLODI-B code, which was then run on a remote IBM7094 system, returning to the display and printable on microfilm. This permitted serial incremental design of systems etc


Related languages
BLODI-B => BLODI-G   Adaptation of
GRIN94 => BLODI-G   Written using

Samples:
References:
  • Robbins, M. F. and J. D. Beyer "An interactive computer system using graphical flowchart input" pp115-119 CACM 13(02) February 1970 view details Abstract: An interactive computer system operational on a graphical computer terminal is described. This system was designed to demonstrate a method of programming by computer interpretation of a flowchart. The user draws a description of a sampled-data system and specifies an original input signal on a display oscilloscope. This graphical description is transmitted to a large scale computer. The design is simulated, and a graphic representation of the processed signal is returned to the scope. A successful design may require numerous modifications of the original design. A graphical interactive system provides an environment to perform this iterative process efficiently and effectively. DOI Extract: Introduction
    Introduction
    One of the major drawbacks in using a eomputer effectively to solve engineering problems is that it is usually necessary to insert a programmer between the machine and the engineer. In an effort to bring the user into more direct contact with the computer, an interactive system has been designed which enables him to "talk" directly to the computer in a language with which he is familiar.
    Quick response time is coupled to a partially self-instructive program to produce an environment which permits the engineer to represent his problem by drawing a flowchart with a lightpen at a graphical terminal.
    This method of programming by computer interpretation of graphical flowcharts can be applied to a variety of engineering and scientific problems. The specific application which is presented here is concerned with processing a signal through a sampled-data system. Sampled-data systems are those in which the information appears as a sequence of pulses or numbers. This information is usually quantized in amplitude and is only available at specified instants (usually equally spaced). This is in contrast with continuous (analog) systems in which the information is available as a continuous function of time. To restate: the main difference between these two systems is that whereas in continuous systems the information is available at all instants, in sampled-data systems the information is known only at certain times--the sampling instants [1]. A graphical description of the system and the original signal represents the input to a large scale computer.
    A graphical representation of the processed signal is returned to the graphic terminal as the output of a successful interaction.
    The interactive system known as BLODI-G (BLOck Diagram-Graphics) is operational on the Graphic 1 terminal at Bell Telephone Laboratories in Holmdel, New Jersey. The Graphic 1 [2] console consists of a PDP-5 computer with a 4096 12-bit word memory, a cathode-ray tube display, additional buffer storage of 4096 36-bit words for the storage of display information, and several input devices. Graphic 1 operates as a stand-alone computer unless the user requests an interaction with the IBM 7094. Interactions are processed on a between-job basis interlaced with the current batch tape operating under the BESYS7 monitor. The BESYS monitor system is a batch monitor system which supports four data channels on the 7094. Two of these channels are equipped with magnetic tape drives and two with 1301 disk units.
    Programs and data may be stored permanently on disk and accessed at any time. Jobs are normally taken sequentially from a batch input tape, processed, and the output written on the batch output tape. The input source may be changed by an appropriate system control eard to any other file known to the system (in particular, to permanent disk files). The system "between-the-job" routine recognizes requests from external devices (such as remote typewriters, and the Graphic I terminal) by testing the 7094's external sense lines. If a request is present, the system processes the job originating from this device prior to processing the next job on the batch input tape. The maximum delay time before a request is serviced is 6 minutes with an average of approximately 1 minute.
    The development of BLODI-G was influenced by the existence of the BLODI-B [3] compiler. The compiler assembles machine language code to simulate a sampled-data system described in the BLODI-B language. The graphical system, BLODI-G, enables a user to describe the system he wishes to simulate in block diagram form, using components such as amplifiers, filters, and delays. These components are provided as basic elements of both the BLODI-B language and the graphical system. A 7094 program acts as the interface between the flowchart and the BLODI-B compiler during an interaction. (Non-graphical usage of BLODI-B requires the system description on punched cards in a prescribed format. The cards are submitted for compilation and execution as an over-the-counter job.)
    Figure 1 is a simplified flowchart of the BLODI-G system. The user first constructs his diagram on the scope face of the Graphic 1. The blocks must be interconnected to denote the path of the signal through the system. The necessary parameter information, such as gain of an amplifier or units of delay, is entered through the typewriter keyboard. When the diagram is complete, the 7094 is signaled for an interaction. A 7094 program translates the diagram to input for the BLODI-B compiler, which is then called on to assemble machine code to simulate the described system. The machine code is executed, processing the original input signal, collecting the output samples, and returning them to the display scope at the conclusion of the interaction.
    A more detailed description of the programs which are contained in the BLODI-G system can be found in Sections 2 and 3. Several of these programs are written in GRIN or its companion language GRIN94 (GRaphical INput). The GRIN and GRIN94 languages are high level graphical programming languages that permit the generation and manipulation of display information, and provide statements to control real-time man-machine interaction.
    The two languages are similar (both are packages of macros used with the FAP assembler, and post processors which produce actual machine code). GRIN is used to produce code for the PDP-5; GRIN94 is used to produce the code used on the 7094. Section 4 describes an example of an electronic system whose performance was simulated using BLODI-G.
    Extract: Graphic 1 Program
    Graphic 1 Program
    The Graphic 1 terminal can operate as a stand-alone computer and is used as such when a flowchart is drawn by the engineer. The PDP-5, under control of the Graphic 1 BLODI-G program, generates a large amount of instructive, static display information, which is stored in the associated buffer storage for later manipulation. The computer then remains in a waiting loop with its initial display, Figure 2, on the scope face. The various sub-routines which are part of the resident program are ready to be executed under the direction of the user via the lightpen and mechanical buttons on the console.
    Each display contains some text options called light buttons. The text is designed to be instructive but concise, and each option is associated with a subroutine in the program. A light button is selected by pointing at it with the lightpen and opening the shutter. Release of the shutter causes the subroutine to be executed, resulting in the appropriate action related to the option selected. For example, Figure 2 contains the initial display and the options available when starting to draw a flowchart. Figure 3 contains the display on the scope after selecting the option "BOX." This display contains a list of all of the basic elements, or box types, available in a BLODI-G simulation and four additional light buttons to direct the succeeding displays.
    The BLODI-G program is designed so that the user can supply all of the information needed to execute the simulation on the large computer. To accomplish this, several of the options require text input from the typewriter keyboard at the console. This text input falls into two general classes:
    1. Title information for individual blocks and for completed diagrams.
    2. Parameter values associated with a particular block which are required when a simulation is to be executed on the 7094, i.e. gain of an amplifier, or cutoff value for a clipper.
    The BLODI-G program has three distinct paths, each having numerous subpaths. The user directs the flow of program execution by selecting the text options displayed on the scope and performing the specified tasks. The primary path enables the user to draw a block diagram of the system which he wishes to simulate. Some of the light button options available along this path provide a list of all of the components (boxes) which are coded in BLODI-B, and the parameter information required for each of these boxes. The user selects the various components which make up his diagram and places them at the desired locations on the scope. These boxes must be interconnected to show the direction of the signal through the system. Boxes in this system have a maximum of four input pins. The pin number to which a wire is connected is displayed at the end of the connection to avoid making more than one connection to the same pin. The latter would result in a fatal error during BLODI-B assembly.
    The necessary parameter information must be entered for each of the boxes in the diagram. This information is linked internally to the selected box and can be retrieved for review or revision. The flexibility associated with entering and deleting parameter information makes the BLODI-G system especially desirable as a tool for engineering design.
    There are several additional features available along this path which enable a user to repair errors in drawing and to title the diagram and/or individual components. Any display element in a diagram can be repositioned on the scope face, or it can be deleted and redrawn.
    BLODI-G contains an elaborate filing system which is entered when the light button LIBRARY is selected. The current diagram is filed in the library with a user-typed name and with computing mode information required by the BLODI-B compiler. A special feature of BLODI-B enables one diagram to be used as a single block in another diagram in MACRO-like form. The user has the option of filing a diagram in the library as a "super" which results in the addition of the user-typed name associated with this diagram to the list of basic boxes. When selecting this filing path the user is directed through a sequence requesting information about the parameter names for this box. The boxes added in this fashion may be used exactly as boxes which are a permanent part of the system.
    Through the LIBRARY path the user may retrieve a diagram previously filed for inspection or editing. Filing information may be changed if necessary and a clean page may be obtained for drawing a new diagram.
    The third major division of the Graphic 1 program enables the user to call for an interaction with the 7094 to accomplish one of four possible results.
    i. The major interactive capability consists of compiling and executing code represented by the engineering block diagram. Output signals are plotted versus sampled time units and this plot is returned to the scope face at the conclusion of the interaction. Section 3 describes the 7094 computer programs which accomplish this result.
    ii. The user may save the current state of the graphic data structure for retrieval at a future session at Graphic 1. This information may be stored on a disk file associated with the 7094 or card images may be obtained which can be loaded through the card reader at Graphic 1 to regenerate a diagram or diagrams drawn at a previous time.
    iii. A retrieval light button enables a user to restore the state of the Graphic 1 from disk file to a previously saved state.
    iv. A microfilm copy may be obtained of a diagram as it appears on the scope face. Figures 2-7 were obtained using this feature.
    Extract: IBM 7094 Programs
    IBM 7094 Programs
    The 7094 programs operate under the control of the BESYS-7 monitor system. Much of the simulation exeugtion time is spent in system operations such as loadcnt programs which reside on a number of semipermanien disk files. The 7094 processing is multilevel. Initially a copy of the graphical data structure in the Graphic 1 buffer, together with certain locations in the PDP-5 which contain pointer information, is transmitted to the 7094. A program written in GRIN94 decodes these graphical data and creates card images representing the various blocks in a diagram. These card images are stored on a scratch disk file and used as input to the BLODI-B compiler. When the diagram has been completely decoded, the BLODI-B compiler is called on to read this disk file as though it were the normal input file.
    When errors are detected, appropriate error messages are transmitted to the teletype at Graphic 1 to notify the user and the 7094 run is terminated. If a diagram assembles successfully, the system is directed to execute the code for the specified time interval. A specially coded "box," which must be part of a diagram if results are to be transmitted to the Graphic 1 screen, collects the samples at each unit of time. The details relating to this box (MIK) are described in the next section.
    BLODI-B has the property that new elements may be easily added to its set of basic elements. A special purpose box, named MIK, was added for the graphic application. This box must be included in the users diagram for the output signal of a simulation to be returned to the scope at Graphic 1. It has many properties in common with a 3-channel oscilloscope; i.e. it has a "trigger" input and up to three data inputs. The trigger input, pin 1, operates on each sample rather than triggering the start of a plot.
    Plotting takes place on a sample by sample basis depending on the sign of the sample at pin 1. If it is negative, plotting does not occur. If there is no connection to pin 1, all samples are plotted. The nuraber of samples to be plotted must be specified as a parameter. At execution time adjustments are made to this number if necessary.
    The criteria used are as follows:
    i. If the number of points specified would result in an excessive amount of flicker on the scope, this number is reduced to whatever is acceptable.
    ii. If the simulation run period is smaller than the number of points requested, the number is reduced to agree with the run specification.
    The MIK box gathers the data to be plotted and saves them on a scratch disk file. At the conclusion of the simulation a post-processor program is loaded to convert these data to graphical images compatible with the BLODI-G system. The new graphic structure is transmitted to the Graphic 1 and the 7094 job is terminated. The entire 7094 procedure requires approximately 45 seconds of computer time.
    Extract: Conclusion
    Conclusion
    The value of graphical interactive systems lies mainly in the freedom and ease of changing design until a satisfactory arrangement is achieved. Changes are based on simulation results which are viewed immediately. These changes range fl'om simple parameter variations to complete system reconfignration. The short computer turnaround time between input and output enables the user to maintain continued concentration on a problem. The BLODI-G system has demonstrated the feasibility of taking advantage of these properties of interactive systems. It has proven useful as an engineering design tool by nonprogrammer engineers. Certain intermediate stage system configurations have been simulated which might not have been attempted if more arduous methods of programming had to be used.
    The development of the BLODI-B compiler, the Graphic 1 hardware configuration, and the communication software and graphical languages made the creation of BLODI-G possible.