Misplaced Pages

Autocode

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

Autocode is the name of a family of "simplified coding systems", later called programming languages , devised in the 1950s and 1960s for a series of digital computers at the Universities of Manchester , Cambridge and London . Autocode was a generic term; the autocodes for different machines were not necessarily closely related as are, for example, the different versions of the single language Fortran .

#91908

54-510: Today the term is used to refer to the family of early languages descended from the Manchester Mark 1 autocoder systems, which were generally similar. In the 1960s, the term autocoders was used more generically as to refer to any high-level programming language using a compiler . Examples of languages referred to as autocodes are COBOL and Fortran . The first autocode and its compiler were developed by Alick Glennie in 1952 for

108-717: A cathode-ray tube known as the output device, just as on the Baby from which the Mark 1 had been developed. However, the Final Specification machine, completed in October 1949, benefitted from the addition of a teleprinter with a five-hole paper-tape reader and punch . Mathematician Alan Turing , who had been appointed to the nominal post of Deputy Director of the Computing Machine Laboratory at

162-710: A division of International Computers and Tabulators (ICT), marketed the Titan as the Atlas 2. Although intended to be more affordable than the Atlas, its price was still over £ 1 million. A second Atlas 2 was built in Manchester, and was installed at the Computer-Aided Design Centre ( CADCentre ) on Madingley Road together with the Cambridge Titan supervisor. This machine, the last Atlas,

216-402: A few of the standard encodings; for instance, 00000 and 01000, which mean "no effect" and "linefeed" in the teleprinter code, were represented by the characters "/" and "@" respectively. Binary zero, represented by the forward slash, was the most common character in programs and data, leading to sequences written as "///////////////". One early user suggested that Turing's choice of a forward slash

270-473: A government contract with the local firm of Ferranti to make a commercial version of the machine, the Ferranti Mark 1. In his letter to the company, dated 26 October 1948, Lockspeiser authorised the company to "proceed on the lines we discussed, namely, to construct an electronic calculating machine to the instructions of Professor F. C. Williams". From that point on, development of the Mark 1 had

324-497: A machine can write a sonnet or compose a concerto because of thoughts and emotions felt, and not by the chance fall of symbols, could we agree that machine equals brain – that is, not only write it but know that it had written it. No machine could feel pleasure at its success, grief when its valves fuse, be warmed by flattery, be made miserable by its mistakes, be charmed by sex, be angry or miserable when it cannot get what it wants. The Times reported on Jefferson's speech

378-613: A new machine that would include a floating point unit . Work began in 1951, and the resulting machine, which ran its first program in May 1954, was known as Meg, or the megacycle machine. It was smaller and simpler than the Mark 1, and much faster for maths problems. Ferranti produced a version of Meg with the Williams tubes replaced by the more reliable core memory , marketed as the Ferranti Mercury . The successful operation of

432-638: A program to read sequentially through an array of words in memory. Thirty-four patents resulted from the machine's development, and many of the ideas behind its design were incorporated in subsequent commercial products such as the IBM 701 and 702 as well as the Ferranti Mark 1. The chief designers, Frederic C. Williams and Tom Kilburn , concluded from their experiences with the Mark ;1 that computers would be used more in scientific roles than in pure mathematics. In 1951, they started development work on Meg ,

486-517: A suitable memory device. The University of Manchester 's Baby , the world's first electronic stored-program computer, had successfully demonstrated the practicality of the stored-program approach and of the Williams tube , an early form of computer memory based on a standard cathode-ray tube (CRT), by running its first program on 21 June 1948. Early electronic computers were generally programmed by being rewired, or via plugs and patch panels ; there

540-481: A suitably powerful computer for its needs at the time, so the university purchased from Ferranti the main Atlas processing units and then jointly designed the memory and peripheral equipment. The joint effort led to a cheaper and simpler version of the Atlas that Ferranti could market, leaving Cambridge with the prototype version, named Titan. The Atlas hardware arrived in Cambridge in 1963, although software design

