History Paper
A review by Stella Mills
University of Gloucestershire
This paper traces the development of computing through the pages of the first 10 volumes of The Computer Journal. It is intended to be the first of a series of four review papers, each devoted to a decade in the life of the Journal with this paper spanning the years 1958 to 1968. Thus it covers the development of programming languages from machine code to ALGOL 60 and COBOL, through a frequent use of auto-codes. Algorithmic development is also evident especially in the latter half of the decade as is a strong element of using computers for mathematical modelling and solutions. Applications include many aspects of business and scientific work, showing early uptake of information technology.
INTRODUCTION
The British Computer Society (BCS) was founded in the spring of 1957 by a group of computing specialists from a variety of professions with Professor Maurice Wilkes as its first President. During the forming discussions, the need 'for a British journal devoted to computers' (Preface, 1958) was frequently mentioned and consequently, the following year, 1958, saw the beginning of the publication of The Computer Journal. From the first volume, the Journal published papers of high quality, recording original work although occasional survey articles were accepted (as they still are) at times when reviews of particular areas of computing were pertinent. Interestingly, these early volumes requested something continued to this day in that correspondence and advertising are welcomed, the former to stimulate discussion and the latter to help defray costs (Preface, 1958).
It is now over 40 years since the Journal started, and the time seems ripe for a review of the development of computing as revealed through its pages. Consequently, this paper is the first of a planned series of four and deals with the decade from the first volume, published as 1958-1959, to Volume 10, published as 1967-1968. The other three papers will consider developments in subsequent decades. Even so, this paper is structured to stand alone in that a brief background is given which supplies an overview of the development of computers to 1957. This is not meant to be exhaustive, but represents the main points of development as they are relevant to what follows. Indeed, given the number of history of computing texts (for example, Williams, 1997; Ceruzzi, 1998; Metropolis et al., 1980) and papers
(such as Campbell-Kelly, 1982) which cover the hardware development so well, that survey papers in the first couple of volumes of the Journal have been used to source much of this, since they provide a fresh UK-centred approach. The discussion of the rest of the contents of the first ten volumes of the Journal has been thematicised into the main areas of papers which appeared throughout the decade. While it would have been possible to follow Wilkes' classification of applications as they were at 1957 (Wilkes, 1958), a clearer picture is painted by using more obviously titled sections which also allow for the inclusion of computer-inherent topics such as programming languages and systems issues.
The applications are divided into programming, systems issues, numerical analysis which includes other mathematical work, business applications, scientific and technical research and an apparently miscellaneous section that permits the inclusion of topics such as computers applied to games and psychological discussions about such entities as the human brain-in reality these papers are the beginnings of artificial intelligence.
With such a task, it is impossible to do full justice to every paper published in the Journal. From the first volume, papers varied in length, but generally were much shorter than they are today. This lead to a crisp approach to some topics, but it also increased the variety of subject areas covered. Every volume exhibits a plethora of computer-related topics that range from philosophical considerations (for example, Musk, 1967a, b, c), through numerous programming related papers, to real-time networks (Phillips, 1967). Although Turing is missing, other famous computing names appear in this decade including, of course, founder members of the BCS such as Wilkes and Gill and slightly later prominent figures in computer science such as Naur and Hoare.
To some of the authors in this first decade, the writer can put faces and has learnt something of the work of a number of her colleagues in high places at The BCS! This personal touch, relatively unknown in studying the history of any discipline, has added personal value to this work and emphasised the fact that all historical study is socially linked to the political times. Not surprisingly then, we find that the use of computers in the UK fell behind that of the USA in the years after the Second World War, but by the mid-1950s, businesses were purchasing computers for data processing and process modelling. The boom time of the Macmillan Government in the late 1950s shows in the increase of the purchase of computers, the lamentable lack of good programmers (although whether this is really a financial problem is open to debate) and the increase of government spending in the purchase of computers.
Perhaps the most prominent topic in this decade is the development of programming languages from the initially used 'machine code', used almost universally until 1954 (Backus, 1979), through autocodes to the birth of third generation languages such as ALGOL 60, FORTRAN and COBOL. Interestingly, for a society that traditionally has been associated with the business community rather than the industrial aspects of computing, there is much more discussion about ALGOL (as the problem-solving, scientific language) than that of COBOL.
It is possible that this may be because of the cultural lag inherent in the dissemination of new processes in that businesses were committed to exhausting the resources of their present computers before purchasing newer machines that accommodated the new computer-specific independent languages. In addition, COBOL was an American language and the post-war years showed signs of envy at the relatively advanced state of computer development in the USA ((Halsbury, 1958/A>).
By the end of this first decade of the Journal, computers are commonplace in large businesses with programmers using a plethora of different languages and inventing new ones (for example, Clementson, 1967), if the need appeared to arise. Operating systems, systems analysis, novice users' needs and data communications are all evident, albeit in some cases, in a rather embryo state. Already there is discussion of the third generation of computers, the technology for which is based on transistors but has yet to be built in the next decade.
BACKGROUND
As with many subjects, the beginnings of the computer are very subjective in that they depend on the view of the historian (Halsbury, 1958). Thus one person may start from the work of Babbage or even his predecessors such as Pascal and Leibnitz, whilst others may prefer the route through Hollerith and Powers to Jacquard (Halsbury, 1958). However, most scholars would agree that the modern digital computer, with which The BCS has always concerned itself, has its origins in the development of radar during the Second World War (Rosen, 1969).
Calculating machines had been in use in business for many years (Tweedale, 1990), but these were usually mechanically operated and were unable to store a program to control their operation so that human intervention was necessary for carrying out complicated calculations.
Pre-1948-early computers
The most famous of the early 'computers' (without full program storage and hence without automatic operation) was the Electronic Numerical Integrator and Calculator (ENIAC) which was built in 1946 at The University of Pennsylvania from a concept of Mauchly and Eckert, based on ideas from Atanasoff (Winegrad, 1996) and Berry (Berry, 1986); the machine used vacuum tube flip-flops to store the data (Burks and Burks, 1981; Goldstine and Goldstine, 1996). These did not allow full storage of the operating program so humans were used to remove connections as the system required (Lavington, 1980).
However, in order to achieve a fully stored programmed computer, more storage for data was required, at a cheaper cost than bistable circuitry allowed, so ENIAC was modified so that it used mercurial delay line technology as had been used previously in radar (a href="historypaper_mills4.html#halsbury58">Halsbury, 1958). Sadly, the patent for ENIAC would later form the centre of a legal dispute (a href="historypaper_mills4.html#atanasoff">Atanasoff, 1984).
With help from the UK Department of Science and Industrial Research, the University Grants Committee and J. Lyons & Company (Croarken, 1990), Wilkes, who worked in Cambridge, UK, but had visited the Moore School of Engineering at the University of Pennsylvania in 1946 (Williams, 1997) and may well have gained inspiration from the design of ENIAC (Winegrad, 1996; Smith, 1989), was also developing a fixed-point (Wilkes, 1997) computer using this technology. Subsequently, the Electronic Delay Storage Automatic Calculator (EDSAC) commenced operation in May 1949 (Rosen, 1969; Croarken, 1990, 1992).
Wilkes, fittingly the first President of The BCS, had begun work on EDSAC in 1947 about the same time as Williams and Kilburn, together with Newman and Rees amongst others (Croarken, 1993), had started developing a different method of storage of data at the University of Manchester, UK. This electro-static system (based on cathode ray tubes) became known as the Williams tube memory (Rosen, 1969) but is now more correctly referred to as Williams-Kilburn tubes (Lavington, 1998); from this system came the nomenclature of B-lines for the index registers (Lavington, 1998; (Rosen, 1969).
Other computing projects in the UK at this time included the ACE Pilot Model, using delay line storage, under Turing's direction at the National Physical Laboratory ((Lavington, 1998Campbell-Kelly, 1981) and the Automatic Relay Computer using Siemen's high-speed relays under Booth's direction. Commissioned by Birkbeck College, University of London, this work was carried out in Welwyn Garden City (Lavington, 1998) since Birbeck had no laboratories of its own (Booth, 1980). These three machines were developed commercially into LEO (EDSAC), the Ferranti Mark I (University of Manchester) and DEUCE (ACE) respectively (Campbell-Kelly, 1980a), with the Ferranti MkI, in February, 1951, being the 'first commercially produced computer to be delivered anywhere in the
world' (Ibbett, 1999). Meanwhile, in the USA, the EDVAC (Electronic Discrete Variable and Arithmetic Computer) was being developed by von Neumann while his colleagues were working at the Institute for Advanced Study at Princeton using cathode ray tube storage and parallel binary arithmetic (Rosen, 1969). The important contribution of EDVAC was the architecture which conceptualised a stored program (although Randell (1994) queried whether this was so in the earliest (1945) design), later becoming known as von Neumann architecture although Eckert and Mauchly may have conceived the stored program principle which von Neumann clarified rather than hypothesised (Ceruzzi, 1998).
At the Massachusetts Institute of Technology, the Whirlwind I was developed which utilised coincident current magnetic core memory (Rosen, 1969). Following the wind analogy, Ratheon built a Hurricane computer, two of which were used by the USA National Bureau of Standards ((Rosen, 1969).
The programming of these early computers was at machine code level and the first program written for the Manchester computer by Kilburn, run in 1948 (Shelburne and Burton, 1998) and contained in the contemporary notebook of Tootill (Lavington, 1998), indicates that binary form was used and the instructions were set out tabularly (Shelburne and Burton, 1998). The program was entitled the Kilburn's Highest Factor Routine, and in 1996, Kilburn and Tootill reconstructed this program (Lavington, 1998; Shelburne and Burton, 1998) which can be easily followed by those with a basic knowledge of what today is called assembler code.
1948-1958-the first decade of computers (as seen through contributors to Journal)
In 1947, Eckert and Mauchly left The University of Pennsylvania to form the first commercial company in the world that built and sold computers for business use (Palfreman and Swade, 1993). IBM was co-operating with Aiken at the University of Harvard, which produced the Mark I through to Mark IV computers (Lee, 2000). During the next 10 years, the USA would move well ahead of the UK in developing computers for business use with IBM becoming the market leader ahead of Remington Rand (Halsbury, 1958). In the UK, the situation was quite different. Companies were trying to establish or re-establish themselves following the Second World War and were attempting to meet the need for everyday commodities made scarce by the War.
In addition, there was a lack of trained personnel to design and build the computers in the UK and, consequently, entrepreneurship, necessary for the computer market to flourish, was virtually non-existent (Halsbury, 1958).
In the USA, the defence industry also had priority in Government budgets as it was deemed necessary to develop a country-wide radar system that begged the need of computers for interpreting and collating the radar signals received (Halsbury, 1958). The military aviation industry also informed the civil air development and again computers were in the forefront of the technological developments. The UK had no need of this military expansion and indeed had little enough revenue to rebuild its towns flattened by the ravages of war. As Halsbury, 1958 so aptly wrote, while looking back over the decade from 1948 to 1958:
'...the wonder is not that the US industry is in some ways ahead of our own, but that our own industry can exist at all in competition with it. These facts [i.e. that the UK was technically unprepared, financially burdened and domestically preoccupied with non-computing activities] should always be remembered in assessing the way in which our own industry has grown' (Halsbury, 1958).
However, all was not lost. Goldsmith (1959) reported that by June 1959, there were 109 computers ordered or delivered by businesses in the UK. Of these, 76 had been delivered by June 1959, with more than 60 of these being delivered in the previous two years. Thus there appeared a sudden growth of commercial computer use in the UK, which showed little sign of abating as the decade under discussion in this paper commenced. Interestingly, payroll and stock control are listed as the most popular uses of these computers, with costs and sales associated activities next in order. The difficulties encountered are still being echoed today; shortages of skilled personnel, insufficient time and thought given to job re-organisation before the computer arrived are given in addition to the need for better programmers (Goldsmith (1959)).
The universities in the UK were fairing little better. Douglas (1959) reported that until two years previously, only three universities (Birkbeck College, London, Cambridge and Manchester as has been related above) had their own computer but another seven had, in the last two years, purchased commercial computers. Thus, Oxford and London had each purchased a Mercury computer, while Durham, Leeds and Southampton had chosen a Pegasus. Glasgow and Liverpool had chosen DEUCE machines (Douglas (1959)). The open policy of training staff and research students was beginning to produce people capable of writing their own programs; at Leeds alone, over 100 staff and research students were taught in one year.
Apart from teaching, the computers were hired by local companies although the administration of the monies received caused some problems; at Leeds, for example, 'the only precedent ... for the receipt of payment for services rendered by a department was the University farm!' (Douglas (1959)). Thus young scientists and engineers were leaving these universities with computing skills (Wilkes, 1958). By 1966, the Government intervened by publishing the Flowers Report (Agar, 1996), which has left at least one legacy-The Joint Information Systems Committee of the Higher Education Funding Councils for England, Scotland and Wales (Verdon and Wells, 1995).
Programming continued to be limited by the hardware and was generally written in 'machine code' or 'instruction code' (Brooker, 1958). However, by the end of this first decade of computers, the concept of a 'conversion' program (or autocode (Clarke and Felton, 1958)) which resembles a compiler today, was in use. The advantages of the conversion program included the need for less precise instructions and for the programmer to use a more 'idealised language' (Brooker, 1958), thus shortening the time needed for training the programmer. The University of Manchester had purchased a Mercury computer by the end of this decade and the preparation details given by Brooker (1958) indicated that the system was to change very little throughout the next generation of computers.
Punched tape was used to input the program into the instruction store, with the numerical quantities being stored in the working store while initial values were either read directly or from another tape. The instructions were either arithmetical if they were part of the calculation proper or else they were control instructions which organised the process of the calculation, for example, arranging the order of carrying out the arithmetic operations (Brooker, 1958). Interestingly, Brooker pointed out that the automatic nature of the control or 'red tape' instructions 'are the characteristic features of automatic calculating machines; they distinguish them from desk machines which are "controlled" by the operator himself' (Brooker, 1958). These autocodes developed by Brooker were 'probably the most significant programming innovation of the mid-1950s in Britain' (a href="historypaper_mills4.html#campbell80b">Campbell-Kelly, 1980b).
The Mercury compiler was capable of handling mathematical functions such as square roots and trigonometric functions but these had to be programmed so it was usual to keep a library of such routines (or quickies). The Mercury could handle 30 such routines, with 20 being standard and 10 being reserved for individual requirements (Fotheringham and Roberts, 1958). The DEUCE had a similar set of routines and Alphacode was developed to 'attract the reluctant engineer or scientist to become a computer user' (Robinson, 1958).
Again, the point is made that these higher level programes are suitable for easier learning and in situations where time taken by the computer for calculation is not of prime essence. programs removed jargon and masked the operation of the computer so that the user was not aware of what went on 'between prime essence. In addition, such programs removed jargon and masked the operation of the computer so that the user was not aware of what went on 'between presenting a program written in English and the printed set of results' (Robinson, 1958). A similar autocode existed for the Pegasus computer (Clarke and Felton, 1958).
Thus, in scientific work, the computer had established itself by 1958 (Wilkes, 1958). Not only had the computers at Manchester, in 1949 and Cambridge, in 1951, contributed to the calculation of p, but much tighter calculations were being obtained for Monte Carlo-based analyses and accuracy in design calculations such as those for nuclear reactors. The computer was also helping with operational research-type problems such as scheduling and queuing solutions. Indeed, wherever a tighter mathematical model was needed, the realisation had occurred that the computer could be instrumental in achieving this closer accuracy (Wilkes, 1958).
Concerning the rest of Europe, Zuse had worked almost alone in Germany during the Second World War, and had produced four versions of a computer which were all lost in the Allies bombing except for the Z4 (Zuse, 1980). Zuse patented the theoretical concept of the stored program as early as 1936 (Zuse, 1980), but readily acknowledged that von Neumann was the first to realise the concept. After the war, no computers were built in (West) Germany until 1950 when Zuse formed his company in Hessen (Zuse, 1980). In France, programming was taught at the University of Grenoble in 1956 (Verjus, 1990), but generally France lagged behind the UK and the USA (Baron and Mounier-Kuhn, 1990).
In Eastern Europe, East Germany had entered the computer arena with the optical firm Zeiss making its first computer in 1955, while in 1951 the former Czechoslovakia had started a magnetic drum design which reached fruition in the mid-1950s. By May, 1958, Kraus in Vienna, Austria had built the Mailufterl (a 'gentle breeze as compared to the Whirlwind...' (Blachman, 1959) that was one of the first computers to utilise transistors ((Zemanek, 1980) but Yugoslavia had yet to build its first computer as the country was re-building after the Second World War (Blachman, 1959).
Thus as 1958 dawned and The Computer Journal (and, incidently, The Computer Bulletin) was born, the UK was beginning to grow financially and commercial enterprises were ready to invest in computers to increase competitiveness and profit margins. Academia too was aware of the potential of computers in a much wider application than scientific research. It seems that the birth of The BCS and its journals was opportune for taking full advantage of the Macmillan years of prosperous government.
1958-1968-THE FIRST 10 YEARS OF THE COMPUTER JOURNAL
In his Presidential Address, Wilkes (1958) classified the application areas of the use of computers as:
'1. Scientific and technical research.
2. Engineering design.
3. Pure calculation.
4. Control applications.' (Wilkes (1958))
Included in the last class were business applications and those problems of an operational research type such as decision making.
The Journal was formed to satisfy 'the need for a British journal devoted to computers ... the aims and objectives of which are to provide a permanent record of papers and notes of lasting interest to all who are engaged in the development and use of computational machinery and related techniques' (Preface, 1958). In addition, surveys and correspondence were encouraged, as well as articles stimulating discussion. A scan of the contents of the first 10 volumes of the Journal indicates that the Editorial Board was true to its mission, as well as ensuring a balance of papers across the field of activities involving computers. The categories of Wilkes (1958) are generally well represented with the possible exception of 'engineering design', which has a very small contribution compared with the other topics.
In order to trace the historical development of computing through the Journal's first decade, the use of these categories was considered. However, a number of papers are of the survey type or do not easily categorise into these topics and others discuss programming and later, design, issues that are related not to applications but to the development of computing itself. Consequently, as stated above, it became necessary to modify Wilkes' categories (Figure 1) into programming, systems issues, numerical analysis, business applications, scientific and technical research and the beginnings of artificial intelligence (Figure 2).
Each of these categories will be discussed in turn, beginning with that of programming since there are a large number of such papers in every volume throughout the decade. Similarly, the other categories follow in an order loosely determined by popularity of papers over the 10 years considered here.


Programming
As we have seen, programming at the beginning of the 'Second Decade of Computers' (Wilkes, 1958) was still dependent upon instruction code although a number of manufacturers had developed an autocode which formed the basis of what was to become known as a compiler. Thus, programming was very much still in its second generation although the direction was clearly moving towards a higher level of language input in order to shorten training time for programmers and also to make programming more attractive to non-specialists. Understandably then, the very early papers about programming in the Journal were still related to autocode and programming problems that related back to the original computer (hardware) design, which was essentially built from solid-state, discrete components backed up by magnetic drums or tapes (Howlett, 1999).
AMOS, a Ferranti Mark I computer, was a typical computer of the time with two-level storage (i.e. a working store using cathode ray tube technology and a backing store using a magnetic drum) with an interchange of data time for backing store to working store of 47 milliseconds while the reverse operation took 93 milliseconds (Berry, 1959) . For large problems this computer was efficient but, for smaller problems, an alternative system of programming was devised that was based on Brooker's Mark I autocode but unlike the autocode developed later by Brooker (as mentioned above). The AMOS Intercode was not intended to replace machine instruction (Berry, 1959); indeed, it retained many of the features of the instruction code.
This suggests that the concept of computers for all scientists and engineers was still for some an anomaly but Brigham and Bell (1959) described a translation routine for the DEUCE computer with the premise that most 'computers in operation today have supplementary programs which do automatic coding or program assembling. These programs either translate, automatically code, or interpret pseudo instructions...' (Brigham and Bell, 1959). The resulting pseudo language, SODA in this case, aided the novice programmer, enabling such people to write programs with little external help (Brigham and Bell, 1959). In addition, SODA assigned tedious and clerical type tasks to the computer rather than the human programmer, again indicating a shift in paradigm from the early days of programming towards a more functional, task-based approach such as we have today.
While not all computer experts saw the need for the accommodation of a widening of programming ability, there was a general awareness that easier (and less time-consuming) techniques were needed. But the situation at this time was difficult to summarise and was complicated, 'with many coding schemes in existence' (Gill, 1959). The use of automatic programming or automatic coding, often abbreviated to autocode from Brooker's work (as mentioned above), comprised a program being written by a programmer which would undergo translation within the computer itself and Gill (1959) listed some of these changes. For example, in the automatic program, characters could be coded as numbers, abbreviations given in full and general statements replaced by particular ones such as relative addresses being converted into absolute addresses.
Also, the computer itself may re-order the program so that the net effect may be considered as a translation.