![Bundesarchiv B 145 Bild-F031434-0006, Aachen, Technische Hochschule, Rechenzentrum](https://upload.wikimedia.org/wikipedia/commons/a/a1/Bundesarchiv_B_145_Bild-F031434-0006%2C_Aachen%2C_Technische_Hochschule%2C_Rechenzentrum.jpg)
From the invention of computer
programming language
A programming language is a system of notation for writing computer programs. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language.
The description of a programming ...
s up to the mid-1970s, most
computer programmer
A computer programmer, sometimes referred to as a software developer, a software engineer, a programmer or a coder, is a person who creates computer programs — often for larger computer software.
A programmer is someone who writes/creates ...
s created, edited and stored their
programs line by line on
punch card
A punched card (also punch card or punched-card) is a piece of stiff paper that holds digital data represented by the presence or absence of holes in predefined positions. Punched cards were once common in data processing applications or to di ...
s.
Punched cards
A punched card is a flexible write-once medium that encodes data, most commonly 80 characters. Groups or "decks" of cards form programs and collections of data. The term is often used interchangeably with ''punch card'', the difference being that an unused card is a "punch card," but once information had been encoded by punching holes in the card, it was now a "punched card." For simplicity, this article will use the term ''punched card'' to refer to either.
Often programmers first wrote their program out on special forms called coding sheets, taking care to distinguish the digit zero from the letter ''O'', the digit one from the letter ''I'', eight from ''B'', two from ''Z'', and so on using local conventions such as the "
slashed zero
The slashed zero is a representation of the Arabic digit " 0" (zero) with a slash through it. The slashed zero glyph is often used to distinguish the digit "zero" ("0") from the Latin script letter " O" anywhere that the distinction needs emphas ...
". These forms were then taken by keypunch operators, who using a
keypunch
A keypunch is a device for precisely punching holes into stiff paper cards at specific locations as determined by keys struck by a human operator. Other devices included here for that same function include the gang punch, the pantograph punch, ...
machine such as the
IBM 026
A keypunch is a device for precisely punching holes into stiff paper cards at specific locations as determined by keys struck by a human operator. Other devices included here for that same function include the gang punch, the pantograph punch, ...
(later
IBM 029
A keypunch is a device for precisely punching holes into stiff paper cards at specific locations as determined by keys struck by a human operator. Other devices included here for that same function include the gang punch, the pantograph punch, ...
) punched the deck. Often another keypunch operator would then take that deck and re-punch from the coding sheets – but using a "verifier" such as the
IBM 059 that checked that the original punching had no errors.
A typing error generally necessitated re-punching an entire card. The editing of programs was facilitated by reorganizing the cards, and removing or replacing the lines that had changed; programs were backed up by duplicating the deck, or writing it to magnetic tape.
In smaller organizations programmers might do their own punching, and in all cases would often have access to a keypunch to make small changes to a deck.
Work environment
The description below describes an all-IBM shop (a "shop" is programmer jargon for a programming site) but shops using other brands of mainframes (or
minicomputer
A minicomputer, or colloquially mini, is a class of smaller general purpose computers that developed in the mid-1960s and sold at a much lower price than mainframe and mid-size computers from IBM and its direct competitors. In a 1970 survey, ...
s) would have similar equipment although because of cost or availability might have different manufacturer's equipment, e.g. an
NCR,
ICL,
Hewlett-Packard
The Hewlett-Packard Company, commonly shortened to Hewlett-Packard ( ) or HP, was an American multinational information technology company headquartered in Palo Alto, California. HP developed and provided a wide variety of hardware components ...
(HP) or
Control Data
Control Data Corporation (CDC) was a mainframe and supercomputer firm. CDC was one of the nine major United States computer companies through most of the 1960s; the others were IBM, Burroughs Corporation, DEC, NCR, General Electric, Honeywel ...
shop would have NCR, ICL, HP, or Control Data computers, printers and so forth, but have IBM 029 keypunches. IBM's huge size and industry footprint often caused many of their conventions to be adopted by other vendors, so the example below is fairly similar to most places, even in non-IBM shops.
A typical corporate or university computer installation would have a suite of rooms, with a large, access-restricted, air-conditioned room for the computer (similar to today's server room) and a smaller quieter adjacent room for submitting jobs. Nearby would be a room full of keypunch machines for programmer use. An
IBM 407
The IBM 407 Accounting Machine, introduced in 1949, was one of a long line of IBM tabulating machines dating back to the days of Herman Hollerith. It had a card reader and printer; a summary punch could be attached. Processing was directed by ...
Accounting Machine might be set up to allow newly created or edited programs to be listed (printed out on
fan-fold paper) for proofreading. An
IBM 519 The IBM 519 Document-Originating Machine, introduced in 1946, was the last in a series of unit record machines designed for automated preparation of punched cards. Others in the series included the IBM 513 & IBM 514 Reproducing Punch.
The 519, whi ...
might be provided to reproduce program decks for
backup
In information technology, a backup, or data backup is a copy of computer data taken and stored elsewhere so that it may be used to restore the original after a data loss event. The verb form, referring to the process of doing so, is "back up", w ...
or to punch sequential numbers in columns 73-80.
In such
mainframe
A mainframe computer, informally called a mainframe or big iron, is a computer used primarily by large organizations for critical applications like bulk data processing for tasks such as censuses, industry and consumer statistics, enterprise ...
installations, known as "closed shops," programmers submitted the program decks, often followed by data cards to be read by the program, to a person working behind a counter in the computer room. During peak times, it was common to stand in line waiting to submit a deck. To solve that problem, the card reader could be reinstalled (or initially installed) outside of the computer room to allow programmers to do "
self-service
Self-service is the practice of serving oneself, usually when making purchases. Aside from Automated Teller Machines, which are not limited to banks, and customer-operated supermarket check-out, labor-saving of which has been described as self- ...
" job submission.
Many computer installations used cards with the opposite corner cut (sometimes no corner cut) as "job separators", so that an operator could stack several job decks in the card reader at the same time and be able to quickly separate the decks manually when they removed them from the stacker. These cards (e.g., a
JCL "JOB" card to start a new job) were often pre-punched in large quantities in advance.
This was especially useful when the main computer did not read the cards directly, but instead read their images from
magnetic tape
Magnetic tape is a medium for magnetic storage made of a thin, magnetizable coating on a long, narrow strip of plastic film. It was developed in Germany in 1928, based on the earlier magnetic wire recording from Denmark. Devices that use magne ...
that was prepared offline by smaller computers such as the
IBM 1401
The IBM 1401 is a variable-wordlength decimal computer that was announced by IBM on October 5, 1959. The first member of the highly successful IBM 1400 series, it was aimed at replacing unit record equipment for processing data stored on pu ...
. After reading the cards in, the computer operator would return the card deck – typically to one of a set of alphabetically labelled cubby holes, based on the programmer's last initial. Because programs were run in
batch-mode processing it might be a considerable time before any hardcopy printed or punched output was produced, and put into these same cubby holes – however, on a lightly-used system, it was possible to make alterations and rerun a program in less than an hour.
Dedicated programmers might stay up well past midnight to get a few quick turnarounds. Use of this expensive equipment was often charged to a user's account. A mainframe computer could cost millions of dollars and usage was measured in seconds per job.
Smaller computers like the
IBM 1000,
1620 and
1130, and minicomputers such as the
PDP-11
The PDP-11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, ...
were less expensive, and often run as an "open shop", where programmers had exclusive use of the computer for a block of time. A keypunch was usually located nearby for quick corrections – although many of these smaller machines ran from
punched tape
Five- and eight-hole punched paper tape
Paper tape reader on the Harwell computer with a small piece of five-hole tape connected in a circle – creating a physical program loop
Punched tape or perforated paper tape is a form of data storage ...
.
Identification and sequence
![Punched card program deck](https://upload.wikimedia.org/wikipedia/commons/2/26/Punched_card_program_deck.agr.jpg)
Many early programming languages, including
FORTRAN,
COBOL
COBOL (; an acronym for "common business-oriented language") is a compiled English-like computer programming language designed for business use. It is an imperative, procedural and, since 2002, object-oriented language. COBOL is primarily us ...
and the various IBM
assembler language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
s, used only the first 72 columns of a card – a tradition that traces back to the
IBM 711
The IBM 711 was a punched card reader used as a peripheral device for IBM mainframe vacuum tube computers and early transistorized computers. Announced on May 21, 1952, it was first shipped with the IBM 701. Later IBM computers that used it were t ...
card reader used on the
IBM 704/709/7090/7094 series (especially the
IBM 704
The IBM 704 is a large digital mainframe computer introduced by IBM in 1954. It was the first mass-produced computer with hardware for floating-point arithmetic. The IBM 704 ''Manual of operation'' states:
The type 704 Electronic Data-Pro ...
, the first mass-produced computer with
floating-point arithmetic
In computing, floating-point arithmetic (FP) is arithmetic that represents real numbers approximately, using an integer with a fixed precision, called the significand, scaled by an integer exponent of a fixed base. For example, 12.345 can be ...
hardware), which could only read
72 of the 80 columns in one pass.
Columns 73-80 were ignored by the compilers and could be used for identification or a sequence number so that if the card deck was dropped it could be restored to its proper order using a
card sorter
A Punched card sorter is a machine for sorting decks of punched cards.
Sorting was a major activity in most facilities that processed data on punched cards using unit record equipment. The work flow of many processes required decks of cards to b ...
. Depending on the programming language, debugging output statements could be quickly activated and "commented out" by using cards with such statements punched with the comment character (''e.g.'', 'C' in Fortran) in column 80 of the card; turning the card end-for-end would put the 'C' in the leading column, which transformed the now backwards card's contents into a comment while leaving the physical card in place in deck.
(An alternative, imperfect but commonly employed technique to maintain proper card order was to draw one or more diagonal stripes across the top edge of all the cards in a deck.)
In later years, as punch card data was converted to magnetic tape files the sequence numbers were often used as a column in an array as an index value that can be correlated to time sequences, such as in the natural sciences where the data on the cards were related to the periodic output of a measuring device such as water stage level recorders for rivers and streams in hydrology, or temperatures in meteorology. Entire vaults full of card decks could be reduced to much smaller racks of nine-track tapes.
See also
*
Unit record equipment history
Footnotes
References
*: Article about the programming culture that developed around use of the punched card, following Fisk's experience of "learning the craft" from people around him.
*
*
External links
* {{cite web , url=http://www.computercollector.com/archive/ibm/pcdpp/ , title=IBM Punched Card Data Processing Principles (1961) , website=computercollector.com
Gallery
Image:PunchCardDecks.agr.jpg, A box of punched cards with several program decks.
File:Punched card program deck.agr.jpg, A card deck containing one program.
Image:FortranCodingForm.agr.jpg, A pad of Fortran coding forms.
Image:IBM1620SPSpunchcard.agr.jpg, Card formatted for IBM 1620 assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
.
File:DamagedPunchedCard.jpg, Cards would sometimes jam in the reader, requiring one or more to be repunched.
File:Bound computer printout.agr.jpg, Listing of a large computer program on continuous form paper, bound in a printout binder.
File:IBMkeypunchDrumCard.MWichary.jpg, IBM keypunch drum card used to program tabs and skips
File:Lochkartendoppler IBM 519.jpg, An IBM 519 reproducing punch with plugboard
A plugboard or control panel (the term used depends on the application area) is an array of jacks or sockets (often called hubs) into which patch cords can be inserted to complete an electrical circuit. Control panels are sometimes used to di ...
control panel open (it would be closed during operation).
File:IBM 1402 at CHM.jpg, IBM 1402 high speed card reader and punch used in larger installations and typically run by an operator
File:IBM1442.corestore.jpg, IBM 1442 medium speed card reader and punch used on many smaller computers such as the IBM 1130
The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding th ...
Computer programming
Programming in the punch card era