Mercury Autocode(ID:2227/mer004)

Autocode for the Ferranti MERCURY computer 


Autocode for the Ferranti MERCURY computer.

Designed by RA Brooker of the University of Manchester

Pivotal language between the old (lower) and new (higher) Autocodes

Hardware:
Related languages
TITAN Autocode => Mercury Autocode   Implementation
Mercury Autocode => ACE   Adaptation of
Mercury Autocode => ALP   add associative powers minimal Extension of
Mercury Autocode => CERN Autocode   Port
Mercury Autocode => CHLF   Extension of
Mercury Autocode => Elliott Autocode   Adaptation of
Mercury Autocode => EMA   Extension of
Mercury Autocode => K AUTOCODE   Evolution of
Mercury Autocode => Rothamsted autocode   Based on
Mercury Autocode => Usercode   Evolution of

References:
  • Brooker, R.A. "Further Autocode Facilities for the Manchester (Mercury) Computer" view details Abstract: This article is a sequel to an earlier paper, part of which described the basic facilities of the simplified programming system (Autocode) developed for the Ferranti Mercury Computer at Manchester University. The present article describes further facilities of the system and, together with the earlier description, amounts to a compact programming manual for the Manchester Mercury Computer. External link: Online copy
          in The Computer Journal 1(1) 1958 view details
  • Brooker, R.A. "The Autocode Programs Developed for the Manchester University Computer" view details Abstract: The article describes two programs written for the Manchester University Computers, which enable these machines to accept programs written in a simplified form. External link: Online copy
          in The Computer Journal 1(1) 1958 view details
  • Michaelson, S. and BurnettHall, D.G.; "The Manchester Mercury Autocode System, No.5: A Glossary of Terms and Formulae", Issue 2, October 1959. view details
          in The Computer Journal 1(1) 1958 view details
  • R.A. Brooker, B. Richards, E. Berg, R.H. Kerr, "The Manchester Mercury Autocode System", typescript, May 1959, pp.56 view details
          in The Computer Journal 1(1) 1958 view details
  • S. Michaelson and D.G. BurnettHall, "The Manchester Mercury Autocode System", typescript, October 1959, pp.54 view details
          in The Computer Journal 1(1) 1958 view details
  • Brooker, R. A. and Morris, D. "A Description Of MERCURY Autocode in Terms of a Phrase Structure Language" pp29-67 view details
          in Goodman, Richard (ed) "Annual Review in Automatic Programming" (2) 1961 Pergamon Press, Oxford view details
  • Brooker, RA and Morris, D "An assembly program for a phrase structure language" pp168-174 view details
          in The Computer Journal 3(3) October 1960 view details
  • Raynor, Diana "An Introduction to Autocode Programming for the Mercury Computer", Tech.Note MS.68, Mathematical Services Department, Royal Aircraft Establishment, Farnborough June 1960. view details
          in The Computer Journal 3(3) October 1960 view details
  • BCS Bulletin - Literature and References to Simplified Programming Schemes for Computers, Available or Projected - November 1961 view details
          in The Computer Journal 3(3) October 1960 view details
  • Brooker, RA; Richards, B; Berg, E and Kerr, RH "Mercury Autocode Manual", CS 242A, Ferranti Ltd, (2nd ed) 1961 view details
          in The Computer Journal 3(3) October 1960 view details
  • Barron, D. W. review of Goodman, Richard (ed) "Annual Review in Automatic Programming", Vol. 2 view details Abstract: This is the second volume in the series produced under the auspices of the Automatic Programming Information Centre at Brighton. It contains a series of independent papers in two groups, one concerned with scientific programming languages, the other with commercial programming languages. The Editor's aim "to exhibit current trends by a sample collection of original reports," is only partially achieved by a disjointed series of papers of widely varying standards. Some important trends are not mentioned, but there is a promise that the omissions will be rectified in a later volume. Extract: MERCURY Autocode
    "A description of MERCURY Autocode in terms of a phrase structure language," by R. A. Brooker and D. Morris, is of particular interest to those who have read the earlier papers by the same authors (published in The Computer Journal) describing their assembly program for a phrase structure language, which is essentially a compiler for writing compilers. The application of the phrase structure concept to an actual language provides specific examples which assist comprehension of the preceding papers, but a new reader starting with this paper will find it difficult going in places.
          in The Computer Bulletin June 1962 view details
  • Gearing, H. W. "Autocodes for mathematical and statistical work" An address given at the inaugural meeting of the Edinburgh Branch on 13 December 1961 view details Extract: Introduction
    Introduction
    Electronic computers are able to work at high speeds only because they are programmed. Analysis of a problem, or a data processing procedure, and the programming of it for a computer in machine code, is a laborious task. In the early machines, users soon appreciated the advantage of having standard programs for assembly and program development, and a library of routines for regular calculations, complex number input and output, and for tracing the course of programs during program development, particularly when unexpected results were given when the program was tried on the machine.
    Where jobs are to be done regularly, it is still most economical, in the long run, to program them in machine language using such library routines as may be available. But for jobs which have to be done only once, or where it is desirable to try-out part of the job first and then extend the application of the computer, simplified programming systems have been developed. By their means, the computer can be addressed in a form of English, or by direct use of mathematical symbols if these are available in the character set of the teleprinter-punch used for punching the program. These simplified programming systems to which I shall apply the term "Autocodes" (originally named by Brooker at Manchester), together with available libraries of programs, constitute a very significant extension of the machinery which is now available.
    Besides saving the time spent on programming, these systems reduce the clerical errors of program writing by eliminating many tedious steps and this also reduces the time taken by program development. They also make it easier for the writer (or another person) to amend the program at a later date. In the earlier systems, the simplification entailed a varying loss of operating speed, varying between two and fifteen times as long to do a job on the machine. But a half hour of computer time after a few hours' programming in autocode is a more economic proposition for a one-off job, or trial of a routine job, than several weeks on programming, followed, after several trials, by a successful five-minute run on the computer.
    The newer programming systems, which involve a preliminary operation to compile a machine code program, will suffer less loss of speed and will become the normal method of programming computers for calculations and dataprocessing work, where the operations are not sufficiently standard to justify the writing of specific or general programs in machine language.
    Extract: Work at Rothamsted
    Work at Rothamsted
    In his valedictory Presidential address to The British Computer Society in London on 26 September 1961, Dr. Frank Yates reviewed the contribution which computers have made and are making in research statistics. It is on the solution of problems involving heavy numerical computation, in pure research, and in engineering design that, in his view, computers have achieved their most striking successes:
    Dr. Yates went on to point out that even in fields where computational tasks had previously been performed on desk calculators, computers could introduce three new features:
    (a) Speed, e.g. where further progress depends on knowing results to date.
    (b) A more thorough job, with better editing of data and more accurate calculations.
    (c) Relegation of computational methodology to the machine, so that people requiring to do calculations do not have to know the detail of the calculations involved.
    His paper (Yates, 1962), published in the January issue of The Computer Journal, reviews experience at Rothamsted and the development there of general programs for statistical work and some autocodes at other centres.
    If a general purpose program is available to include a mathematical procedure or the statistical method which one needs for a piece of analysis, then more people can use the computer. 1 have prepared a schedule of some of the schemes that are now available, or may be expected to be available early in 1962. Those who have access to a computer may find this of interest to follow up whichever line of development is applicable. Extract: Applications in Metal Box Company
    Applications in Metal Box Company
    In a paper published in The Computer Journal for April 1961 (Gearing 1961) 1 referred to the use which we, in The Metal Box Company Limited, had made of Pegasus autocode.
    I reviewed, in some detail, two programs. One of these was an analysis of a market survey for household trays in which interviews were conducted with some 1,100 households, covering 17 general questions and 10 observations of each tray found at the house: these questionnaires were analysed and 17 tables for the internal report were printed direct from the computer output tape. The other program related to part of our work on experimental sales forecasting and is now available in the Pegasus/Sirius interchange scheme (Ferranti, 1960).
    Our first computer application to quality control was in 1958-59 when we undertook an analysis of variance in connection with a productive operation being camed out by a group of machines in the chain between the sheet of tinplate and the finished open top can. Three factors were involved.
    The autocode program for Pegasus was thought to be rather slow and a full machine code program was written by Mr. D. Bulcock and is now available in the Pegasus interchange scheme. There are other analyses of variance programs available, notably one by BISRA (Caner and Taylor, 1960) which caters for up to seven factors, but if there are more than seven levels and only three factors involved, our program permits all the levels of data to be used.
    Nowadays, we would not attempt to write a full machine code program unless the job was going to be frequently done and would require considerable machine time. In the group of machines which we are using, a compiler-program has become available which automatically translates the Pegasus autocode program into Sirius machine orders (Ferranti, 1959 and 1961).
    In 1960 we were asked to assist in the analysis of data on the variability of some raw material which had been collected from sampled consignments over two years. Several different characteristics of the material had been measured. An autocode program was wntten to analyse each characteristic separately, prmting sample means, ranges, standard dev~ations, and compiling frequency distributions of means and standard deviations. A hierarchic analysis of variance was also given at the end of each characteristic. We were asked to undertake this work on 29 March and the calculations were substantially completed on 12 Aprll. Further calculations and a correlation between two characteristics were made on 3 June and 5 October 1960.
    Here I would like to stress that although the program was written in autocode, which is normally advocated for one-off jobs, the program is a general one. The progress of the calculations is controlled by ten parameters and the print routine by seven more. Thus one program served for the analysis of all the different characteristics, including some that involved preliminary arithmetic on pairs of observations.
    The correlation program was written separately but took only two hours to write, using pairs of exlsting data tapes fed in on the two tape readers simultaneously. Extract: Scientific Autocodes
    Scientific Autocodes
    The list appended covers a wide range of programs. compilers,
    autocodes. Among the autocodes which can be taught in a few days and which are already fully operational are :
    Mercury autocode.
    Pegasus/Sirius autocode.
    Ferranti Matrix Interpretive Scheme.
    Deuce Alphacode.
    IBM Fortran.
    Edsac 2 Autocode.
    Stantec Zebra Simple Code.
    Elliott 803 autocode.
    Elliott and other systems based on ALGOL
    Extract: Commercial Autocodes
    Commercial Autocodes
    Those concerned with Commercial Data Processing should have a look at:
    ICT Rapidwrite-Cobol.
    Ferranti Nebula.
    Cleo & Gypsy when available.
    These may take a couple of weeks to study, because, speaking from experience with Nebula, there are not only procedure descriptions but also file outlines and specifications of format of data and results when dealing with computers having considerable ancillary equipment. The Scientific Autocodes are usually concerned with one medium of inputloutput only, punched tape or punched-cards.
    Programming a data processing operation in a Commercial Autocode like Nebula becomes a full-time job; but it is easier to train staff in Nebula than a machine code and the autocode compiler will (we hope) take care of housekeeping routines when opening and closing files. We are using young men and women of O level mathematics, who have had experience of controlling our punched card routines, for this work.
          in The Computer Bulletin March 1962 view details
  • Nixon, W.L.B. "The EXCHLF Autocode Handbook" University of London Press,University of London,1966, Provisional Version view details Extract: Historical summary
    EXCHLF AUTOCODE - or simply EXCHLF - is a computer programming language. It is a development of MERCURY AUTOCODE, one of the first non-basic programming languages, which was developed especially for the Ferranti MERCURY computer principally by R. A. Brooker of Manchester University.  Various extensions and modifications of MERCURY AUTOCODE have been produced from time to time; in particular, the term CHLF AUTOCODE was applied to an extended version of MERCURY AUTOCODE developed collaboratively by and used at the MERCURY installations at CERN, Harwell, London, and RAE Farnborough. The most substantial innovation in CHLF AUTOCODE was the CHLF Routine, due to Dr D. C. Cooper of the then University of London Computer Unit.

    Both MERCURY AUTOCODE and the original CHLF AUTOCODE as programming languages preserved a particular orientation to MERCURY as the implementing computer,  A facility for incorporating MERCURY machine-language instructions into AUTOCODE programs was much used in order to supplement the deficiencies of AUTOCODE itself.

    The replacement of the London MERCURY by an ATLAS computer was preceded by the development at London of an extended CHLF AUTOCODE; this extension, called CHLF3 AUTOCODE, came into use as the standard version of AUTOCODE for MERCURY at the University of London Computer Unit on 1 April 1962.  Its new features were chiefly such as to obviate the necessity for machine-language instructions, so as to facilitate the transition from MERCURY to ATLAS.  Its development and implementation on MERCURY were due principally to Alan Fairbourn of ULCU, as was its eventual implementation on ATLAS.

    It then became clear that CHLF3 AUTOCODE did not take full advantage of the capabilities of ATLAS; and it was found possible to make still further extensions and improvements by means of appropriate modifications to the ATLAS Compiler for GHLF3 AUTOCODE.  The name EXCHLF AUTOCODE was applied to this new extended language; the EXCHLF Compiler came into use on ATLAS in October 1965.

    By this time the AUTOCODE language had become, rather like a developed human language, a mixture of primitive and sophisticated elements;  it was clear that the next stage of development must include rationalisation as well as further extension.  The EXCHLF Compiler introduced in September 1966, to which this Handbook applies, nevertheless does not render obsolete (in the sense of unavailable) any of the facilities of its predecessors (with a few minor exceptions). However a substantial number of features and facilities have been rendered obsolescent, in that they are now provided for as particular cases of more general facilities, or are incompatible with newer facilities, or are irrelevant to execution by ATLAS.  In order therefore to assist their transition from obsolescence to oblivion, such features and facilities are not described in this Handbook.  In other words, the process of rationalisation has been applied to the Handbook but not yet to the Compiler.

    The implementation on ATLAS of the various stages of the EXCHLF development is due to Gailean Davidson, with the assistance of Diana Lawrence and, more recently, Margaret Pragnell, all of ULICS. Benedict Nixon (ULICS)has been closely associated in a consultative capacity with all the stages of development outlined above.

    Another substantial extension of MERCURY AUTOCODE has been produces by ICT Ltd.; it is CAlled Extended Mercury Autocode or EMA. It includes many of the features of the early CHLF AUTOCODE as well as having peculiarities of its own; but it is not necessarily the case that a EXCHLF program is an acceptable EMA program and vice-versa, in spite of the considerable common ground.
          in The Computer Bulletin March 1962 view details
  • Howlett, Jack "Computing at Harwell 1948-1961" Atlas Computer Laboratory Report 1979 view details Extract: Autocodes
    All early computer users wrote their programs in machine code so programming was something of a black art. R.A. Brooker in Manchester (now Professor and pro-Vice Chancellor at Essex) devised an Autocode for the Mark-l and Mark-I*, which was a simple, easy-to-Iearn and easy-to-use high level language - not very high, to be sure, and very slow in execution, but a great improvement on machine code if you had only a fairly small program to write. We introduced this to Harwell and it caught on. When Ferranti embarked on building Mercury - based, as I said, on the next Manchester design - Brooker decided to write a new Autocode which, because of the higher basic speed and better facilities offered by Mercury, would be much more powerful and flexible and much faster. He spent a lot of time with us at Harwell discussing what should go into the new system, so that Harwell certainly had a significant influence on what he produced. The system, Mercury Autocode, proved a great success. Although simple when compared with modern high-level languages it provided an admirable range of facilities and was very easy to learn. With various enhancements it had a remarkably long life; a compiler for the final version, called CHLF because it was produced by a collaboration between CERN, Harwell, London (University) and Farnborough (RAE), was written for Atlas and was still in use in the early 1970's.


          in The Computer Bulletin March 1962 view details
  • Ponton, Jack "The Autocodes: Sirius to IMP, a User's Perspective" view details External link: Online copy
          in The Computer Bulletin March 1962 view details