594-475: A temporary stop-gap while a more substantially advanced language known as CPL was being developed. CPL was never completed but did give rise to BCPL (developed by M. Richards), which in turn led to B and ultimately C . A contemporary but separate thread of development, Atlas Autocode was developed for the University of Manchester Atlas 1 machine. Manchester Mark 1 The Manchester Mark 1

SECTION 10

#1732790549092

648-609: Is no more than 10%". Impact of Glennie's Autocode on other Manchester users' programming habits was negligible. It wasn't even mentioned in Brooker's 1958 paper called "The Autocode Programs developed for the Manchester University Computers". The second autocode for the Mark 1 was planned in 1954 and developed by R. A. Brooker in 1955 and was called the "Mark 1 Autocode". The language was nearly machine-independent and had floating-point arithmetic, unlike

702-537: The Ferranti Mercury in the 1950s in conjunction with the University of Manchester. Mercury Autocode had a limited repertoire of variables a-z and a'-z' and, in some ways resembled early versions of the later Dartmouth BASIC language. It pre-dated ALGOL , having no concept of stacks and hence no recursion or dynamically-allocated arrays . In order to overcome the relatively small store size available on Mercury, large programs were written as distinct "chapters", each of which constituted an overlay . Some skill

756-474: The instruction code , which allowed for 1,024 (2 ) different instructions. The machine had 26 initially, increasing to 30 when the function codes to programmatically control the data transfer between the magnetic drum and the cathode-ray tube (CRT) main store were added. On the Intermediary Version programs were input by key switches, and the output was displayed as a series of dots and dashes on

810-482: The 1940s, Turing and others such as Konrad Zuse developed the idea of using the computer's own memory to hold both the program and data, instead of tape, but it was mathematician John von Neumann who became widely credited with defining that stored-program computer architecture , on which the Manchester Mark 1 was based. The practical construction of a von Neumann computer depended on the availability of

864-409: The Baby was intensively developed as a prototype for the Manchester Mark 1, initially with the aim of providing the university with a more realistic computing facility. In October 1948, UK Government Chief Scientist Ben Lockspeiser was given a demonstration of the prototype Mark 1 while on a visit to the University of Manchester. Lockspeiser was so impressed by what he saw that he immediately initiated

918-548: The Manchester Mark 1 and its predecessor, the Baby, was widely reported in the British press, which used the phrase "electronic brain" to describe the machines. Lord Louis Mountbatten had earlier introduced that term in a speech delivered to the British Institution of Radio Engineers on 31 October 1946, in which he speculated about how the primitive computers then available might evolve. The excitement surrounding

972-576: The Manchester machine. It initially had 28K of memory, but this was expanded first to 64K and later to 128K. The Titan's main memory had 128K of 48-bit words and was implemented using ferrite core store rather than the part core, part rotating drum-store used on the Manchester Atlas. Titan also had two large hard-disk drives and several magnetic tape decks. As with the Manchester Atlas, it used discrete components, in particular germanium transistors . Some of these components can be seen in

1026-453: The Mark 1 computer at the University of Manchester and is considered by some to be the first compiled programming language. His main goal was increased comprehensibility in the programming of Mark 1 machines, which were known for their particularly abstruse machine code. Although the resulting language was much clearer than the machine code, it was still very machine dependent. Below is an example of Glennie's Autocode function which calculates

1080-577: The Mark 1's successor, which would include a floating point unit . It was also called the Manchester Automatic Digital Machine , or MADM . In 1936, mathematician Alan Turing published a definition of a theoretical "universal computing machine", a computer which held its program on tape, along with the data being worked on. Turing proved that such a machine was capable of solving any conceivable mathematical problem for which an algorithm could be written. During

1134-478: The University of Manchester in September 1948, devised a base 32 encoding scheme based on the standard ITA2 5-bit teleprinter code, which allowed programs and data to be written to and read from paper tape. The ITA2 system maps each of the possible 32 binary values that can be represented in 5 bits (2 ) to a single character. Thus "10010" represents "D", "10001" represents "Z", and so forth. Turing changed only

