K AUTOCODE(ID:2144/)ADvance autocode for KDF9Autocode initially for the EE KDF9 (hence name) then for IBM 360 ICI Management Services, Fulshaw Hall, Wilmslow, UK The true matrix capabilities are worth noting - triangular, diagonal etc Related languages
References: In 1962, ICI ordered a KDF9 to replace its existing Mercury computer. When the KDF9 was delivered in February 1964, the Mercury was being used on a 3-shift basis for five or more days a week and the workload was programmed almost entirely in Mercury Autocode. There was an Autocode library of over 100 programs, several hundred personnel were conversant with the Autocode language and over 2,000 programs were in use. It was the intention at that time to use Autocode on both machines during the transition period and gradually to convert programs and programmers to ALGOL. A compatible compiler was written and came into use in May 1964. Another compiler was also provided which contained extra facilities. These were welcomed and suggestions were made for further improvements. As a result, K Autocode was defined and a preliminary implementation made available in October 1964. Subsequently the language has been extended and, because of the relative inefficiency of the ALGOL implementations, is now the most widely used technical programming language in ICI. In October 1965, the first of a series of System/360 computers was installed and a 360 implementation of K Autocode started. At the present time, March 1968, nine 360s have been delivered and K Autocode is available on the larger models. For the future, PL/I is probably the preferred language but the inefficiency of the initial implementation in relation to K Autocode does not yet make this an attractive proposition. Extract: The Autocode matrix scheme The Autocode matrix scheme The matrix scheme permits operations to be performed on arrays of numbers held in the auxiliary store. The auxiliary address, M, of the first element is used to refer to the array. Two dimensional arrays are stored by rows. The dimensions of the operands are stated explicitly in each operation. Each matrix operation is essentially an assignment instruction, although it is written in the same way as a function : +operation number (parameter list) The matrix operations provide facilities for input, output, manipulation and arithmetic. Three typical operations are given. $5 (M, I, J, K) prints the I x J matrix in A4 in tabular form. The elements of the matrix must be real numbers and they are printed in floating point style with K significant figures. As many columns as possible are printed across a page. $11 (MI, M2, I) extracts the diagonal of the square matrix of order I stored in M2 and stores it as a vector in MI. 430 (Ml, M2, M3, X, Y, I, J) forms the linear combination of two I x J matrices stored in M2 and M3, i.e. (MI) = X (M2) + Y (M3) The special cases which arise when X and Y are 0 or 1 are recognised. in The Computer Journal 11(2) August 1968 view details in The Computer Journal 11(2) August 1968 view details |