EPOCH
EPOCH © 2025 by Stéphane Fosse - This book is published under the terms of the CC BY-SA 4.0 licenseChapter 4
1950
The Silent Birth of a Computed World
In the aftermath of 1945, while Europe tended to its wounds, a new world order was taking shape. The smoldering ruins of World War II gave way to an ideological confrontation between two giants: the United States and the USSR. This rivalry, less bloody but equally fierce, would shape technological development throughout the 1950–1960 decade.
Washington and Moscow poured colossal funds into their military and space programs. Bombs became more destructive, missiles more accurate, aircraft faster. Each technical advance demanded more complex calculations. Old abacuses and slide rules were no longer sufficient. Machines capable of rapidly processing equations with multiple variables, simulating nuclear explosions, or calculating ballistic trajectories in hours rather than months were needed.
The war had proven the utility of computing machines. The breaking of the Enigma cipher by the British at Bletchley Park had shown that a well-designed machine could solve problems deemed unsolvable. In the United States, the National Security Act of 1947 created the CIA and NSA. These new agencies fed on data—intercepted messages, spy reports, or aerial reconnaissance photographs. Encryption and decryption became major strategic issues.
Far from military concerns, civil society was undergoing an unprecedented transformation. The Western economy was experiencing meteoric growth. Companies were expanding, administrations growing larger. Everywhere, papers were accumulating: pay slips, purchase orders, invoices, letters, or medical records. Traditional methods of filing and archiving were showing their limits. Herman Hollerith’s punched cards, already dated, no longer met modern needs.
The baby boom was transforming demographics. Millions of children were born each year, requiring more efficient public management systems. In Europe, new social welfare policies generated mountains of forms. In the United States, the Social Security Administration was overwhelmed with files. How could all these citizens, their contributions, their entitlements, be effectively tracked?
Once reserved for the wealthiest, banking services were becoming democratized. The number of accounts exploded, transactions multiplied. Tellers and accountants, armed with their ledgers and mechanical calculators, struggled to keep pace. The financial sector demanded faster and more reliable solutions.
In factories, automation was progressing by leaps and bounds. Assembly lines were adopting electronic control systems. Norbert Wiener’s cybernetic theory was finding concrete applications. Feedback principles, used to guide missiles during the war, now served to regulate industrial production.
A fruitful alliance was forming between universities, industrialists, and the military. MIT, Harvard, the University of Pennsylvania, as well as private laboratories like Bell Labs or IBM, became crucibles of innovation. A new generation of researchers and engineers tackled the problems of automatic computation. This cooperation model, which President Eisenhower would later call the military-industrial complex, considerably accelerated technical progress.
The new profession of programmer was emerging. These specialists translated concrete needs and problems into instructions comprehensible to machines. Notably, many women held these positions, such as Grace Hopper, who worked on the first compiler. This marine mathematician was paving the way for more intuitive programming methods, freeing users from the complexity of machine languages.
The proliferation of computing machine manufacturers created an unexpected compatibility problem. Each constructor developed its own standards. Machines could not understand each other; programs written for one model did not work on another. The first standardization efforts appeared timidly, harbingers of an issue that would leave a lasting mark on computing history.
The media was discovering these mysterious machines. Popular newspapers evoked with fascination or concern these “electronic brains.” Hollywood seized upon the subject, sometimes presenting the computer as a marvelous assistant, sometimes as a threat to humanity. These contradictory representations shaped public perception of a still poorly understood technology.
Automation raised social concerns. Certain professions seemed threatened with extinction, and unions were alarmed by the risks of massive unemployment. In academic circles, the first debates on artificial intelligence were taking shape, particularly after the Dartmouth conference in 1956 where the term was officially adopted.
The global telephone network was expanding, and new cables were crossing the oceans, connecting continents. Communication quality was improving and costs were decreasing. Remote data transmission was becoming technically possible, opening the way to future computer networks.
Claude Shannon’s theoretical work on information was finding its first practical applications. His mathematical concepts of coding and error correction made communications more reliable. The bit was gradually becoming established as the fundamental unit of information measurement.
The transistor, invented in 1947 at Bell Labs, was gradually replacing vacuum tubes. Smaller, more reliable, less power-hungry, it enabled the design of more compact devices. In the San Francisco region, young companies specializing in semiconductors were establishing themselves in what would become Silicon Valley.
The natural sciences were adopting these new computational tools. Astronomers, physicists, chemists discovered the possibilities offered by automation. Emerging disciplines like molecular biology benefited from these increased processing capabilities. Meteorology began using computing machines to improve its forecasts, with modest but promising results.
This 1950–1960 decade marked the beginning of a social transformation. Technical innovations were inextricably intertwined with economic and cultural changes. The impact on our societies remains palpable in the 21st century, as we navigate an increasingly digitized and interconnected world.
Hamming Code
Richard Wesley Hamming was working at Bell Labs on the Model V, one of the first relay computers intended for the Aberdeen Proving Ground, when he observed a challenging reality: this machine composed of 8,900 mechanical relays experienced two to three failures daily. This represented approximately one failure every two to three million operations. The problem lay not so much in detecting errors, since the self-checking circuits handled this adequately. The difficulty arose when the machine operated unattended, particularly at night and during weekends. Calculations would come to an abrupt halt. Sometimes the computer would resume work on a new problem, without however guaranteeing the continuity of previous operations.
This very concrete technical situation pushed Hamming toward deeper reflection. He sought to go beyond simple error detection to create a system capable of automatically correcting these failures. A true break from previous approaches.
The particularity of the technological context adds depth to his approach. Computers were beginning to supplant telephone exchanges as the most complex information processing systems. Yet these two architectures presented a key difference. A telephone exchange has many parallel paths relatively autonomous from one another. An error on one of these paths affects only a limited number of calls. Moreover, errors escaping automatic detection end up being reported by customers themselves. A computer, on the other hand, generally follows a single path where information passes many times through the same components before reaching the final result. A single undetected error risks invalidating all subsequent calculations.
Faced with this problematic structure, Hamming developed an innovative mathematical approach. His starting point was information encoded in binary form. This representation naturally aligned with open or closed relays, flip-flop circuits, Morse code dots and dashes, or punched tapes. His true breakthrough lies in adding supplementary bits to the data, called parity bits, which not only detect errors but locate them precisely.
The heart of Hamming code lies in a deceptively simple principle: each parity bit checks a specific set of positions in the message. Through judicious choice of these sets, one can identify exactly which position has been altered. As an example, in a seven-position code with four dedicated to information, three parity bits suffice to correct any single error. This redundancy, defined as the ratio between the total number of bits used and the minimum number necessary to transmit the information, constitutes the price to pay for guaranteeing data integrity.
For the first time, with Hamming’s publication in the Bell System Technical Journal in 1950, a rigorous theoretical framework addressed the question of digital system reliability. Hamming notably introduced a geometric representation of error-correcting codes, where bit sequences are points in an n-dimensional space. The distance between two points, measured by the number of positions where their coordinates differ, becomes a powerful analytical tool for evaluating the detection and correction capabilities of codes.
This geometric approach enabled Hamming to prove the optimality of his codes in several significant cases. He demonstrated that no code can detect single errors with less redundancy than his construction, and established analogous results for single-error correction and double-error detection. These theoretical demonstrations confirmed that the proposed trade-offs between redundancy and correction capability achieve the best possible balance under the assumptions considered.
Richard Wesley Hamming envisioned other applications beyond the computer domain. Three particular situations derive notable benefit from his codes: unattended operation over long periods with minimal backup equipment, large tightly interconnected systems where an isolated failure risks paralyzing the entire installation, and signal transmission in the presence of noise when its reduction proves impossible or too costly.
His vision proved prophetic. The advent of electronics has certainly made components more reliable than mechanical relays, per operation. However, the considerable increase in speed and complexity of systems has kept the question of errors at the forefront of concerns. Hamming codes and their descendants populate today’s computer memories, storage devices, and communication systems.
Hamming’s legacy lives on in sophisticated error-correction techniques integrated into modern technologies. More complex codes now handle varied error patterns, all resting on the foundations laid by Hamming: the controlled addition of redundancy to detect and correct errors, and rigorous mathematical analysis of the capabilities and limits of error-correcting codes. His reflection on digital reliability gave birth to a renewed vision of computer design. Error management no longer appears as a secondary issue but as an integral part of system architecture. A perspective that retains all its relevance in our time.
Magnetic Core Memory
Magnetic ferrites revolutionized the world of computing in the mid-20th century. These small ferrite rings, capable of maintaining a stable magnetic state, marked the history of computer storage for nearly twenty years. Their principle relies on an elegant application of the physical laws of magnetic hysteresis: each core could be magnetized in one of two distinct states, thus perfectly representing the binary values 0 and 1.
An Wang, a researcher at the Harvard Computation Laboratory, described this technique as early as 1949, which retained information even after the power supply was cut off. The real breakthrough lay in manipulating this magnetic state through simple electrical pulses passing through the core.
Jay Forrester transformed this theory into concrete reality. At MIT, he demonstrated in 1951 the viability of a three-dimensional storage system based on these tiny rings. William Papian, working on the Whirlwind project, and Jan Rajchman at RCA Laboratory developed architectures during the same period that would be massively adopted. Their work led to the integration of this technology into computers such as Harvard’s Mark IV.
The construction of such a memory relies on a two- or three-dimensional mesh of rings, each traversed by multiple conductors: X and Y selection lines, read/write wire, and sometimes an inhibit wire. To select a specific core, currents must be applied simultaneously to the corresponding X and Y lines. This coincident current trick solves the individual addressing problem while limiting the necessary control circuits.
Notably, reading erases the core’s contents. The data must therefore be rewritten immediately if it is to be preserved. Despite this constraint, the advantages of this technology won over the industry through data retention without power, rapid access in a few microseconds, excellent reliability, and remarkable storage density for the time.
Manufacturing required extreme precision. Assembly remained largely manual, with threading wires through the minuscule rings demanding patience and precision. Semi-automated tests could verify about 200 cores per hour before integration. Once the matrix was assembled, replacing a defective core was a real headache.
Burroughs Corporation explored an interesting variant with rope memory. This particular configuration of cores and wires enabled permanent information storage, ideal for preserving programs and system routines. The Apollo program’s guidance computer notably benefited from this technology.
Performance continued to improve. Access times dropped to less than 2 microseconds. Output signals, initially a few millivolts, reached several hundred millivolts, greatly simplifying detection circuits. Component standardization led to cost reduction. Magnetic cores thus found their place in large systems and in industrial and embedded computers.
The advent of semiconductor memories initiated this technology’s decline in the late 1960s. Benefiting from the meteoric rise of microelectronics, these new memories offered unprecedented miniaturization possibilities. The transition nevertheless took time, with the non-volatility of magnetic cores remaining an asset for certain critical applications.
The conceptual legacy of magnetic core memory remains visible in modern computing. Matrix addressing, read-with-refresh, and hierarchical memory organization are all principles that remain relevant today. These ferrite rings made faster and more reliable computers possible, contributing to the computing explosion across numerous sectors of activity.
Magnetic Tape
In 1878, an American engineer named Oberlin Smith envisioned a recording system using metallic wire. Fascinated by Thomas Edison’s phonograph, he published his idea in The Electrical World ten years later. A stroke of genius that opened a new chapter in the art of capturing sound.
Danish inventor Valdemar Poulsen transformed this vision into tangible reality. His “Telegraphon” of 1898 recorded signals on steel wire for the first time. Proof was established that magnetic recording worked. However, without electronic amplification, the device remained a prototype with no immediate commercial future.
The true metamorphosis occurred in 1930s Germany. Fritz Pfleumer invented his famous “sound paper” in 1928, a support coated with iron oxide. This discovery attracted AEG, which partnered with BASF to create the Magnetophon in 1935. On its cellulose acetate tape coated with iron oxide, the future of magnetic storage was already being written.
World War II accelerated technical evolution. In 1940, Walter Weber discovered AC bias, a process that enhanced sound quality remarkably. Reich radio broadcasts then featured recordings of such realism that the Allies mistook them for live transmissions. After the war, John Mullin, an American officer, brought two precious Magnetophons back to the United States. His demonstrations dazzled American industry. Ampex seized the opportunity and launched its Model 200 in 1948, the first professional tape recorder made in the USA.
The 1950s structured and standardized the technology. In the computing world, magnetic tape established itself as the reference for audio recording and reigned supreme for data archiving. Its generous capacity and moderate cost made it the ideal solution for early mainframes. The 9-track tape standardized data exchange between different systems. Japan awakened to this technology, with Sony at the forefront.
A leap forward occurred in 1963. Philips unveiled its compact cassette, a miniature format compared to the imposing reels of the era. The Dutch giant made a master stroke by making its license freely available. The format exploded. Japanese manufacturers perfected the technology with innovative magnetic materials and ultra-sensitive read heads.
The 1970s-1980s witnessed major innovations. Chrome and then metal particles increased recording density. Read heads became more refined through Sendust and amorphous alloys. Magnetic tape revolutionized our relationship with sound and memory. It spawned unprecedented cultural practices such as portable listening, symbolized by Sony’s Walkman in 1979.
The digital era of the 1980s transformed tape without killing it. For computing, DLT (Digital Linear Tape) appeared in 1984, followed by DDS (Digital Data Storage) in 1989. These formats offered ever-greater capacities. For 21st-century data centers, it remains a preferred archival solution, with an unbeatable cost per terabyte ratio.
The history of this brown ribbon demonstrates constant adaptation. Born for sound, it conquered computer data, video, and professional archiving. In the age of cloud computing, tape retains a trump card against cyber threats: its capacity for physical isolation (airgap). This bulwark against ransomware makes it the ultimate protection for critical data. This resistance to attacks, coupled with its cost-effectiveness for storing immense volumes, ensures it a lasting place in modern architectures, where it complements hard drives and cloud solutions.
Ferranti Mark I
In the winter of 1951, the University of Manchester received from Ferranti a machine that would change everything: the Mark I. This British electronic calculator beat the American UNIVAC I by a few months and went down in history as the first commercially available computer. This technical venture would never have happened without the foresight of Sir Ben Lockspeiser. This senior official at the British Ministry of Supply had grasped the importance of connecting university research with industry.
In reality, this machine extended the work of F.C. Williams and Tom Kilburn. These researchers had already designed a working prototype at the University of Manchester. The British government, eager to capitalize on this breakthrough, entrusted Ferranti with transforming the experimental into the commercial. While the overall architecture remained faithful to the original, Ferranti’s engineers added their own touch: a revised instruction set, additional index registers (the famous B-lines), and novel features like a random number generator.
The Mark I’s memory reflected the technological constraints of the era. On one side, electronic memory built around Williams tubes, fast but limited to 20,480 bits. On the other, a slower magnetic drum with 655,360 bits distributed across 256 tracks of 2,560 bits each—a dual system foreshadowing the hierarchical memory architecture of modern computers.
Programming the Mark I was almost an initiation rite. Alan Turing, the legendary figure in computing and then a researcher at Manchester, wrote the first manual for this machine. His approach consisted of bare-bones machine code, with no concessions to human cognitive limitations. Meanwhile at Cambridge, David Wheeler had created a rudimentary but far more accessible assembler for the EDSAC. Two visions clashed.
The interface with the outside world relied on five-hole punched tapes. The input stream reached 400 characters per second thanks to Ferranti’s photoelectric reader. For output, a more modest punch (33 characters per second) and a teletype printer translated the calculation results. A loudspeaker completed the setup, alerting the operator with sound signals when attention was needed.
Mathematicians were among the first to harness this unprecedented computing power. They used it to explore Mersenne numbers or test aspects of the Riemann hypothesis. Physicists employed it for ray tracing calculations in optics. The data processing speed opened new possibilities for research, despite reliability that sometimes left much to be desired.
The Mark I’s commercial venture also tells the story of the British computer industry’s struggles. From 1951 to 1957, only nine units found buyers: seven Mark I Stars and two Mark Is. The narrow British market limited growth prospects. When IBM arrived in the United Kingdom with its rental model, competition became fierce for local manufacturers.
The Mark I’s history can also be read through the complex relationships between Ferranti and government bodies, notably the National Research Development Corporation (NRDC). While public funding made this venture possible, the often tense negotiations between Ferranti and the NRDC sometimes slowed the project. Sir Vincent de Ferranti fiercely defended his family company’s interests, seeking to minimize financial risks in this uncertain venture.
The contrast between British technical potential and its commercial realization stands out in the statistics: in 1960, the United Kingdom had 240 computers in operation, compared to 5,400 in the United States. Yet the Ferranti Mark I occupies a special place in computing’s pantheon. Its multi-level memory, indexing system, and overall architecture shaped the design of subsequent computers. As the first commercial computer, it embodied that moment when university research met industrial production.
This experience also redirected Ferranti’s trajectory. Facing economic realities, the company gradually abandoned the mainframe market to focus on military applications, minicomputers, and later microprocessors. In 1963, Ferranti definitively left the central computer sector.
LEO I
In the mid-20th century, J. Lyons & Co dominated the British food market. Born from the visionary ideas of the Salmon-Gluckstein family in the late 19th century, this company managed a sprawling network of elegant tearooms, popular restaurants and industrial bakeries across the entire country.
Unlike other companies, Lyons cultivated an atmosphere conducive to technical innovation. The reason was simple: every day, thousands of modest transactions accumulated, each generating a minimal margin. Financial survival therefore required almost obsessive rigor in administrative management. This particular feature had prompted management to recruit a Cambridge mathematician, John Simmons, as early as 1923, capable of bringing a scientific dimension to their working methods.
In the spring of 1947, two company executives, Oliver Standingford and Raymond Thompson, flew to America. Their initial mission concerned the study of modern office equipment, but they stumbled upon information about ENIAC. These gigantic calculating machines, then confined to scientific laboratories, aroused their curiosity. They sensed that such automated calculations could radically transform Lyons’ bureaucracy.
Their intuition led them to Cambridge University, where Maurice Wilkes was working on EDSAC. Upon their return, they wrote a bold report. Not content with suggesting the adoption of computing for their company, they proposed that Lyons build its own machine. This idea, which would seem absurd today for a food company, fitted perfectly with the company’s philosophy of technical independence, accustomed to designing its own industrial tools.
Management approved the project and paid out £3,000 to support Wilkes’ work, securing valuable technical assistance in return. To carry out this venture, the company hired Dr John Pinkerton, a brilliant engineer recommended by Wilkes. David Caminer, head of systems at Lyons, was given the task of developing applications and programming methods tailored to the company’s specific needs.
Construction of LEO I (Lyons Electronic Office) began in 1949. This colossus occupied over 450 square meters and operated using approximately 6,000 vacuum tubes distributed across 21 imposing metal cabinets. Although based on EDSAC’s architecture, LEO I incorporated substantial modifications to efficiently process commercial data. The engineers paid particular attention to input-output systems, combining punched cards and paper tape for data input, supplemented by printers and punches for outputting results.
On November 29, 1951, LEO I accomplished its first regular task, the weekly evaluation of Lyons bakeries’ production. This program analyzed production figures for breads, cakes and pies from twelve different sites. It automatically calculated valuation by integrating raw material costs, wages and overhead expenses. No computer had ever performed such a management task before.
This first success encouraged the team to develop other applications: inventory management, calculation of optimal tea blends, organization of deliveries to different points of sale, automated invoicing. A new milestone was reached on February 12, 1954, when LEO I processed the payroll for 1,670 bakery employees, directly producing salary checks without a backup system.
The prowess of this machine soon attracted attention from outside organizations. The British Meteorological Service used it for weather forecasts, the tax administration for calculating tax scales, and British Railways to determine distances between all its stations. The success of these services prompted Lyons to create a specialized subsidiary in 1954, LEO Computers Limited, to commercialize this technology.
This story tells a curious paradox: while traditional office equipment manufacturers and electronics giants hesitated, a chain of restaurants and tearooms was creating the world’s first computer for a viable commercial application. LEO I operated until January 1965, before giving way to the more powerful LEO II and LEO III models that equipped numerous British companies and administrations.
The LEO saga continued through a series of industrial mergers: first with English Electric in 1963, then with other companies to form International Computers Limited in 1968. The last LEO III was quietly decommissioned in 1981 in the premises of the British Post Office.
UNIVAC I
The first commercially produced computer manufactured in series came to life under the name UNIVAC I, an acronym for Universal Automatic Computer. Its history began with two talented engineers from the University of Pennsylvania: J. Presper Eckert and John Mauchly. These visionaries had just completed the design of ENIAC during World War II when they recognized the commercial potential of computers.
In late 1945, with the ENIAC blueprints barely dry, Eckert and Mauchly contacted the U.S. Census Bureau. Their proposal was for a computer capable of rapidly processing demographic data through the innovative use of magnetic tape as a storage medium.
In the spring of 1946, the two engineers left the University of Pennsylvania, determined to capitalize on their unique expertise by entering the private sector. They first established a simple partnership before founding the Eckert-Mauchly Computer Corporation in December 1947. Beyond scientific computation, they envisioned applications for accounting, document management, and statistical analysis.
UNIVAC evolved continuously during its development phase. Initially designed as a statistical tool for the Census Bureau, the project expanded following discussions with the A.C. Nielsen Company and Prudential Insurance. These new requirements steered the machine toward alphanumeric data processing, essential for managing insurance policies, billing, and actuarial calculations.
Financial difficulties plagued the machine’s development. In 1948, American Totalisator Company invested 500,000 dollars in the company in exchange for 40% of the shares. Despite this injection of capital, difficulties mounted. The situation became so critical in 1950 that Eckert and Mauchly had to sell their company to Remington Rand, which took over development and commercialization.
Technically, UNIVAC I excelled through its innovations. Its mercury memory stored 1,000 words of 12 characters each. Used for data input and output, the magnetic tapes processed 20,000 characters per second. The machine performed an addition in 525 microseconds and a multiplication in 2,150 microseconds. Its remarkable reliability relied on a self-checking system: nearly one-third of the circuits served solely to detect errors.
UNIVAC I’s modular design constituted one of its strengths. Tasks not directly requiring the central processing unit were delegated to autonomous auxiliary modules, each with its own power supply. This architecture enabled parallel operations for magnetic tape input, punched card conversion, and printing, without slowing down the main processing.
The Census Bureau received the first unit in March 1951, after a battery of rigorous tests. These trials, jointly developed by the Bureau of Standards and the Census Bureau, evaluated both computing capabilities and input-output system performance. The computer notably had to prove its ability to execute 2,500 operations in 1.26 seconds and correctly manipulate 1.4 million characters on magnetic tape.
The arrival of UNIVAC I transformed organizational computerization. The Census Bureau used it for monthly economic reports and business censuses. General Electric, in Louisville, employed it for payroll, materials tracking, and sales analysis. Franklin Life Insurance Company adopted it to manage premium billing, calculate commissions, and maintain dividend accounting.
The U.S. Air Force demonstrated the machine’s potential well. Its “Air Materiel Command” managed a massive inventory of 1.2 million items, approximately six times that of a department store. Thanks to UNIVAC, establishing the forecasted budget for aircraft spare parts took only one day, compared to several weeks previously with punched card systems.
Maintaining this technological marvel required strict discipline. The Census Bureau ran its system 24 hours a day, seven days a week, except for four eight-hour windows dedicated to preventive maintenance. The latter consumed approximately 21% of available time. Vacuum tubes caused the most frequent failures: on average, two tubes failed each week and had to be replaced.
Operator training proved crucial for maximizing system performance. Remington Rand quickly realized that a UNIVAC I required a supervisor of the caliber of one managing a large punched card installation, but with a smaller team of highly qualified operators. This human expertise enabled both sound operational decisions and early detection of malfunctions.
Experience gained with the first UNIVAC I generated continuous improvements. Engineers progressively identified and corrected various problems: parasitic oscillations in certain circuits, relay bouncing in the Uniservo units (magnetic tape drives), and other mechanical issues. These corrections naturally benefited subsequent models.
By October 1954, Remington Rand had delivered twelve UNIVAC I systems and received orders for four additional systems. This commercial success demonstrated the viability of the business computer market. UNIVAC I was the first computer in a computer industry oriented toward commercial applications, distinct from the purely scientific calculators that had previously dominated. Its success validated Eckert and Mauchly’s vision: that of a universal computer capable of serving diverse applications, from scientific computation to business management.
A-0 Compiler
In the spring of 1952, American mathematician Grace Murray Hopper created the A-0 (Arithmetic Language 0), the first compiler ever designed. This creation occurred at a time when computing was attempting to break free from military laboratories and open up to other horizons.
The path toward this innovation began during World War II. In 1943, this Yale graduate joined the U.S. Naval Reserve before being assigned to Harvard. There she worked on the Mark I, then the most imposing digital calculator, under the supervision of Howard Aiken. She was among the first three programmers in history to operate this ancestor of modern computers.
On the Mark I, programming was performed via punched tape: a hole symbolized a 1, the absence of a perforation a 0. Hopper wrote the machine’s operating manual, a 500-page Manual of Operation for the Automatic Sequence Controlled Calculator. This deep dive into the machine’s inner workings gave her a unique perspective on the difficulties of programming at its most elementary level.
In 1949, she left Harvard for the Eckert-Mauchly Computer Corporation. She participated in the design of UNIVAC I, the first commercial electronic computer. It was there that she noticed a practical problem: programmers were wasting hours copying existing code to adapt it to new projects. This tedious task generated numerous errors, primarily when manually adjusting memory addresses.
This observation led her in 1951 to create a system to automate the process. She developed the A-0, capable of assembling pre-existing subroutines into a coherent program. Her system used alphabetic characters to indicate the nature of operations (a for arithmetic, x for exponential). Arguments and results appeared in a numbered list, referenced by their position.
The magic of the A-0 lay in its ability to translate between symbolic language and machine code. To calculate the square of a number, a programmer simply specified the operation and references to variables, without writing all the corresponding binary instructions. This abstraction constituted a breakthrough because, for the first time, humans programmed in a language more natural to them.
The gains proved considerable, with weeks of programming reduced to a few hours. Errors decreased, reliability increased. The A-0 introduced a layer of abstraction between humans and machines that would become the cornerstone of modern computing.
The system evolved with versions A-1 and then A-2 in 1953. This latter version introduced short mnemonics for operations, making the code more readable. For example, ADD 00X 00Y 00Z adds X and Y, storing the result in Z. A-2 was the first compiler widely adopted by UNIVAC users, thus validating the concept.
In 1954, Hopper took charge of automatic programming for the UNIVAC division. This position gave her the opportunity to realize her vision of a more accessible language. She understood that most users had little appreciation for mathematical symbols and preferred something more natural: English. This reflection led to B-0 (Business Language 0) in 1955, renamed FLOW-MATIC, which allowed programs to be written with syntax close to everyday English.
The A-0 reached its peak in the development of COBOL starting in 1959. At the Conference on Data Systems Languages (CODASYL), where Hopper served as technical advisor, the foundations established with A-0 and FLOW-MATIC directly inspired this language. The structure of code in distinct sections and the use of syntax close to English primarily characterized COBOL.
The A-0 compiler established several foundational principles for computing: code reusability, abstraction of machine operations toward high-level instructions, and accessibility of programming. These concepts remain essential, to the point that it’s difficult to imagine contemporary computing without them.
Hopper’s contribution earned her numerous distinctions. In 1969, she received the Computer Sciences Man-of-the-Year Award from the Data Processing Management Association, a title whose irony doesn’t escape anyone with our contemporary perspective. She continued her career in the U.S. Navy until 1986, reaching the rank of Rear Admiral, while advocating for computer innovation and the democratization of programming.
The A-0 compiler transformed a field once reserved for mathematicians and scientists into a more broadly accessible tool. Ease of use on one hand, and abstraction of technical complexities on the other, remain today at the heart of programming language designers’ concerns, a direct legacy of Grace Hopper’s work 73 years ago.
IBM 701
In the early 1950s, Thomas J. Watson Sr. approved James Birkenstock’s proposal to create an innovative computing machine. This machine would use cathode ray tube memory of approximately 20,000 digits and feature a clock cycle capable of multiplying two numbers in one millisecond. Initially named the “Defense Calculator,” the machine came into being during the Korean War at the request of the U.S. Department of Defense. A team led by J. A. Haddad and Nathan Rochester was assigned to its development.
The world had only about twenty functional digital computers. Birkenstock believed that approximately thirty of these machines would find buyers in the defense industry. The creation of the Defense Calculator was relatively rapid thanks to IBM’s experience with its earlier products. The team adopted a minimalist philosophy: simple equipment, streamlined logic design, and the absence of superfluous devices.
The question of word length sparked considerable debate at IBM. Werner Buchholz emphasized the importance of this technical choice, as insufficient length would require using multiple words for a single number. Conversely, excessive length would slow operations and increase costs. After studying existing machines, IBM determined that a length between 10 and 12 digits (35 to 41 bits) would be ideal. Magnetic tape technology suggested that 6 parallel channels represented an optimum for storage. IBM therefore set the word size at 36 bits for its 701.
On April 29, 1952, Thomas J. Watson officially announced the IBM 701 Electronic Data Processing System at an annual meeting. The “Data Processing” designation emphasized its ability to handle different types of data in various contexts. The first model arrived at IBM headquarters in New York in December 1952. Installed in the former SSEC room, it became an attraction for passersby. This machine served technical consulting operations for various clients, with a team of IBM scientists dedicated to solving their problems.
The second machine (serial number 1) was delivered to Los Alamos Scientific Laboratory on April 1st, 1953. Three days were sufficient to make it operational. It functioned until autumn 1956, before a second machine was installed in 1954. Its electrostatic memory, despite its lack of reliability, contained 2048 words of 36 bits. The system comprised the central unit, a card reader, a printer, a magnetic drum storage unit, two magnetic tape drives, and a card punch.
The 701 was the first machine produced in sufficient quantity to meet the needs of an expanding clientele. Its modular design, with detachable components, marked the beginning of a new philosophy at IBM: building expandable machines rather than monolithic systems requiring complete replacement. The standard configuration consisted of eleven elements: two magnetic tape units (each with two drives), a magnetic drum memory unit, a cathode ray tube electrostatic storage unit, an L-shaped arithmetic and control unit with operator panel, a card reader, a printer, a card punch, and three power supply units.
The IBM 701 displayed remarkable compactness. Its logic was housed in 64-pin modules, each carrying a row of 8 vacuum tubes on the front. Logical operations were executed via germanium diodes located at the base of the modules. These modules integrated into a backplane designed to allow their replacement without shutting down the system. IBM was among the first to use backplanes as a means of accommodating different types of functional modules.
The Analytical Control Unit (ACU) housed the arithmetic components, input-output control circuits, and stored program control circuits in a large cabinet. A separate cabinet contained the operator console. The ACU operated with a pulse repetition rate of 1 megahertz. A 12-stage ring generated twelve 1-microsecond pulses forming the basic machine cycle. This speed primarily met the regeneration requirements of the electrostatic storage unit. The latter contained 72 cathode ray tubes storing 10,240 digits, or 2,048 words of 36 bits, with an access time of approximately 12 microseconds. Data could be accessed randomly. The cost per bit approached one dollar, much less than vacuum tube storage. The monthly rental for this unit amounted to approximately $2,600.
The 701’s input-output system performed five functions: selecting a unit for reading, writing, or control; interlocking the operation with program execution; copying data between the electrostatic storage unit and I/O units; synchronizing signals between the selected unit and the CPU; disconnecting the I/O unit once its work was completed.
In 1956, the IBM 737 Magnetic Core Storage Unit replaced the electrostatic storage unit. With a capacity of 4,096 words of 36 bits, it reduced the addition time, including access, from 60 to 36 microseconds. Its monthly rental reached approximately $6,100.
As a binary single-address scientific computer, the IBM 701 had a word size of 36 bits and an instruction set of 33 instructions. The 701’s CPU remained 25% empty to facilitate error correction or the addition of features. Its monthly rental amounted to approximately $16,000. By the end of 1954, 18 machines were installed and fully operational.
Its successor, the 704, filled this space with additional functions. This was followed by a line of increasingly powerful and faster machines, maintaining backward compatibility and incorporating new features. This evolution culminated with the 7094 II and its simplified versions, the 7040 and 7044.
IBM 702
After the 701, IBM created the 702, among the first computers designed for business applications, alongside the LEO and UNIVAC. Introduced in 1954, this machine marked a break with the era of punched-card tabulating equipment that dominated administrative processing at the time. General Electric was among its first purchasers, seeking to modernize its management methods in a tense post-war social context. For GE, the automation of administrative tasks represented a means to reduce its dependence on unionized personnel, amid conflict with the United Electrical Workers organization.
The IBM 702 stood out with its electrostatic memory based on cathode ray tubes, storing up to 10,000 characters. This capacity corresponded to approximately 125 punched cards, a considerable leap compared to earlier machines that handled only one or two cards simultaneously. Additional magnetic drums could extend this capacity, each equivalent to 750 cards. The machine innovated with its variable word-length architecture. This approach differed from contemporary scientific computers using fixed-size words. The IBM 702 thus processed data ranging from one to several hundred characters, a flexibility ideal for commercial applications handling information such as names, addresses, and amounts. Numerical processing was performed in decimal rather than binary, a choice revealing IBM’s intention to simplify programming for commercial uses. The computer manipulated both letters and numbers, an advantage for business data. Each character used seven-bit encoding, including a parity bit for error detection.
Its architecture adopted serial operation, processing characters sequentially. This method, while theoretically slower than the parallel processing of scientific computers, offered great agility for manipulating and reorganizing data, common operations in the business world.
The IBM 702 excelled in input-output speed. While conventional punched-card equipment processed approximately 100 cards per minute, its magnetic tapes reached the equivalent of 3,500 cards per minute, making possible the processing of previously inaccessible data volumes.
Programming was executed in machine language. Each instruction comprised a one-character operation code followed by a four-character address. Programs resided in the same memory as data, following the von Neumann architecture principle. Its instruction set included arithmetic, logical, and transfer operations designed for commercial applications. Memory addresses were absolute, requiring reprogramming whenever the data organization was modified. The programmer had to account for electrostatic memory access delays to optimize performance.
The installation of an IBM 702 at General Electric in 1954 illustrates business computerization during this period. The first targeted application was a payroll system, a project that mobilized a substantial team bringing together GE personnel, Arthur Andersen consultants, and IBM engineers. In parallel, a manufacturing control application was developed for the “Dishwashers and Disposals” department. Notably, the latter became operational before the payroll system despite more limited resources, foreshadowing the observations Fred Brooks would later formulate in his 1975 essay “The Mythical Man-Month” on software project management: adding personnel to a late project delays it further, small cohesive teams often outperform large fragmented structures, and communication complexity grows exponentially with team size.
Reliability was a paramount criterion. For a machine dedicated to financial operations, the IBM 702 incorporated numerous control mechanisms, notably the parity bit to detect errors in data transmission and storage. These automatic checks complemented traditional accounting procedures, such as the use of control totals.
The IBM 702 inaugurated a new chapter in IBM’s history and commercial computing. Its success validated the value of electronic computers for business applications, creating a market that would become dominant. The concepts introduced, such as variable-length data processing and orientation toward commercial applications, had a lasting influence on the evolution of enterprise systems.
The machine had several successors, notably the IBM 705, which adopted its fundamental principles while bringing technical improvements. Nevertheless, its true legacy is found in the System/360 family, launched in 1964, which unified IBM’s scientific and commercial lines in a common architecture. The System/360 retained certain characteristics of the IBM 702, such as the ability to efficiently process both numerical and alphabetical data.
The evolution of computers transformed scientific calculation tools into versatile processing machines. This transformation accompanied the modernization of American businesses during the 1950s, contributing to the emergence of business computing as we know it in the 21st century.
Assembly Language
In the 1940s and 1950s, programmers were constrained to code in pure binary. This tedious work generated numerous errors. Assembly language then emerged as an ingenious solution: replacing binary sequences with mnemonics that were easier to remember. This transition marked the first step toward abstraction in the art of programming.
Assembly language evolved in 1978 with the appearance of the Intel 8086 microprocessor. This 16-bit component brought an architecture that would durably influence the world of low-level programming. The saga continued with the 80186 and 80286 in 1982, which maintained valuable backward compatibility for the continuity of existing applications.
The leap to 32 bits occurred with the 80386 in 1985, followed by the 80486 four years later. This lineage, named x86, established a standard that still spans decades. The instruction set continuously enriched itself while preserving its historical compatibility, guaranteeing longevity for software developments.
The 1990s saw Intel’s monopoly crumble. AMD launched its own processors compatible with the K5, K6, and K7 series. In 2003, the company revolutionized the market with the x86-64 architecture, a 64-bit extension of the classic instruction set. Other manufacturers like VIA and Transmeta joined the venture from 2000 onward. The x86 instruction set constantly expanded. Intel deployed various extensions: MMX, then different versions of SSE, while AMD countered with 3D Now!. By 2012, this instruction set reached over 900 instructions, testifying to the growing sophistication of this architecture.
Modern tools such as MASM, NASM, or GNU Assembler have transformed the programmer’s work with their advanced features. Macros, debugging and optimization tools make assembly programming far less tedious today than in its early days. Certain domains still value assembly language. Embedded systems, where every byte counts, find it an ideal ally. Operating system creators use it for critical sections requiring complete hardware control. Video game developers employ it to extract maximum performance from computationally intensive sections.
Segmentation represents a notable specificity of the x86 architecture. This approach divides memory space into distinct zones dedicated to code, data, and stack. Originally created to overcome the hardware limitations of early processors, it ultimately proved an asset for securing systems by isolating access to different memory regions. The interface between assembly language and operating system has been standardized over time. System calls, particularly under DOS via interrupt 21h, gave assembly programs structured access to system resources. This standardization significantly improved portability and simplified application development.
Floating-point number processing illustrates the evolution of x86 assembly. The first processors in the line required an external mathematical coprocessor (x87). Integration of this unit directly into the processor core, starting with the 486, simplified assembly code writing while multiplying performance tenfold. Contemporary processors internally transform complex x86 instructions into more elementary micro-operations. This approach cleverly combines the benefits of CISC architecture for programming with the efficiency of RISC architecture for execution, thus preserving the richness of the instruction set while maximizing performance.
Although often overlooked, teaching assembly language remains essential in the training of 21st-century computer scientists. It offers an understanding of how computers work and provides a solid foundation for grasping low-level concepts. This mastery proves essential for developing efficient programs, particularly in sectors where performance is paramount, and perhaps also for reducing resource and energy consumption.
Far from being static, assembly language continues to evolve. The emergence of vector instructions and expanded registers now facilitates exploiting the capabilities of modern processors for parallel computing and multimedia processing. These advances prove the remarkable adaptability of assembly language to the ever-renewed demands of computing.
IBM 650
IBM’s model 650, launched on the market in 1954, was the first computer sold on a large scale—over a thousand units—that opened the doors to a new digital era. Nicknamed the “magnetic drum calculator”, the IBM 650 featured a remarkable architecture for its time. Its heart beat to the rhythm of a nickel-cobalt rotating drum 10 centimeters in diameter and 40 centimeters in length. This cylinder rotated at the dizzying speed of 12,500 revolutions per minute and stored 2,000 “words” of ten digits. The particular arrangement of data in 40 bands of 50 positions forced programmers into constant mental gymnastics to minimize access times related to drum rotation.
The physical architecture of the system was divided into three distinct blocks: the central console housing the famous drum and arithmetic circuits, the read-punch unit (model 533) for data input and output, and the power supply unit (model 655) that transformed the language of punched cards into electronic signals comprehensible by the machine.
A technical peculiarity of the IBM 650 lay in its “one plus one address” instruction set. Each instruction contained the operation to be performed as well as the location of the next instruction. This approach, sometimes criticized by modern theorists, proved brilliant in the context of magnetic drum constraints. With only 44 operation codes available, the machine forced economy and elegance in program writing. Donald Knuth, who began programming on this machine during his studies, retained throughout his life a particular fondness for this simplicity that stimulated inventiveness.
The machine evolved and the 653 system enriched the initial configuration with index registers, a floating-point calculation unit, and 60 words of fast memory. Additional peripherals such as magnetic tapes and printers gradually completed the 650 ecosystem, extending its capabilities while maintaining compatibility with existing programs.
The software aspect underwent equally rich development. The SOAP (Symbolic Optimal Assembly Program) assembler created by Stan Poley freed programmers from direct machine code programming. The Bell Labs interpreter, the work of Wolontis, considerably facilitated scientific calculations through floating-point arithmetic. An extensive library of over 200 programs emerged, covering domains as varied as pure mathematics, statistics, management, or solving differential equations.
At Carnegie Tech (now Carnegie Mellon), Herbert Simon and Allen Newell developed on the IBM 650 their IPL-V (Information Processing Language), a precursor in the field of artificial intelligence. This list-processing language introduced determining concepts such as top-down programming and closed subroutines—principles that later became fundamentals of structured programming.
The robustness and relative accessibility of the IBM 650 transformed it into an unparalleled educational tool. Unlike its contemporaries that required highly specialized personnel, this machine could be used directly by students and researchers. Thousands of programmers cut their teeth on its consoles, forming the first massive generation of computing professionals.
The technical limitations of the machine—restricted memory and variable drum access times—proved paradoxically fertile. They forced programmers to develop sophisticated optimization techniques and to think about the structure of their algorithms. These practices durably influenced the teaching and design of computer programs up to the present day.
Beyond technical specifications, the IBM 650 represents the moment when computing left the laboratories to enter offices and universities. It was no longer an experimental curiosity but a practical, reliable, and relatively accessible tool.
IBM 704
In 1954, IBM launched a computer that would be a game-changer: the IBM 704. The first mass-produced computer equipped with a floating-point arithmetic unit, this machine marked a radical departure from the IBM 701 and 702 that preceded it.
What did this machine bring to the table? First, ferrite core memory replacing the Williams tubes used until then. The addition of three index registers also transformed the way of programming. To take advantage of these technical assets, the designers revised the instruction format, now using the complete 36-bit word. This instruction set would become the DNA of the entire IBM 700/7000 scientific line in the following years.
Under the hood of the IBM 704 was a 38-bit accumulator, a 36-bit multiplier-quotient register, and three 15-bit decrement registers. These latter had the peculiarity of subtracting their content from the base address instead of adding to it. The machine allowed simultaneous use of all three registers in one instruction, via a 3-bit tag field serving as a binary map to indicate the participating registers. A technical trick worth highlighting.
The architecture of the IBM 704 was based on two instruction formats: “Type A” and “Type B”. The first combined a three-bit prefix (instruction code), a decrement field (15 bits), a tag field (3 bits), and an address field (15 bits). The second combined a 12-bit instruction code, a 2-bit flag field, four unused bits, a 3-bit tag field, and a 15-bit address field.
Between 1955 and 1960, IBM sold 123 units of this machine. Its performance was approximately 40,000 instructions per second, a number that impressed at the time. Its substantial price reserved it for major scientific laboratories and industrial groups.
But the IBM 704 didn’t just shine through its hardware; it also carried two important software creations. FORTRAN, first, created specifically for this machine. This language made scientific programming more natural, with code writing close to mathematical equations. An automatic translator converted this code into machine language, thus reducing errors and programming time.
LISP, another prodigy born on the IBM 704, still retains today in its car and cdr primitives the trace of this lineage. These names, abbreviations of “Contents of Address part of Register number” and “Contents of Decrement part of Register number”, directly reflect the machine’s architecture, where these fields served to store respectively the head and tail of linked lists.
Computer-assisted music took its first steps on this machine. Max Mathews developed MUSIC there, opening virgin territory to artistic exploration. In 1962, at Bell Labs, physicist John Larry Kelly Jr made the IBM 704 sing. His vocoder synthesizer reproduced “Daisy Bell” with musical accompaniment by Max Mathews. Arthur C. Clarke, an awestruck witness to this demonstration, immortalized it in the final scene of his novel “2001: A Space Odyssey”, where the HAL 9000 computer intones this melody.
The IBM 704 distinguished itself in various scientific fields. Ed Thorp used it to model his equations on blackjack probabilities using FORTRAN. The machine participated in the space race: in the fall of 1957, it became the official computer of the Smithsonian Astrophysical Observatory’s Operation Moonwatch. IBM assigned four scientists—Giampiero Rossoni, John Greenstadt, Thomas Apple, and Richard Hatch—to help Smithsonian researchers calculate the trajectories of the first artificial satellites.
The FORTRAN system developed for the IBM 704 testified to growing software maturity. Its reference manual, published in October 1956, described a complete environment with input-output management, automatic conversions between decimal and binary formats, multidimensional array manipulation, and generated code optimization. The system also handled integration of external routines and allocation of available memory.
The technical documentation emphasized the efficiency of code produced by FORTRAN, comparable to that written by the best programmers in machine language. This performance, coupled with programming simplicity, explains the rapid adoption of the system in scientific circles.
The IBM 704 symbolizes that period when the computer, initially a calculating machine, transformed into a versatile creative tool. Its influence on computer languages, sound synthesis, and scientific computing marked the beginnings of modern 20th-century computing.
Dartmouth Conference
A document written on August 31, 1955 by four scientists, John McCarthy, Marvin Minsky, Nathaniel Rochester and Claude Shannon, proposed organizing a summer conference at Dartmouth College. Their text, A Proposal for the Dartmouth Summer Research Project on Artificial Intelligence, envisioned a two-month gathering to explore the creation of machines endowed with intelligence.
These researchers advocated a bold idea: every aspect of learning and intelligence could be described with sufficient precision to be reproduced by a machine. They wanted to discover how these machines would use language, form abstract concepts, solve complex problems, and improve themselves.
The proposal detailed seven research directions. First, automatic computers: in their view, the limitation was not so much hardware as software – we did not yet know how to write programs that fully exploited available resources. Then came language programming, based on the principle that human thought essentially manipulates words according to certain rules. Neural networks constituted the third axis, seeking to understand concept formation in a neural network. The fourth aspect concerned a theory of calculations and their size, measuring the efficiency of computing devices. Self-improvement represented the fifth component, suggesting that a truly intelligent machine should be able to enhance its own capabilities. The sixth theme addressed abstractions and their classification. The last explored the role of chance and creativity, suggesting that a controlled dose of randomness distinguished creative thought from mere technical skill.
Each of the four organizers brought unique expertise. Claude Shannon, a mathematician working at Bell Labs, had developed the statistical theory of information and applied propositional calculus to switching circuits. Marvin Minsky, a young researcher at Harvard specializing in mathematics and neurology, had built a machine simulating neural learning. Nathaniel Rochester headed information research at IBM and had participated in the design of the IBM 701, one of the first widely adopted commercial computers. John McCarthy, assistant professor of mathematics at Dartmouth, studied the mathematical nature of the thought process.
The Rockefeller Foundation funded the event with 13,500 dollars, covering salaries (1,200 dollars per academic), travel, accommodation, and administrative expenses. Participants from companies like Bell Labs or IBM were supported by their organizations.
The proposal’s appendices reveal the organizers’ personal visions. Shannon wanted to apply his information theory to calculating machines and brain models, particularly to study reliable computation with unreliable components. Minsky wanted to create systems capable of developing sensory abstractions to model their environment. Rochester was interested in originality in machine performance, seeking how to introduce a controlled form of randomness to foster creativity. McCarthy, for his part, explored the relationship between language and intelligence, aiming to create an artificial language giving machines the capacity to formulate hypotheses and self-reference.
The conference generated keen interest. A list of researchers passionate about what was called the "artificial intelligence problem" was established. It included renowned scientists such as John Nash, Herbert Simon, and Warren McCulloch. This disciplinary diversity testified to the subject’s appeal: mathematics, electrical engineering, neurology, psychology, and computer science converged there.
The expression "artificial intelligence" makes its first official appearance in this document. This terminological choice clearly asserted the ambition to create machines capable of genuine intelligence, far beyond the simple automation of specific tasks.
This summer 1956 conference established artificial intelligence as a distinct field, with its own objectives, methods, and vision. The questions it raised – machine learning, natural language processing, knowledge representation, automated reasoning – structure AI research today in the 21st century.
Its influence, beyond the technical framework, created a vibrant scientific community. Participants returned to their institutions to found AI laboratories, train students, and launch research programs that transformed computing over the following decades.
The enthusiasm that shines through the Dartmouth proposal characterizes that era when computing seemed destined for a limitless future. Some hopes encountered more complex obstacles than anticipated, but the conceptual foundations laid during that meeting made possible the applications transforming our daily lives, from voice recognition to automatic translation, from expert systems to deep learning.
IBM 350 RAMAC
On May 6, 1955, IBM quietly unveiled a technical breakthrough that would forever change our relationship with data. In a laboratory in San Jose, a team of engineers had just created the first hard disk drive in history. This device with a name hardly evocative to the general public, the IBM 350 RAMAC (Random Access Method of Accounting and Control), marked the beginning of a new era in digital storage.
It all began three years earlier. In January 1952, W. Wallace McDowell contacted Reynold B. Johnson, a former teacher who had joined IBM. Management wanted to establish a small laboratory on the American West Coast, far from the habits and structures of the East. Johnson was given carte blanche to build a team limited to 50 people. His mission was to explore different technical approaches, particularly impact-free printing and data reduction.
Johnson wasted no time. Within weeks, he rented an empty building in San Jose, launched recruitment, and began operations. Louis D. Stevens, temporarily sent to assist him, would ultimately become his technical right hand. By July 1952, the laboratory was operational with about thirty collaborators. The atmosphere was distinctive, shaped by three rules established by Johnson: understand your machine and its use, know all ongoing projects in the laboratory, and always give priority to helping colleagues.
The project that would lead to RAMAC was initially called “Source Recording.” Its objective was simply to convert alphanumeric data into machine-readable format, while storage options could be counted on one hand: punched cards, magnetic tape, and, more marginally, magnetic drums. These media all had limitations, often leaving processors idle during information retrieval.
In the fall of 1952, the team became interested in the “bin files” of punched cards widely used in businesses. These large rectangular cabinets contained cards sorted by customer or item number. Employees manually searched through them to produce invoices and delivery notes, a slow process prone to errors.
After exploring various approaches, Johnson made a bold decision in January 1953 that met with disbelief: concentrate all efforts on magnetic disks. One engineer predicted a crushing failure, and the project earned the mocking nickname “salami slicer.”
The technical problems seemed insurmountable. Maintaining a microscopic gap between the read head and the rotating surface, creating perfectly flat surfaces, developing a reliable magnetic coating... The list seemed endless. The team tested different materials: aluminum, brass, glass, plastics, magnesium. Aluminum disks deformed at high speed. The solution finally came from compressed and heated aluminum laminates beyond the annealing point. The magnetic coating posed another puzzle. Jake Hagopian found a makeshift method: pouring the coating onto the inner face of a rapidly rotating disk. Bill Crooks improved it by filtering the solution through nylon and using... paper cups for measurements. This rudimentary technique would be used for a year before being automated. Norman Vogel solved the read-write head problem. He designed a system that retracted the head during movement between disks, with three mini pneumatic pistons to control position.
On February 10, 1954, the first successful information transfer between cards and disks was achieved. The prototype looked like a bizarre contraption, but the team persevered. A complete redesign resulted in Model II, with the innovation of switching to a vertical axis for the disks, facilitating their replacement and leaving more space for access mechanisms.
On January 10, 1955, less than three years after the laboratory’s creation, the first Model II of the RAMAC 350 was successfully presented. The system was commercialized in September 1956, integrated into the IBM 305 RAMAC system which included processor, card reader, and printer.
The RAMAC 350’s specifications were unprecedented. Fifty 61 cm disks rotating at 1,200 rpm, a throughput of 100,000 bits per second, a total capacity of 5 million characters. The density reached 2,000 bits per square inch, with an average access time of 600 milliseconds. To measure the progress made, the IBM 3380 of the 1980s used nine 35.5 cm disks rotating at 3,600 rpm, with a throughput of 24 million bits per second and a capacity of 1.25 billion bytes. The monthly rental cost per megabyte dropped from 130 dollars for the RAMAC 350 to about one dollar for the 3380.
The arrival of the RAMAC 350 revolutionized our relationship with data. For the first time, information became directly accessible without prior physical manipulation. This technological breakthrough made interactive computer applications possible: airline reservations, inventory management, automated banking services, space flight control, word processing...
This innovation, born in a modest California laboratory, launched a storage industry generating billions of dollars, and stimulated the development of fast processors and computing services. In 1984, the American Society of Mechanical Engineers officially recognized the RAMAC 350 as an international historical milestone, acknowledging its role in the evolution of mechanical engineering and its influence on 20th century society.
The RAMAC marks the true birth of the digital era in which we live today, where instant access to information has become so natural that we sometimes forget the technological marvel it represents.
IPL
Computers, machines initially created to solve mathematical equations, would soon tackle a different domain: that of symbolic processing and complex problem solving. It was in this ferment that Information Processing Language emerged, a family of languages that blazed a trail in the history of artificial intelligence.
The IPL adventure began with the bold dream of building a program capable of proving logical theorems. IPL-I, sketched out in the early 1950s, never existed anywhere but on paper. This draft nevertheless constituted a first attempt to formalize the symbolic manipulation mechanisms essential to automated theorem proving.
IPL-II and IPL-III were subsequently developed at the RAND Corporation, deployed on the JOHNNIAC computer. These versions brought to life the Logic Theorist program, a pioneering work in the field of artificial intelligence. This program demonstrated theorems using heuristic methods modeled on human thought, breaking away from the purely computational approach of computers.
The migration of IPL to the IBM 650 by a team from the Carnegie Institute of Technology gave birth to IPL-V, the accomplished and influential version of this lineage. Meanwhile, IPL-IV ran on the JOHNNIAC for innovative applications: a chess program and a system for balancing industrial production lines.
IPL-V marked a breakthrough in the design of computer languages. It introduced concepts such as list manipulation and dynamic data structures. The language made it possible to create and dynamically modify data during program execution, a rare characteristic at a time when memory generally remained fixed.
IPL’s great strength lay in its ability to model tasks that humans accomplish without being able to describe the process. Playing chess, making business decisions, or proving mathematical theorems are all activities where human expertise relies on intuition rather than defined algorithms. IPL provided a framework for transcribing these adaptive behaviors typical of natural intelligence.
IPL’s architecture was built around a few fundamental principles. The system employed cells to store IPL words, formed by two prefixes (P and Q) and two symbols (SYMB and LINK). The symbols, regional or local, offered flexible data representation. The language popularized the concept of the “list”, a fundamental structure for organizing information hierarchically.
A remarkable creation of IPL was its “description list” system. This mechanism associated descriptive information with a list, information that could be modified during execution. This approach foreshadowed the current concepts of metadata and object attributes found in modern 21st century programming.
IPL also integrated advanced memory management functionalities, notably with its “available space list” which automated the allocation and release of resources. This method freed developers from manual management constraints, leaving them more energy for algorithmic logic.
The language offered approximately 150 fundamental processes covering a broad spectrum of operations: list manipulation, arithmetic calculations, input-output management, and processing of complex structures. An elaborate system of “generators” made it possible to execute repetitive operations with elegance.
IPL served as a foundation for various applications in the nascent field of artificial intelligence. Programs for discrimination learning, binary choices, and theorem proving emerged thanks to this language. These creations proved IPL’s ability to support sophisticated symbolic processing applications.
IPL-VI, the final version of this family with an ambitious vision, proposed a hardware architecture designed specifically to directly execute this language, without going through a software interpretation layer. This approach aimed to overcome the performance limitations inherent in the interpreted nature of earlier versions on conventional machines.
IPL inspired the creation of other systems such as LISP, list processing in FORTRAN, or COMIT. These languages extended the exploration of the paths opened by IPL in the field of symbolic processing and artificial intelligence. Despite its weaknesses in terms of speed, particularly for traditional numerical computations, it demonstrated that the benefits of a high-level system far outweighed its resource costs, especially for complex applications requiring fine-grained management of data and processes.
TX-0
The TX-0 (Transistorized Computer Zero) came to life at MIT’s Lincoln Laboratory in 1956. The history of this exceptional machine began with the ambition to create the first fully transistorized general-purpose computer. Two goals guided this endeavor: to experiment with using transistors as logic elements in a high-speed digital calculator, and to test a ferrite core memory with an extraordinary capacity of 65,536 words.
The team led by Kenneth Olsen chose a minimalist architecture: an 18-bit word, with 16 bits for addressing and only 2 bits for the instruction code. This minimal instruction set offered just four commands. The first stored the accumulator, the second added a value to it, the third handled conditional transfers on negative values. The fourth, a true tour de force, enabled microprogramming with multiple register transfers within a single machine cycle. This clever design made the TX-0 remarkably flexible despite its streamlined conception.
The TX-0’s technological contribution lay in its components. The Philco L-5122 transistors, later marketed under the reference 2N240, underwent rigorous selection before installation. The results exceeded all expectations: after 10,000 hours of operation, these semiconductors showed only a minute decrease in gain. Even more astonishing, in 1974, after 49,000 hours of operation, barely a dozen had failed.
The TX-0’s electronic architecture relied on RC circuits, a combination of resistor and capacitor, coupled in negative logic, with -3V representing 1 and 0V representing 0. The true achievement lay in the exclusive use of transistors to perform logic functions, without resorting to the usual diodes. The AND and OR operations were obtained through subtle voltage manipulation.
The TX-0’s first memory, dubbed “S Memory,” constituted a technological monument: 1.25 million tiny ferrite cores, handcrafted at Lincoln Laboratory. This matrix stored 65,536 19-bit words with a cycle time of 5 microseconds. In 1958, this memory was transferred to the TX-2 project, giving way to a new transistorized memory of 4,096 words.
In 1958, the TX-0 left its birthplace to join MIT’s Cambridge campus. This move transformed its role from research object to experimental tool, accessible day and night to researchers and students. This open-access policy sparked a wealth of innovative applications.
Hardware improvements followed one after another. Memory expanded to 8,192 words in 1959, while the instruction set gradually grew. The addition of an index register and the extension of the operation code to 5 bits opened new possibilities. The input-output system was enriched with analog-to-digital and digital-to-analog converters, paving the way for real-time applications.
Software followed this transformation. Jack Gilmore’s initial utility gave way to sophisticated assemblers. The Macro assembler, created by J.B. Dennis in 1959, brought advanced features such as macro-instructions and automated constant management. Its successor, Midas, enabled manipulation of longer symbols and introduced recursive macro-programming.
The TX-0’s applications illustrate the extent of its influence. The communications biophysics laboratory adopted it to analyze electrophysiological data from the auditory cortex. The speech research team used it to create the first voice recognition techniques. Other researchers explored image processing and character recognition, as well as a robotic hand equipped with sensors thanks to this computer.
Kenneth Olsen, drawing on his TX-0 experience, founded Digital Equipment Corporation (DEC). The concepts developed on the TX-0 directly inspired the PDP-1, DEC’s first commercial computer, which adopted many characteristics of its academic ancestor.
The TX-0 demonstrated the relevance of an interactive and personal approach to computing. Its direct-access operating mode challenged the dominant batch processing model. Its longevity testified to the excellence of its design. After more than 49,000 hours of activity, the machine still required very little maintenance. In 1975, the TX-0 found refuge at DEC’s Computer Museum in Marlborough, Massachusetts, preserving for posterity a foundational milestone of transistorized computing.
FORTRAN
IBM launched the FORTRAN project during the summer of 1954, an acronym for FORmula TRANslating, under the leadership of John Backus. At that time, programming IBM’s new computer, the 704, was an uphill battle. Nearly two-thirds of scientific project budgets were consumed in the mere preparation of programs. Worse still, planning, writing, and debugging swallowed up more than 90% of the total project time.
Faced with this reality, Backus’s team nurtured the clear ambition to create a language that would resemble mathematical notation while automatically generating efficient machine code. The bold objective was to reduce the time spent on coding and debugging by at least 80%.
The system’s development stretched over two and a half years. A team of 18 people worked tirelessly on it. Their efforts culminated in 1957 with a complete system comprising two fundamental elements: the FORTRAN language and its translator, called the executive routine.
FORTRAN disrupted conventions with its innovations. Arithmetic expressions were now written naturally, close to classical mathematical notation. The asterisk (*) symbolized multiplication while the double asterisk (**) represented exponentiation. The system generated optimized machine code, avoiding redundant calculations and selecting the best instructions for each operation.
The language was packed with novel features. The DO and IF statements controlled execution flow. Multidimensional arrays could be easily manipulated through subscripted variables. The READ, PRINT, and FORMAT statements handled input-output flexibly. Programmers could define their own functions, promoting code reuse and better program structure.
The technical prowess of the FORTRAN translator lay in its ability to produce machine code nearly as efficient as that manually written by seasoned programmers. This performance resulted from fine-grained analysis of the source code and innovative optimization techniques. The translator’s architecture was divided into six distinct sections, each fulfilling a precise function in the translation chain.
A concrete example illustrates the system’s efficiency. After a day of training and a few consultations of the manual, a programmer completed an application in just four hours, using 47 FORTRAN instructions. Compilation on the 704 took six minutes and generated approximately 1000 machine instructions. The programmer spotted and corrected an error in the code without resorting to complex debugging techniques. This program would have required three days of manual coding, not counting debugging time.
Success came quickly. FORTRAN established itself as the reference in scientific programming. After its first standardization in 1966, the language was widely adopted, easy to teach, and relatively machine-independent. It demonstrated the advantages of subroutines and separate compilation.
The 1970s saw new languages emerge that revealed certain limitations of FORTRAN. A new version, Fortran 77, was standardized in 1978. Despite welcome improvements, this update did not meet all the expectations of a community hungry for more profound changes. Other languages like Pascal, Ada, Modula 2, C, and C++ began to gain ground in scientific and academic circles.
It wasn’t until 1991 that Fortran 90 emerged, a major evolution. This version introduced a plethora of modern features: free-form source allowing longer variable names, revised control structures, precise specification of numerical precision, treatment of arrays as entities in their own right, dynamic memory allocation with pointers and recursion, user-defined data types, modules with operator overloading and generic procedures.
Fortran 95, finalized in 1996, brought more modest but significant improvements such as the FORALL statement for parallel processing, user-defined pure and elemental subroutines, as well as various optimizations concerning pointers and derived types.
A leap forward occurred with Fortran 2003, which integrated object-oriented programming. This version included inheritance of derived types, polymorphism allowing variables to change type during execution, type-bound procedures, and interoperability with the C language. Input-output capabilities were enhanced, and support for IEEE arithmetic exceptions appeared.
The latest evolution, Fortran 2008, further enriched the language with support for parallel programming via coarray arrays, an increase in the maximum array rank to fifteen dimensions, new features to improve performance such as the DO CONCURRENT construct, and the addition of numerous intrinsic mathematical functions for scientific computing.
From a pioneering language designed to simplify the programming of scientific computers, FORTRAN has transformed into a modern tool that integrates contemporary programming paradigms while remaining faithful to its primary vocation: offering scientists and engineers an efficient means of expressing their calculations. Its longevity stems from its ability to evolve while maintaining backward compatibility, thereby preserving the massive investments made in existing code. Fortran 77 code remains a valid subset of recent versions, making it possible to gradually modernize organizational applications without rebuilding everything from scratch.
This exceptional robustness finds a striking illustration in the Voyager space probes. More than 45 years after their launch, 24 billion kilometers from Earth, they still operate with their original FORTRAN code. In 2023, NASA teams achieved a technical feat by successfully deploying patches to this code, testifying to the extraordinary longevity of the language under extreme conditions.
Integrated Circuit
At the end of World War II, the complex electronics of B-29 bombers faced a significant technical challenge: each aircraft carried nearly a thousand vacuum tubes and tens of thousands of passive components. This multiplication of elements led to an exponential increase in manufacturing costs and a worrying decline in reliability. American military forces, confronted with this technical reality, feared that this complexity would drastically hinder the evolution of electronic systems.
The National Bureau of Standards launched the first research efforts to simplify manufacturing. Centralab division of Globe-Union proposed an innovative technique based on ceramic substrates supporting metallic interconnections and capacitors, onto which miniaturized vacuum tubes were mounted. This method, resulting from the work of S.J. Rubenstein, Mr Ehlers, Gertrude B. Sherwood, and Howard J. White, marked the first attempt to create components in situ.
After 1945, work continued under the direction of R.L. Wolff and A.S. Khouri, and Centralab developed high-speed screen printing processes. The company manufactured amplifiers for hearing aids incorporating dozens of passive components and several tube sockets. The use of a substrate with a high dielectric constant enabled the economical production of RC networks intended for radios and televisions.
Everything changed with the arrival of the transistor in 1948. More compact, less power-hungry, and more reliable than the vacuum tube, it also generated less heat. However, its integration into existing circuits required a lengthy technological adaptation. Jack Kilby, at Texas Instruments, and Robert Noyce, at Fairchild Semiconductor, independently conceived the integrated circuit in 1958.
Kilby imagined that all components of a circuit could be manufactured in a block of semiconductor material. In September 1958, his demonstration of a phase-shift oscillator using transistors, resistors, and capacitors in germanium proved the validity of the concept. This pioneering approach used gold wire bonded interconnections that proved incompatible with industrial production, which was a significant drawback.
Noyce developed a different solution at Fairchild, based on Jean Hoerni’s planar technology. His design used silicon as a substrate, covered with an insulating oxide layer on which aluminum traces were deposited for interconnections. This method, better suited to industrialization, became the foundation of modern integrated circuit technology.
These inventions radically transformed electronics. Manufacturing complete circuits on a single silicon chip drastically reduced costs while spectacularly improving reliability. In 1961, Fairchild commercialized the Micrologic family, the first set of compatible logic circuits with diffused resistors and interconnections. That same year, Texas Instruments delivered to the US Air Force a small computer incorporating several hundred bits of semiconductor memory.
The integrated circuit industry followed an exponential trajectory, described by Gordon Moore in 1965: the number of transistors per circuit doubles approximately every two years. This prediction held true for over fifty years. From the first circuits containing a few thousand transistors, we have progressed to chips containing several billion components.
Technological advances have constantly reduced the size of transistors: from several microns in the 1970s to a few nanometers today. This miniaturization is accompanied by increased performance and reduced power consumption. Current technology is, however, approaching its physical limits, with transistors measuring only a few dozen atoms wide.
Integrated circuits made possible the personal computer, the mobile phone, the Internet, and artificial intelligence. The rise of the semiconductor industry has transformed the global economy, creating new sectors and changing our ways of life.
Faced with the physical constraints of miniaturization, researchers are now exploring three-dimensional integration or quantum computing. The power requirements for artificial intelligence and machine learning in the 21st century continue to drive innovation in this field.
ALGOL
The birth of ALGOL (ALGOrithmic Language) dates back to the late 1950s. This language resulted from a shared vision among European and American researchers: to create a universal tool for expressing algorithms independently of machines. At a symposium in Darmstadt in 1955, this idea took root in discussions among automatic computation specialists.
The technological context of the era fully justified this approach. In the United States, computing was transforming into an industrial sector with IBM and other manufacturers marketing their first computers. A multitude of specific languages flourished according to needs and teams. Europe, meanwhile, saw the birth of its first large machines dedicated primarily to scientific calculations.
The GAMM (Gesellschaft für Angewandte Mathematik und Mechanik) and the ACM (Association for Computing Machinery) decided in 1957 to form working groups on this common language. The Zurich meeting in 1958 resulted in the merger of European and American proposals under the name IAL (International Algebraic Language), later renamed ALGOL 58.
In 1959, John Backus made a breakthrough by inventing a formal notation for describing programming language syntax. This Backus-Naur Form (BNF) replaced imprecise natural language descriptions with a rigorous definition. Peter Naur perfected this notation and integrated it into the definition of ALGOL 60, thus laying the groundwork for a now-classic method.
ALGOL 60 distinguished itself through several innovations: code blocks with their own lexical scope, recursive procedures, parameters passed by name or by value. Its mathematical rigor was evident in the requirement to declare data types. Control structures such as the for loop achieved an unprecedented level of elegance and clarity.
This new approach stimulated research on compilation techniques. Friedrich Bauer and Klaus Samelson published their method for sequential translation of formulas in 1960, while Edsger Dijkstra achieved the feat of developing an ALGOL 60 compiler in just ten months.
Computer science theory was enriched through ALGOL. Seymour Ginsburg and Gordon Rice established a connection in 1962 between languages defined by BNF and Chomsky’s linguistic work on context-free grammars. This convergence between computer science and linguistics fostered the emergence of theoretical computer science.
ALGOL’s influence reached the academic world. Scientific journals adopted it for algorithm publication, notably in the “Algorithms” section of Communications of the ACM from 1960 onward. European universities made it their preferred teaching language.
Despite these successes, ALGOL struggled to establish itself against FORTRAN in the commercial world. This paradox can be explained by the absence of a major industrial player to support it, the lack of standard libraries for input-output operations, and the inertia related to existing FORTRAN programs. Europe, less dependent on this legacy, adopted it more widely, particularly in Germany where the government integrated it into university systems.
From 1962 onward, responsibility for ALGOL’s development fell to Working Group 2.1 of IFIP (International Federation for Information Processing). Work on a successor resulted in ALGOL 68, a more complete but also more complex language. Its definition sparked heated controversies within the group, to the point that in 1969, nearly half the members published a “Minority Report” expressing their disagreement.
ALGOL inspired Pascal, Simula (precursor to object-oriented programming), and Ada. Its fundamental concepts—structured blocks, lexical scope, recursion—became essential references. BNF notation remains today the standard method for defining programming language syntax.
ALGOL testifies to the maturation of computer science as a scientific discipline. It transformed programming from a craft practice into a formalized activity. Its mathematical vision shaped 20th-century computational thinking. While its commercial success was limited, its intellectual influence has shaped generations of languages and programmers.
Lisp
In 1956, the Lisp project emerged as part of the Dartmouth summer research on artificial intelligence. John McCarthy was then seeking an algebraic language to process lists on the IBM 704. He took an interest in the work of Newell, Shaw, and Simon on IPL 2, a language designed for the RAND Corporation’s JOHNNIAC, but refused to reproduce its form, which was too dependent on its original environment. The algebraic approach of Fortran appealed to him more.
Two circumstances favored this development: the creation of an IBM computing center at MIT, accessible from Dartmouth, and the launch by IBM of a program for demonstrating geometric theorems based on an idea by Marvin Minsky, for which McCarthy worked as a consultant. IBM seemed to be committing to emerging AI research.
In 1958, McCarthy proposed the concept of the Advice Taker, a system designed to represent information through sentences in a formal language and make decisions through logical deductions. The representation of sentences by list structures naturally emerged, as did the use of a list-processing language to program deductive operations.
The first technical challenge concerned the implementation of list structures on the IBM 704. This computer used 36-bit words, with two 15-bit sections named address and decrement. The addressing limited to 15 bits made it necessary to use pointers of identical size for list structures. McCarthy initially established functions including cwr (Contents of Word in Register) and four extraction functions. He noted that extracting a sub-expression required composing the address extraction with cwr, while progressing through the list required composing the decrement extraction with cwr. These observations gave birth to the car (Contents of Address Register) and cdr functions, which would become emblematic of the language.
During 1957 and 1958, McCarthy designed conditional expressions while programming chess routines in Fortran. The limitations of Fortran’s IF statement led him to create an XIF(M,N1,N2) function returning N1 or N2 depending on whether M was zero. This solution simplified programs but suffered from the systematic evaluation of all three arguments. He invented the true conditional expression, evaluating only the necessary expressions.
In the summer of 1958, invited by Nathaniel Rochester at IBM, McCarthy worked on differentiating algebraic expressions. This work introduced several advances: writing recursive functions using conditional expressions, the maplist function forming a list of applications of a functional argument to the elements of a list, and the use of Church’s λ notation to name functions. His recursive definition of differentiation did not provide for erasing abandoned structures, as he refused to compromise the elegance of his definition.
In the fall of 1958, McCarthy joined MIT as an assistant professor in communication sciences and launched the MIT artificial intelligence project with Minsky. Lisp development began with the initial goal of creating a compiler. The team started by manually compiling various functions into assembly language and writing Lisp environment subroutines to read and write list structures.
Programs were first written in an informal notation called M-expressions, designed to resemble Fortran. This notation used brackets for function arguments, reserving parentheses for list structure constants. The M notation would never be fully formalized, as the representation of Lisp functions by lists emerged as the dominant approach after the interpreter appeared.
The READ and PRINT functions established a standard external notation for symbolic information. For example, the expression x + 3y + z became PLUS X (TIMES 3 Y) Z. This notation would be named Cambridge Polish, in reference to Lukasiewicz’s prefix notation and its earlier use by Quine.
Memory management raised a particular problem. Explicit erasure, used in IPL, lacked elegance. Two options presented themselves: erasing the old contents of a variable when updating it, which required reference counters impossible to integrate into the six available bits, or using garbage collection, which abandoned storage until the free list was exhausted, marked storage accessible from variables and the stack, then transformed unmarked storage into a new free list.
Subsequent versions of Lisp brought various functionalities: property lists associated with atoms, insertion and deletion of elements in lists (via rplaca and rplacd), efficient application of numbers as atoms, and the program feature for writing sequential programs with assignment statements and jumps.
Two reasons explain Lisp’s longevity. On one hand, its core occupies a form of local optimum in the space of programming languages, with the recursive use of conditional expressions, the representation of symbolic information by lists, and the uniform representation of programs and data. On the other hand, Lisp offers unique operational characteristics that make it a privileged vehicle for symbolic computation and artificial intelligence systems: its runtime system providing access to host machine functionalities, its internal representation facilitating compilation from higher-level languages, and the availability of its interpreter as a command language.
DEC PDP-1
In 1960 came the PDP-1 (Programmed Data Processor), the first commercial computer from Digital Equipment Corporation. This machine broke with the computing behemoths of the era through its radically different philosophy of wanting to make the computer accessible and interactive.
Kenneth Olsen and Harlan Anderson, founders of DEC in 1957, designed this computer by drawing inspiration from the MIT Lincoln Laboratory’s TX-2, where they had previously worked. The TX-2 served as their model, but they simplified its architecture while retaining its interactive dimension.
One of the PDP-1’s distinctive features lay in its advanced technical performance. Its ferrite core memory contained 4,096 18-bit words, with a 5-microsecond cycle time. It processed 100,000 additions per second, surpassing contemporary mainframe computers by a factor of 2.5 thanks to its parallel architecture and 5 MHz circuits. The replacement of vacuum tubes with Micro-Alloy and Micro-Alloy-Diffused transistors reduced its footprint to just 17 square meters.
Its originality came above all from the direct interaction it offered with the user. The 16-inch cathode ray display, the Friden Flexowriter keyboard, and the paper tape reader reading 300 lines per second created an immediate user experience, while batch mode largely dominated computing practices.
From a technical standpoint, the PDP-1 brought several lasting innovations. Its instruction set comprised 32 opcodes with arithmetic, logical, and control operations. Its sequence break interrupt system managed multiple peripherals simultaneously. Multiple indirect addressing brought unprecedented flexibility in data processing. These characteristics would mark future generations of computers. This model used one’s complement for its arithmetic, a choice abandoned in later versions in favor of two’s complement, illustrating its experimental nature.
Sold for $120,000, the PDP-1’s commercialization demonstrated DEC’s audacity and challenged IBM computers. This machine required neither air conditioning nor a raised floor, operated on a simple 110-volt power supply, and incorporated self-diagnostic circuits for its maintenance. DEC thus sought to “democratize” access to computing.
The software environment included an assembler with macro support, a text editor called Expensive Typewriter, one of the first Lisp interpreters, and various utilities. The system accepted several additional peripherals such as a punched card reader, a high-speed printer, IBM magnetic tapes, or analog-to-digital converters.
In 1962, MIT students created Spacewar! on this machine. This program, considered the first computer video game, illustrated the PDP-1’s graphical and interactive capabilities while inventing a new form of entertainment.
Despite the production of around fifty units between 1960 and 1969, the PDP-1’s influence established DEC as a major player in interactive computing. Its architecture directly inspired future models in the series: PDP-4, PDP-7, PDP-9, and PDP-15.
Today, the Computer History Museum in Mountain View preserves three PDP-1s, one of which was still operational in 1995. These machines bear witness to a period when computing began to leave calculation centers to move closer to users. Unlike IBM, which favored centralized systems, DEC bet on human-machine interaction and accessibility. The PDP-1’s success validated DEC’s strategy based on less expensive and more accessible machines. The PDP-1 thus marked the first steps toward computing where miniaturization and interactivity were paramount.
IBM 1401
The IBM 1401, announced in 1959, was the first computer widely adopted by businesses around the world. It marked the transition between the era of mechanical punched card machines and that of modern computing. At that time, business data processing—inventory, billing, customer accounts, payroll—was performed by passing stacks of punched cards through electromechanical machines that sorted, calculated, collated, and totaled. These operations were determined by manually wired control panels. Mainframe computers with vacuum tubes certainly offered flexible stored-program capability and magnetic tape storage, but their cost made them inaccessible to most businesses. By the mid-1960s, half of all computers in service worldwide were IBM 1401s or members of its family.
The story of the 1401 began in 1957, when IBM France and IBM Germany developed a prototype transistorized “universal accounting machine” (WWAM) in response to a European competitor. Despite using a control panel, the entry-level configuration proved too expensive. In Endicott, New York, a bold system architect, Fran Underwood, discovered that he could economically replace the control panel with stored-program control. Retaining the WWAM’s data paths, he designed an instruction set suited to business applications and named the new computer SPACE (Stored-Program Accounting & Calculating Equipment).
SPACE development was led by Charles Branscomb, who expanded the team to 60 engineers working around the clock. He integrated a printer under development, discouraged superfluous features, and met cost targets for the entry-level system. By mid-1959, with a working prototype and sales training underway, the machine, officially renamed IBM 1401, was poised to revolutionize the business market.
On October 5, 1959, IBM announced the 1401 via closed-circuit television to 50,000 participants in 104 different locations. In just five weeks, 5,200 systems were ordered, exceeding projections for the product’s entire lifetime and surpassing the total number of commercial computers then in service worldwide. A year later, the first system was delivered to Time-Life, which transferred 60 million punched cards to a few hundred magnetic tapes. The tape-equipped 1401 systems thus freed users from a seven-decade-old practice: storing data on punched cards.
In 1962, 1401 revenues exceeded those of traditional accounting machines. In 1965, the 1401 and its family (models 1410, 1440, 1460, and 7010) represented half of all computers worldwide, reaching a peak of 16,000 systems in 1967. The majority of 1401s were leased. An entry-level system leased for $2,500 per month, equivalent to three accounting machines and a calculator. A typical system leased for $6,500 per month, or could be purchased for $500,000—approximately one-tenth the cost of a mainframe computer.
Considered a “small system” computer, a 1401 weighed between 2 and 3 tons, consumed up to 14,000 watts, and contained approximately half a million parts. Maintained primarily by IBM customer engineers, these systems were renowned for their reliability and often operated around the clock.
Technically, the 1401 relied on serial processing of digits and characters. During its 11.5-microsecond clock cycle, an instruction could add two decimal digits or process a character for input, output, or formatting for printing. Variable-length numbers and strings were stored at one digit or character per memory position. Memory size ranged from 1,400 to 16,000 positions, each 8 bits wide—6 bits for the character, 1 bit to mark the end of a number or string, 1 parity bit.
The 1401’s processor operated at 87,000 cycles per second. For comparison, a current 3-gigahertz PC can add two 20-digit numbers approximately one million times faster than a 1401. The machine used inexpensive germanium alloy-junction transistors and point-contact diodes, mounted on approximately 4,000 SMS (Standard Modular System) cards. The ferrite core memory, consisting of a stack of grids of tiny magnetic rings threaded with fine wires, cost approximately 60 cents per bit—400 million times more expensive than current RAM.
The 1401’s success was largely due to its peripherals: the 1403 chain printer, whose speed (600 lines/minute, rapid skipping) and exceptional print quality (horizontally rotating interchangeable chain) made it an industry standard; the 1402 card reader-punch (800 and 250 cards/minute); and the mainframe-type 729 magnetic tape drives (15 million characters per reel). The RAMAC 1405 disk drive (20 million characters) and an optical bank check reader were available from 1961.
On the software side, IBM offered assemblers for machine language programming (Autocoder, SPS), compilers for Fortran, COBOL, and RPG (Report Program Generator) languages, as well as sorting and input-output utilities. IBM did not develop an operating system for the 1401, but created one for the 1410.
In late 1964, Honeywell challenged IBM’s market dominance by announcing the H200, faster and more powerful, accompanied by its Liberator software capable of running 1401 programs without modification. In 1961, IBM began planning the unification of its many computer lines. The System/360, announced in April 1964, consolidated software, peripherals, and support into a family of compatible computers. A key technology was the flexible control store that allowed its entry-level model, the Model 30, to competitively execute 1401 programs, thus countering the H200. The 1401 emulation also allowed IBM to deliver Model 30s when S/360 system software fell behind schedule.
While development of the 1401 family slowed after the S/360 announcement, its members remained more numerous than S/360s until 1968. IBM continued to offer the 1401 until 1971, and PC emulators are available today.
The 1401 also leaves an unexpected legacy in the arts. The machine could produce music by melodically activating the 1403’s print hammers or by modulating its radio wave emissions picked up by an AM receiver. Inspired by a recording of radio music made during a 1401 decommissioning ceremony in 1971, an Icelandic composer wrote a 60-movement orchestration in 2001 entitled IBM 1401: A User’s Manual (available on Spotify, Apple Music, etc.). Finally, in the 1964 film “Dr. Strangelove”, actor Peter Sellers makes his first appearance in front of a 1403.
The IBM 1401 continues to fascinate computing enthusiasts. Volunteers at the Computer History Museum, including a dozen former IBM customer engineers, have devoted more than 40,000 hours to restoring two 1401s, one acquired in 2003 from a German garage and the other in 2008 from a Connecticut home (where it had operated until 1995).
COBOL
In May 1959, the Pentagon hosted a meeting in Washington that would transform business computing for decades to come. Charles A. Phillips, head of the Data Systems Research Staff, gathered about fifty people: military personnel, civil servants, consultants, and engineers from the largest computer manufacturers. Each manufacturer at the time had its own language and its own machines. A program written for an IBM wouldn’t run on a UNIVAC. How could efforts be pooled in a sector where administrative applications were beginning to proliferate?
This meeting gave birth to CODASYL, a committee tasked with examining computer languages. A smaller group, the “short-term committee,” received the mission of analyzing the strengths and weaknesses of existing compilers, primarily AIMACO (its military variant), FLOW-MATIC (Grace Hopper’s creation at Remington-Rand), and COMTRAN (a highly theoretical IBM project).
No one expected this committee to produce a new language. Yet in November 1959, six people locked themselves away for two weeks and emerged with the specifications for a language they named COBOL: Common Business Oriented Language. This document, finalized in April 1960, went far beyond a simple synthesis of existing languages.
COBOL’s technical design was based on its structure of four divisions: IDENTIFICATION for program information, ENVIRONMENT to describe the execution environment, DATA to structure data, and PROCEDURE for instructions. The syntax resembled English sentences, making the code readable even for non-specialists. Variable names could contain up to 30 characters, an innovation that allowed the use of clear, understandable names rather than illegible abbreviations.
The moment of truth came on December 6 and 7, 1960, during a public demonstration: the same COBOL program executed correctly on two radically different machines, an RCA 501 and a UNIVAC II. For the first time, code portability became reality.
COBOL’s early years were marked by several evolutions: COBOL-61, COBOL-61 Extended, then COBOL-65. ANSI standardization arrived in 1968, followed by other standards in 1974 and 1985. Backward compatibility, ensuring that old programs would continue to function, was a remarkable characteristic that was maintained.
The U.S. government required that any computer sold or leased to government agencies must have a COBOL compiler, and this was one of COBOL’s success factors. This decision forced manufacturers to develop their own compilers, propelling COBOL to the status of an essential standard in business computing.
One might question the extraordinary longevity of this language born as a temporary solution, which several factors explain. First, its relative simplicity made it accessible to non-academic programmers who formed the bulk of corporate IT teams. Its readability facilitated application maintenance. Its orientation toward administrative data processing corresponded perfectly to the needs of the service sector.
Facing the Y2K bug, the world discovered with astonishment the omnipresence of COBOL in the workings of the economy. Staggering estimates showed that of the 300 billion lines of code in production worldwide in 1997, approximately 240 billion were written in COBOL. More than 95% of financial and insurance data passed through these programs.
Against all apparent logic, COBOL crossed the Y2K threshold without losing its importance. In 1999, more than 50% of new critical applications were still being developed in this language, despite the emergence of Java. Projections for 2004-2005 estimated that 15% of new applications (5 billion lines) would be in COBOL, while 80% of deployed applications would constitute extensions to existing COBOL programs.
This unexpected resilience stems from the language’s technical characteristics: no pointers, elementary data types, detailed description of files and print outputs. These limitations, which might seem handicapping for scientific applications, are actually assets for business applications by reducing the risk of catastrophic errors.
In our world obsessed with perpetual innovation, sometimes simplicity and stability prevail over sophistication. A language deemed obsolete by computer scientists since the 1970s continues to run the world’s financial systems in the 21st century, demonstrating that theoretical elegance is not always a guarantee of practical relevance.
Machine Learning
Checkers as a laboratory for intelligence. This is how Arthur Samuel conceived his approach. This pioneer, active from the 1940s through the 1960s, transformed computing by infusing it with the ability to learn from experience, a capacity until then reserved for humans.
The choice of checkers was by no means random. In the landscape of artificial intelligence, games played a role comparable to that of Drosophila for geneticists—simple organisms, easy to manipulate, perfect for experimentation. Checkers, less complex than chess, offered an ideal testing ground where Samuel could observe learning mechanisms without getting bogged down in overly sophisticated rules.
In 1952, the first program came to life on the IBM 701. Three years later, the version equipped with autonomous learning captivated the public during a televised demonstration. Without reaching the level of champions, this program innovated through two methods: rote learning and learning by generalization.
The first technique, rote learning, resembled our own memory more than one might imagine. Samuel programmed his computer to remember each configuration encountered during its games. Concretely, when the computer analyzed a position, it calculated its value using an algorithm called minimax that simulates the best possible moves for each player. The machine then stored this position with its evaluation. In subsequent games, faced with a situation already seen, no need for lengthy calculations—the answer sprang instantly from its memory. Samuel integrated an ingenious mechanism he called “depreciation.” To understand this, let us visualize a tree where each branch represents a possible move. The deeper we go into this tree, the further we advance into the hypothetical unfolding of the game. Samuel arranged for positions distant in this tree to be worth slightly less than those close to the present moment, even at equal game value. This subtlety encouraged the program to favor short paths to victory. Without this trick, the computer could have become mired in endless strategies, preferring to win in 50 moves rather than 10, simply because both scenarios mathematically led to victory.
His second method, learning by generalization, foreshadowed modern temporal difference learning techniques. Samuel had his program play against itself thousands of times. At each move, through a brilliant and intuitive idea, the computer subtly modified its way of evaluating the board. If a game position leads to other advantageous positions, then this initial position must be favorable. Imagine a move that seems mundane but systematically leads to winning configurations three moves later—the program gradually learns to value this apparently unremarkable move. The computer did not wait for the end of the game to adjust its evaluations; it learned continuously, after each movement. Without being explicitly told “this is good” or “that is bad,” the program discovered effective strategies on its own. Its compass remained nonetheless material advantage—the number of pieces owned relative to the opponent—with a marked preference for kings, those crowned pieces with superior movement capabilities. This approach, remarkably modern, constitutes one of the first manifestations of autonomous learning in 20th-century computing.
Beyond the framework of theoretical research, Samuel’s work on non-numerical computation shaped the architecture of early IBM computers. The logical instructions he proposed became an industry standard, their utility proving essential for all non-mathematical processing. Before revolutionizing artificial intelligence, he had distinguished himself as an electrical engineer. A graduate of Emporia College in 1923, then holder of a master’s degree from MIT in 1926, he taught there briefly before joining Bell Labs. His research on electron tubes, particularly on space charge between parallel electrodes, marked the era. During the war, his work on devices protecting radar receivers proved crucial.
In 1946, having become a professor at the University of Illinois, he participated in the creation of one of the first electronic computers. It was there that he dreamed of a checkers program capable of defeating a world champion. This project remained unfinished until his arrival at IBM in 1949, where he worked on the 701, the firm’s first stored-program computer. Samuel considerably improved its Williams tube memory, quadrupling its storage capacity and stabilizing its operation. The first public demonstration of his program so impressed Thomas J. Watson Sr., founder of IBM, that he predicted—correctly—a 15-point rise in the stock price.
Samuel contributed to IBM’s international expansion, shaping the direction of European laboratories, notably in Vienna (computing) and Zurich (physics). His discretion probably explains why the importance of his work was not fully recognized until after his departure from IBM in 1966.
At Stanford, where he became a research professor, he continued his work on checkers until other programs surpassed his in the 1970s. He became interested in speech recognition and supervised numerous doctoral students. His talents extended to technical writing. He excelled at understanding confusing documentation and producing clear manuals.
Samuel continued programming to a remarkable age. His last contribution, at 85, was to adapt multi-font printing programs for Stanford’s computer science department. Only Parkinson’s disease brought this exceptional activity to an end. His last login was on February 2, 1990, which probably makes him the oldest active programmer of his time.
Backus-Naur Form
The first high-level languages emerged in the 1950s, bringing with them the challenge of clearly and unambiguously describing their syntax. John Backus provided an answer to this question that would transform how we design computer languages.
Previously, describing languages was almost an art of divination. Computer scientists struggled to explain syntactic rules in prose, producing often confusing texts. Fortran, Backus’s creation at IBM, was no exception to this difficulty. Its documentation was full of convoluted explanations such as “A real number is any sequence of decimal digits with a decimal point preceding or intervening between two digits or following a sequence of digits, the whole potentially preceded by a plus or minus sign”. Not exactly crystal clear.
In 1959, at the IFIP congress in Zurich, Backus presented a formal notation for describing ALGOL’s syntax. His proposal, which he had developed without any particular theoretical pretensions (he later admitted his relative lack of knowledge in mathematical logic), could have gone unnoticed. But it was Peter Naur who immediately grasped the significance of this idea. He refined the notation and applied it to the definition of ALGOL 60. This collaboration gave birth to the name Backus-Naur Form (BNF), a designation proposed by Donald Knuth to replace the original term “Backus Normal Form” which he considered mathematically inadequate.
The brilliance of BNF lies in its ability to express recursion with disarming simplicity. To define an integer, for example, writing <integer> ::= <digit> | <integer><digit> indicates that an integer is either a single digit or an integer followed by a digit. In a single line, we can describe numbers of any length.
Backus made another decisive choice by breaking free from hardware constraints. Unlike Fortran, which limited numbers to the interval [10−38,1038] for memory reasons, BNF focuses on pure syntax without worrying about the physical limitations of computers. This conceptual break gave languages a theoretical dimension independent of their technical implementation.
BNF’s success came quickly. Its conciseness was immediately appealing: a few lines replaced entire pages of explanations. Its precision swept away the ambiguities of natural language. Its operational aspect sealed the deal: BNF rules allowed for the direct construction of automatic syntax analyzers.
ALGOL 60 thus became the first language entirely defined by a formal notation. This standardization gave developers on different machines the ability to create compatible compilers, realizing ALGOL’s universal ambition. The way computer languages were conceived was thereby transformed. BNF encouraged computer scientists to adopt a more rigorous and systematic approach. Students could grasp the structure of programming languages more clearly thanks to this pedagogical formalism.
Over time, extensions enriched the original notation. EBNF (Extended BNF) integrated operators to express repetition or the optional nature of elements more simply. Graphical representations emerged, but the fundamental principles established by Backus and Naur remained intact.
BNF illustrates the contribution of formal notations to computer science. It transformed a craft-based approach into a scientific method, driven by practitioners confronting concrete problems. The separation it establishes between syntax and implementation has become a cardinal principle in language design.
More than sixty years after its introduction, in the 21st century, this notation remains fundamental. It serves today to define the syntax of programming languages, data formats, communication protocols, and various formal notations. BNF is thus one of those discreet yet powerful tools that transform an entire discipline without making headlines.