Q-0(ID:5457/q::003)


subset of B-0 designed to model D-0 on the UNIVAC I


Related languages
B-0 => Q-0   Subset
D-0 => Q-0   Simulator for

References:
  • Berger, Paul and Donald L. Sullivan "Data processing compilers for small card reading computers" view details Extract: Introduction
    The "D-Zero" compile,~ used by the New Univac Computer to prepare its own programs, is the first "English" -- natural language -- compiler written for a computer having only punched card input and punched or printed output, The D-0 compiler is a Member of the Flowmatic System of compilers. Processing statements are similar to those used by FlowMatic for Univac I and II and the Air Force AIMACO Compiler for the Univac II05. Additional "verbs" have been added to the language which apply to the card input and output and the on-line printer.
    In building this compiler, several of the problems that arose developed from the nature of the small computer itself. This computer's sole input-output medium is the punched card. There is no secondary tape-storage available for the storage and maintenance of the compendious records necessary to produce completely unlimited programs, Hence decisions had to be made to set reasonable limitations upon the overall size of the problem input to the compiler (as related to the size of the computer), while also enabling a majority of applications to be programmable.
    Further, the breakdown into components of the compiler itself was designed to minimize the intermediate data recording.
    The computer is designed so that the reading, processing, and punching operations can be carried on simultaneously since compete buffering of input and output is supplied by the computer. In order that programs may take advantage of this feature, they must include the required program-interrupt instructions as well as the coding necessary to handle the flow of the data and to execute operations. The program-interrupt instructions must be executed within certain time intervals. Otherwise, input data may be lost or the overlap of the output punching may not be accomplished. Since the title factor is critical, a heavy burden is placed upon the compiler to insure that the program-interrupt instructions are inserted properly in the object program.
    The computer is a drum computer with high internal computing speeds. To take advantage of this high computing speed, storage locations must be assigned so as to minimize losses due to drum-access time.
    The computer automatically assigns all storage locations on the basis of initial latency considerations.
    An innovation in the computer is the treatment of the editing of data as a separate function, independent of the processing operations,
    The independent generation of the editing coding allows card design to be tree of computer-word considerations, Card designs can be intricate if desired and are consistent with previous 90-column-card conventions, The presence or absence of specific punches may be decoded and interpreted to represent fields and sub-fields, Thus, the processing coding need not edit fields since all input fields are stored in a normalized position within computer words, and all output field s are placed in storage in the same manner. Only an occasional shift to align decimal points is required within the generated subroutines.
    The data descriptions describe the input-output items, 90-column cards, and lines of printing. The compiler also provides "table-search" and "look-up" features at the pseudo-code level. The user is permitted to load and search tables either by locating an argument or by calculating the address of a relative position within a table area.
    Use was made of the Univac I in building the compiler and its library of generators . An assembly-minimizer system, X-2, which runs on the Univac I was used to process the coding segments of the compiler.
    This system allowed the pieces of the compiler to be written with symbolic addresses while using the Univac I to do the work of assigning machine storage addresses under minimal latency considerations. The library of generators for "D-Zero" was constructed by using a compiler (Q-0) that runs on Univac I to produce the minimal-latency-coded generators. The Q-0 compiler is a modification of Flow-matic which uses the assembly-minimizer system X-2 as its final processor.
    The D-0 compiler consists of five phases -- translation, selection and generation , minimization, allocation of storage, and assembly-processing . The differences and likenesses of these phases to those of previous compilers will be discussed. Operating experience with the compiler will be described .

          in SESSION: Automatic programming: from the manufacturers view details