INTERPROGRAM(ID:2775/int024)

English-language interpreter 


INTERPROGRAM - English-language-based interpreting system  for CSIRAC Geoff Hill 1960

Had a resultant variable called THIS, and an existential IS


People: Hardware:
References:
  • Hill, G W, INTERPROGRAM. English Language Automatic Programming for CSIRAC, University of Melbourne, 1960 view details Abstract: INTRODUCTION

    The time required to learn to prepare a calculation for execution by the electronic computer, CSIRAC, is greatly reduced by the INTERPROGRAM system. The user writes steps of the calculation as commands in English language, using any convenient names for values arising in the calculation. The flexible INTERPROGRAM vocabulary can be used with little training and understood with even less. The computer translates INTERPROGRAM language into its own language and executes the required calculation. Use of the computer to construct its own program of operations is known as "automatic programming".

    The BASIC INTERPROGRAM system caters for most calculations arising in practice. The system can be extended by increasing the vocabulary or by replacing the arithmetic system by one providing greater precision or for treating complex numbers. Such extensions will be described in separate appendices to the BASIC INTERPROGRAM MANUAL.

    It should be noted that automatic programming is most suited to "once-only" calculations, such as arise in exploratory investigations. For extensive repeated calculations the human programmer can take advantage of special aspects of the computer and the problem. Use of computer language increases the task of preparation, but may substantially reduce the cost of execution of a calculation. The INTERPROGRAM system may be useful for investigating the method of calculation; incidentally providing an unambiguous specification for a computer language program.

    STRATEGY

    This manual defines the computer operation corresponding to each operation-word in the current vocabulary. The user prepares a "programme" of these operations for his computation by:-
    (1)     breaking the calculation into steps expressed in terms of the current vocabulary,
    (2)     organizing the sequence in which they are to be executed; catering for all possibilities, such as denominators becoming zero etc.,
    (3)     preparing data in the order required by the computer, or arranging the program to accept data already prepared,
    (4)     choosing a desired layout of results and arranging the program accordingly,
    (5)     typing the INTERPROGRAM and data onto punched paper tape and operating the computer to process these tapes.
    Extract: REPRESENTATION OF VARIABLES
    REPRESENTATION OF VARIABLES

      Values arising in a calculation may be named to suit the user. Any sequence of
    upper-case letters may be used to represent a variable subject to the following rules:-
    1. The first four letters are used and the rest ignored; i.e. VARIABLE and VARIANCE are treated as the same name.
    2. A name ends with a type space, carriage return or figure shift; i.e.  MARKETVALUE is a valid name but MARKET  VALUE is not.
    3. The names IS and THIS are used for special purposes; THIS is the name of the current result of calculation (*2 of example 1).
    4. Integer subscripts may be used with one or two letter names; e.g.     A(123), CR(-31),  MU(+7), T(0), but not CREDIT(-31).
    5. The subscript may include the name of an integer variable; e.g.     A(J),  X(J+7) or MU(MAXIMUM-400).
    Extract: EXAMPLE 1
    EXAMPLE 1

    Suppose it is required to tabulate the value of

    ƒÑ.     =  ƒÒ - 27.394 + a (x/y)

    for each set of values of ƒÒ, a , x and y punched on a "data tape" as follows;
         J      BETA         A(3)     X       Y
         1     25.382     2.754     7     0.92
         2     31.542     -1.832     9     1.24
         3     22.379     -0.023     11     2.57
         4     23.456     +0.001     23      0.17
         5     27.356     +1.113     3       -95.76
                 0

    The symbol J is used for the serial number of each set of data: the end being indicated by the value J = 0. The symbol A(3) will be used to illustrate subscripted variables, although A(0), A(1), A(2), A(4), etc., do not occur in this formula. An appropriate INTERPROGRAM is typed as follows:               (1)  TITLE  ALPHA = BETA - 27.394 + A(3).(X/Y)
                 (2)  SYMBOLS FOR INTEGERS     J
                 (3)  MAXIMUM SUBSCRIPTS          A(3)
                 (4)  COMPILE THE FOLLOWING  INTERPROGRAM

         *1     INPUT J
         *2     IF  THIS IS ZERO, GO TO *7           # END WHEN J = 0
                *3         INPUT BETA, &  A(3), &  X, & Y
                *4         TAKE X, DIVIDE BY Y, MULTIPLY BY A(3)
                             SUBTRACT 27.394,  ADD BETA, REPLACE ALPHA
                *5         TAKE  J, OUTPUT,  OUTPUT ALPHA
                *6         GO  TO  *1
                *7         END  OF  INTERPROGRAM

    The punched paper tape produced by typing this INTERPROGRAM is translated by the computer and then executed using the data tape above. The results punched on tape by the computer are printed on the Flexowriter as follows:
                                     CSIRAC INTERPROGRAM COMPILED 1/1/60
                                         ALPHA = BETA - 27.394 + A(3).(X/Y)
                                            1          18.9424
                                            2         -9.14884
                                            3         -5.11335
                                            4         -3.80275
                                            5         -.0727539

    -4-

       The operation statements *4 concern the calculation proper, while statements *1,
    *3 and *5 arrange input of data and output of results and statements *2, *6 and *7 control the repetitions required. Preliminary statement (2) enables the computer to treat listed symbols as integer variables; all others being treated in a more general way. Preliminary statement (3) reserves space for the four variables A(0),  A(1),  A(2) and A(3).
  • Pearcey, Trevor "The CSIRAC and Academic Computing Laboratories - Australian Computing, the Second Generation" view details External link: Online copy
  • CSIRAC Emulator (Including INTERPROGRAM) view details External link: Software