Informatics    
   
Table of contents
(Prev) Computer Online Forensic Evide ...Computer Programming/Hello world (Next)

Computer programming in the punched card era

Student programmers at the Technische Hochschule in Aachen, Germany in 1970 use IBM 026 keypunches.
Punched card from a Fortran program.

From the invention of computer programming languages up to the mid-1980s, many if not most computer programmers created, edited and stored their programs line by line on punched cards. The practice was nearly universal with IBM computers in the era. 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. Users could create cards using a desk-sized keypunch with a typewriter-like keyboard. A typing error generally necessitated repunching an entire card. In some companies, programmers wrote information 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. These forms were then converted to cards by keypunch operators, and in some cases, checked by verifiers. 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.

Contents

Keypunch room

A typical corporate or university computer installation would have a room full of keypunch machines for programmer use. An IBM 407 Accounting Machine might be set up to allow newly created or edited programs to be listed (printed out on fan-fold paper) for proof reading. An IBM 519 might be provided to reproduce program decks for backup or to punch sequential numbers in columns 73-80. In many mainframe 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. 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 he removed them from the stacker. These cards (e.g., a JCL "JOB" card to start a new job) were often prepunched in large quantities in advance.[1] This was especially useful when the main computer did not read the cards directly, but instead read their images from magnetic tape that was prepared offline by smaller computers such as the IBM 1401. After running it, the computer operator would return the card deck and any hardcopy printed output, typically to one of a set of alphabetically labelled cubby holes, based on the programmer's last initial.

Overnight and 24 hour turnaround times were not uncommon; however, on a lightly used system, it was possible to make alterations and rerun a program in a few minutes. Between these extremes it was common to stand in line waiting to submit a deck. Dedicated programmers might stay up all hours to get a few quick turnarounds. Using this expensive equipment—mainframe computer usage was measured in seconds per job — was often charged to a user's account. Other installations, such as those using smaller computers like the IBM 650, 1620 and 1130, were run as an open shop, where programmers had use of the computer for a block of time. A keypunch was usually located nearby for quick corrections. This was all batch-mode processing, as opposed to interactive processing.

Columns 73-80

Many early programming languages, including Fortran, Cobol and the various IBM assembler languages, used only the first 72 columns of a card — a tradition that traces back to the IBM 711 card reader used on the IBM 704/709/7090/7094 series (especially the IBM 704, the first mass-produced computer with floating point arithmetic 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. (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.)

See also

  • Unit record equipment history

References

External links

Gallery

(Prev) Computer Online Forensic Evide ...Computer Programming/Hello world (Next)