TEAM(ID:6009/tea003)Automatic programming system for Lockheedfor 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
References: 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 StatementsA. 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. IFIF 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. FORFOR 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 AExecute the subroutine A.E. RETURN AReturn to the main program from the subroutine.F. GOTO ATransfer to the point A in the program.G. READ n AIf 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 AWrite 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 APrint 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 NN is a character which specifies carriage control on the on-line printer.K. PUNCHA 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 lengthL. SENSE N AN 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 nSelect the card read or punched into stacker n.N. FORMS nN 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 nRewind tape n.Q. BACKSPACE nBackspace tape n one record.R. CONTROL MACHINE LANGUAGEThis instruction allows the programer to insert machine lauguage instructions (SPS).S. CONTROL COMPILERThis instruction flags the compiler to return from the machine language mode.T. COGENTSelf-explanatory.U. CONTROL AAn END card is punched, specifying transfer of control to point A.in Proceedings of the 16th ACM National Conference, January 1961 view details 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 |