SECTION 20

#1732790549092

1188-610: The additional purpose of supplying Ferranti with a design on which to base their commercial machine. The government's contract with Ferranti ran for five years from November 1948, and involved an estimated £35,000 per year (equivalent to £1.38 million per year in 2023). The Baby had been designed by the team of Frederic C. Williams , Tom Kilburn and Geoff Tootill . To develop the Mark 1 they were joined by two research students, D. B. G. Edwards and G. E. Thomas; work began in earnest in August 1948. The project soon had

1242-677: The average size of the design team working on the Mark 1 and its predecessor, the Baby, had been about four people. During that time 34 patents were taken out based on the team's work, either by the Ministry of Supply or by its successor, the National Research Development Corporation . In July 1949, IBM invited Williams to the United States on an all-expenses-paid trip to discuss the Mark 1's design. The company subsequently licensed several of

1296-491: The drum took 30  milliseconds , during which time both pages could be transferred to the CRT main memory, although the actual data transfer time depended on the latency, the time it took for a page to arrive under the read/write head. Writing pages to the drum took about twice as long as reading. The drum's rotational speed was synchronised to the main central processor clock , which allowed for additional drums to be added. Data

1350-518: The dual purpose of supplying Ferranti with a working design on which they could base a commercial machine, the Ferranti Mark 1, and of building a computer that would allow researchers to gain experience of how such a machine could be used in practice. The first of the two versions of the Manchester Mark 1 – known as the Intermediary Version ;– was operational by April 1949. However, this first version lacked features such as

1404-592: The fields normally covered by the human intellect and eventually compete on equal terms. Titan (1963 computer) Titan was the prototype of the Atlas 2 computer developed by Ferranti and the University of Cambridge Mathematical Laboratory in Cambridge , England . It was designed starting in 1963, and in operation from 1964 to 1973. In 1961, the University of Cambridge found itself unable to fund

1458-456: The first one. On the other hand it allowed only one operation per line, offered few mnemonic names and had no way to define user subroutines. An example code which loads array of size 11 of floating-point numbers from the input would look like this Brooker's Autocode removed two main difficulties of Mark 1's programmer: scaling and management of two-level storage. Unlike its predecessor it was heavily used. Brooker also developed an autocode for

1512-484: The following day, adding that Jefferson forecast that "the day would never dawn when the gracious rooms of the Royal Society would be converted into garages to house these new fellows". This was interpreted as a deliberate slight to Newman, who had secured a grant from the society to continue the work of the Manchester team. In response Newman wrote a follow-up article for The Times , in which he claimed that there

1566-407: The formula: f ( t ) = | t | + 5 t 3 {\displaystyle f(t)={\sqrt {|t|}}+5t^{3}} . The example omits necessary scaling instruction needed to place integers into variables and assumes that results of multiplication fit into lower accumulator. User's manual of Glennie's Autocode Compiler mentioned that "the loss of efficiency

1620-488: The instructions necessary to programmatically transfer data between the main store and its newly developed magnetic backing store, which had to be done by halting the machine and manually initiating the transfer. These missing features were incorporated in the Final Specification version, which was fully working by October 1949. The machine contained 4,050 valves and had a power consumption of 25 kilowatts . To increase reliability, purpose-built CRTs made by GEC were used in

1674-445: The machine instead of the standard devices used in the Baby. The Baby's 32-bit word length was increased to 40 bits . Each word could hold either one 40-bit number or two 20-bit program instructions. The main store initially consisted of two double-density Williams tubes, each holding two arrays of 32 x 40-bit words  – known as pages  – backed up by a magnetic drum capable of storing an additional 32 pages. The capacity

Autocode - Misplaced Pages Continue

1728-438: The modified ITA2 coding scheme to make their job easier. Data was read and written from the papertape punch under program control. The Mark 1 had no system of hardware interrupts ; the program continued after a read or write operation had been initiated until another input/output instruction was encountered, at which point the machine waited for the first to complete. The Mark 1 had no operating system ; its only system software

