Sign In

Communications of the ACM

Historical reflections

Where Code Comes From: Architectures of Automatic Control from Babbage to Algol


View as: Print Mobile App ACM Digital Library In the Digital Edition Share: Send by email Share on reddit Share on StumbleUpon Share on Hacker News Share on Tweeter Share on Facebook
EDVAC

U.S. Army photograph of the installed EDVAC.

Credit: U.S. Army

In our previous Communications column (September 2015) we noted that a celebrated table published by Ada Lovelace in 1843 was not a computer program, despite frequent claims to the contrary. Here we turn to a related question: where did computer code come from? Back in the 1840s nobody talked about "programming" Charles Babbage's planned engines. More importantly, nobody had yet formulated the concept of a program as a series of instructions controlling the operation of a general-purpose computer. The work of Charles Babbage and Ada Lovelace provides an important milestone on the road to this invention, but marks the beginning of the story rather than its end.

In this column we explore the rest of that story, returning briefly to the world of Lovelace and Babbage before moving on to the 1940s when their ideas were independently rediscovered, extended, and finally realized in actual machinery. Developments came thick and fast, moving in just a few years from the earliest relay computers controlled by "coded" arithmetic instructions on tape to ENIAC, the first computer to automatically carry out computations with complex structures including branches and nested loops. This was the context in which the word "programming" was initially applied to a computer, originally to describe the action of the machine's control wires, circuits, and switches when triggering the appropriate sequence of mathematical operations. Before ENIAC was even finished its creators, in collaboration with John von Neumann, had come up with a new approach in which control and arithmetic operations were both represented in a single series of coded instructions stored in an addressable memory unit. That was soon called a computer program, and although the meaning of the term has continued to evolve it has retained this basic sense of a set of instructions that direct the performance of a series of operations, enabling a computer to carry out a task without human intervention.


Comments


CACM Administrator

The following letter was published in the Letters to the Editor of the March 2016 CACM (http://cacm.acm.org/magazines/2016/3/198861).
--CACM Administrator

Thomas Haigh's and Mark Priestley's Viewpoint "Where Code Comes From: Architectures of Automatic Control from Babbage to Algol" (Jan. 2016) focused on the words "code" and "programming" and how they came to be defined as they are today. However, it also mentioned other types of programming from the days before those words took their current meaning, without acknowledging they were exactly the same in the minds of those scientists and "card jockeys" who diagrammed analog computers or charted the progress of a job on the "data processing" floor and wired the plugboards of the unit record equipment on that floor. If no scholar has in fact published a looking-backward article on the plugboard wiring of those machines from the modern programmer's perspective, someone should. If you have never wired a plugboard, I urge you to try it. Teach yourself to sense a pulse and make something useful happen or debug a problem when someone dislodges a cable. Once you understand the machine, you will find you step immediately into programming mode, whereby the cable is the code, the plugboard the subroutine, and the floor the program. Drawing flow diagrams was, once upon a time, what programming was about, no matter what the target environment happened to be.

The only programmer I ever met who coded a significant production program on a UNIVAC SSII 80 (circa 1963) computer and saw it run successfully on its first shot, was an old plugboard master. He flowcharted the program the way he learned to flowchart a machine-room job. The "concept" of programming was nothing new to him.

Ben Schwartz
Byram Township, NJ


Displaying 1 comment

Log in to Read the Full Article

Sign In

Sign in using your ACM Web Account username and password to access premium content if you are an ACM member, Communications subscriber or Digital Library subscriber.

Need Access?

Please select one of the options below for access to premium content and features.

Create a Web Account

If you are already an ACM member, Communications subscriber, or Digital Library subscriber, please set up a web account to access premium content on this site.

Join the ACM

Become a member to take full advantage of ACM's outstanding computing information resources, networking opportunities, and other benefits.
  

Subscribe to Communications of the ACM Magazine

Get full access to 50+ years of CACM content and receive the print version of the magazine monthly.

Purchase the Article

Non-members can purchase this article or a copy of the magazine in which it appears.