TEAM(ID:6009/tea003)

Automatic programming system for Lockheed 


for Translator for Electronic Accounting Machinery

Watt and Wattenburg, Lockheed Missiles and Space Co., Sunnyvale, California 1962

Problem-oriented language for Lockheed missiles. Built using NELIAC, running on IBM 704

Several unique features - early dataflow transfer with "SENSE", and the possibility of anonymous ("dummy") variables.

Places
Related languages
NELIAC => TEAM   Written using

References:
  • Watt, J. B. and W. H. Wattenburg "A NELIAC generated 7090-1401 compiler" view details Extract: About TEAM
    The compiler language, called TEAM, is a problem-oriented language designed for data processing problems to be run on the IBM 1401 computer. Extract: General Description
    General Description
    A. Names must consist of alphabetic and numeric characters and may be up to 18 characters in length.
    B. The language will accept only one statement per card. Entry points in the program are included in this rule.
    C. "FOR" and "IF" statements may not be nested.
    D. Arithmetic statements must consist of an operand, an operator (+, -, /, *), a second operand, a store symbol (=), and a third operand. The simple assignment statement is an exception to this rule; it consists of an operaad, a store symbol, and another operand. Several arithmetic statements may appear on the same card if separated by commas.
    E. All constants and variables must be dimensional before they appear in the program.
    Extract: Statements

    Statements


    A. DIMENSION A(n)


    A is the name of a variable to be dimensioned and n is the character field length of the variable. A may be left out if a dummy variable is to be dimensioned.

    B. IF


    IF A (xxx)      THEN

          -

          -

        ELSE

          -

          -

        CONTINUE


    A and B are variables. The character field length of A must be >= the character field length of B. xxx is a relational term (EQU, GTR, LSS, NEQ)

    C. FOR


    FOR I= A(B)C      BEGIN

          -

          -

        END


    The characters I, J, and K are index register designators. If I is used, index register l will be assigned. If J  is used, index register 2 will be assigned. If K or any other character is used, index register 3 will be assigned.

    A is the initial value of the index register.

    B is the increment.

    C is the final value of the index register.

    D. CALL A

    Execute the subroutine A.

    E. RETURN A

    Return to the main program from the subroutine.

    F. GOTO A

    Transfer to the point A in the program.

    G. READ n A

    If n is blank, read a card into variable A. A must be the last dimensioned variable of a set of variables that total 80 or more characters in length. If A is not blank, read tape n into variable A.

    H. WRITE n A

    Write tape n beginning at A and continuing through sequentially stored variables until a variable is encountered that was initialized with a [orb symbol] punch.

    I. PRINT A

    Print one line on the on-llne printer. The rightmost character of the variable A will appear in print position 132. A must be the last dimensioned variable of a set of variables which total 132 or more characters in length.

    J. FORMS N

    N is a character which specifies carriage control on the on-line printer.

    K. PUNCH

    A Punch one card from variable A on the on-line punch. A must be the last dimensioned variable of a set of variables which total 80 or more characters in length

    L. SENSE N A

    N is a character which specifies various conditions to be tested. For example: SENSE B START If sense switch B is up, transfer to START; if not, go to the next instruction.

    M. HOPPER n

    Select the card read or punched into stacker n.

    N. FORMS n

    N is a character that specifies printer carriage control.

    O. EDIT N (M)

    This instruction assumes that the field M contains an Edit mark and edits N into M.

    P. REWIND n

    Rewind tape n.

    Q. BACKSPACE n

    Backspace tape n one record.

    R. CONTROL MACHINE LANGUAGE

    This instruction allows the programer to insert machine lauguage instructions (SPS).

    S. CONTROL COMPILER

    This instruction flags the compiler to return from the machine language mode.

    T. COGENT

    Self-explanatory.

    U. CONTROL A

    An END card is punched, specifying transfer of control to point A.
          in Proceedings of the 16th ACM National Conference, January 1961 view details
  • Watt, J. B. and Wattenburg, W. H., "A NELIAC-Generated 7090-1401 Compiler" view details Abstract: NELIAC systems for several different machines have been
    generated using the original NELIAC system developed at the
    Naval Electronics Laboratory, San Diego, in 1958. A basic
    "bootstrap" process was used to generate all but the first, i.e.
    the systems were described in the NELIAC language and generated
    by an existing NELIAC compiler. This experience has
    shown there is no inherent difficulty in "building compilers with
    compilers"; indeed, it pointed out many advantages in using a
    POL for constructing programming systems.
    This report presents the results of a project completed in
    May, 1961, in which the NELIAC system was used to generate
    a compiler for the IBM 1401. The 1401 compiler, which runs on
    the 7090 and produces 1401 programs, was described in the
    NELIAC language and generated with the 7090 NELIAC system.
    The reduction in programming time and the improvement
    in documentation of the system were very significant. Extract: Introduction
    Introduction
    In April 1901, it was decided at Lockheed Missiles and Space Company that a probLem-oriented Language and associated compiler were needed for the IBM 1401. The Language, caLled TEAM (Translator for Electronic Accounting Machinery), was specified and plans were made
    to implement it. Previous experience had shown that new programming systems eotfld be rapidly and efficiently constructed using an existing probLem-oriented language and compiler. It was decided to take this approach in construtting the TEAM compiler.
          in [ACM] CACM 5(02) February 1962 view details