1782-659: The night of 16/17 June 1949. The algorithm was specified by Max Newman , head of the Mathematics Department at the University of Manchester , and the program was written by Kilburn and Tootill. Alan Turing later wrote an optimised version of the program, dubbed the Mersenne Express. The Manchester Mark 1 continued to do useful mathematical work until 1950, including an investigation of the Riemann hypothesis and calculations in optics . Tootill

1836-564: The online relics collection of the University of Cambridge Computer Laboratory. Titan was the computer on which a team from Ferranti based in Bracknell working with David Barron , David Hartley, Roger Needham and Barry Landy of Cambridge University Maths Lab developed the early multi-user time-sharing operating system called Titan Supervisor. This was arguably the world's first commercially sold time-sharing operating system. Other experiments in time-sharing, such as CTSS and PLATO in

1890-456: The patented ideas developed for the machine, including the Williams tube, in the design of its own 701 and 702 computers. The most significant design legacy of the Manchester Mark 1 was perhaps its incorporation of index registers, the patent for which was taken out in the names of Williams, Kilburn, Tootill, and Newman. Kilburn and Williams concluded that computers would be used more in scientific roles than pure maths, and decided to develop

1944-575: The practical use of computers, but it very quickly also became a prototype on which the design of Ferranti 's commercial version could be based. Development ceased at the end of 1949, and the machine was scrapped towards the end of 1950, replaced in February 1951 by a Ferranti Mark 1 , the world's first commercially available general-purpose electronic computer. The computer is especially historically significant because of its pioneering inclusion of index registers , an innovation which made it easier for

1998-477: The reporting in 1949 of what was the first recognisably modern computer provoked a reaction unexpected by its developers; Sir Geoffrey Jefferson , professor of neurosurgery at the University of Manchester, on being asked to deliver the Lister Oration on 9 June 1949 chose "The Mind of Mechanical Man" as his subject. His purpose was to "debunk" the Manchester project. In his address he said: Not until

2052-444: The teleprinter's keyboard, and output onto its printer. The machine worked internally in binary, but it was able to carry out the necessary decimal to binary and binary to decimal conversions for its input and output respectively. There was no assembly language defined for the Mark 1. Programs had to be written and submitted in binary form, encoded as eight 5-bit characters for each 40-bit word; programmers were encouraged to memorize

2106-437: The tube holding the two index registers, originally known as B-lines, was given the name B. The contents of the registers could be used to modify program instructions, allowing convenient iteration through an array of numbers stored in memory. The Mark 1 also had a fourth tube, (M), to hold the multiplicand and multiplier for a multiplication operation. Of the 20 bits allocated for each program instruction, 10 were used to hold

2160-436: The value of the most significant bit denotes the sign of a number; positive numbers have a zero in that position and negative numbers a one. Thus the range of numbers that could be held in each 40-bit word was −2 to +2  − 1 (decimal: -549,755,813,888 to +549,755,813,887). The first realistic program to be run on the Mark 1 was a search for Mersenne primes , in early April 1949, which ran error free for nine hours on

2214-404: Was 1.8 milliseconds, but multiplication was much slower, depending on the size of the operand . The machine's most significant innovation is generally considered to be its incorporation of index registers , commonplace on modern computers. The Baby had included two registers, implemented as Williams tubes: the accumulator (A) and the program counter (C). As A and C had already been assigned,

Autocode - Misplaced Pages Continue

2268-429: Was a close analogy between the structure of the Mark 1 and the human brain. His article included an interview with Turing, who added: This is only a foretaste of what is to come, and only the shadow of what is going to be. We have to have some experience with the machine before we really know its capabilities. It may take years before we settle down to the new possibilities, but I do not see why it should not enter any of

2322-446: Was a few basic routines for input and output. As in the Baby from which it was developed, and in contrast to the established mathematical convention, the machine's storage was arranged with the least significant digits to the left; thus a one was represented in five bits as "10000", rather than the more conventional "00001". Negative numbers were represented using two's complement , as most computers still do today. In that representation,

2376-402: Was a subconscious choice on his part, a representation of rain seen through a dirty window, reflecting Manchester's "famously dismal" weather. Because the Mark 1 had a 40-bit word length, eight 5-bit teleprinter characters were required to encode each word. Thus for example the binary word: would be represented on paper tape as ZDSLZWRF. The contents of any word in store could also be set via

2430-413: Was already underway. David Wheeler was in charge of the joint effort between the university and Ferranti. In 1965 the Cambridge side of the team decided to add a time-sharing facility for Titan, necessitating the acquisition of additional hardware. When Titan came into full service in 1966, time sharing was available for all staff. Titan was finally switched off in October 1973. Ferranti, by then

2484-404: Was devised by David Hartley of University of Cambridge Mathematical Laboratory in 1961. Known as EDSAC 2 Autocode, it was a straight development from Mercury Autocode adapted for local circumstances, and was noted for its object code optimisation and source-language diagnostics which were advanced for the time. A version was developed for the successor Titan (the prototype Atlas 2 computer) as

2538-451: Was finally switched off on 21 December 1976. A third Atlas 2 was ordered by the UK's Atomic Weapons Research Establishment (AWRE) at Aldermaston . It replaced the faster and much more expensive IBM 7030 Stretch which had been leased from IBM. Titan differed from the original Manchester Atlas by having a real, but cached, main memory , rather than the paged (or virtual) memory used in

2592-432: Was increased in the Final Specification version to eight pages of main store on four Williams tubes and 128 magnetic drum pages of backing store. The 12-inch (300 mm) diameter drum, initially known as a magnetic wheel, contained a series of parallel magnetic tracks around its surface, each with its own read/write head. Each track held 2,560 bits, corresponding to two pages (2×32×40 bits). One revolution of

2646-617: Was no separate program stored in memory, as in a modern computer. It could take several days to reprogram ENIAC , for instance. Stored-program computers were also being developed by other researchers, notably the National Physical Laboratory 's Pilot ACE , Cambridge University 's EDSAC , and the US Army 's EDVAC . The Baby and the Mark 1 differed primarily in their use of Williams tubes as memory devices, instead of mercury delay lines . From about August 1948,

2700-585: Was one of the earliest stored-program computers , developed at the Victoria University of Manchester , England from the Manchester Baby (operational in June 1948). Work began in August 1948, and the first version was operational by April 1949; a program written to search for Mersenne primes ran error-free for nine hours on the night of 16/17 June 1949. The machine's successful operation

2754-411: Was recorded onto the drum using a phase modulation technique still known today as Manchester coding . The machine's instruction set was increased from the 7 of the Baby to 26 initially, including multiplication done in hardware. This increased to 30 instructions in the Final Specification version. Ten bits of each word were allocated to hold the instruction code . The standard instruction time

SECTION 50

#1732790549092

2808-572: Was required to minimise time-consuming transfers of control between chapters. This concept of overlays from drum under user control became common until virtual memory became available in later machines. Slightly different dialects of Mercury Autocode were implemented for the Ferranti Atlas (distinct from the later Atlas Autocode ) and the ICT 1300 and 1900 range. The version for the EDSAC 2

2862-406: Was temporarily transferred from the University of Manchester to Ferranti in August 1949, to continue work on the Ferranti Mark 1's design, and spent four months working with the company. The Manchester Mark 1 was dismantled and scrapped in August 1950, replaced a few months later by the first Ferranti Mark 1, the world's first commercially available general-purpose computer. Between 1946 and 1949,

2916-449: Was widely reported in the British press, which used the phrase "electronic brain" in describing it to their readers. That description provoked a reaction from the head of the University of Manchester's Department of Neurosurgery, the start of a long-running debate as to whether an electronic computer could ever be truly creative . The Mark 1 was to provide a computing resource within the university, to allow researchers to gain experience in

#91908