Computer programming in the punch card era

From Wikipedia, the free encyclopedia

Punch card from a Fortran program.
Punch card from a Fortran program.

From the invention of computer programming languages until, roughly the mid-1970s, most computer programmers created, edited and stored their programs on punch cards. The practice was nearly universal with IBM computers in the era. In many organizations, programmers carefully wrote out their programs on special forms called coding sheets, taking care to distinguish the digit zero from the letter O, the digit one from the letter I, 8's from Bs, 2's from Zs, and so on. Completed forms were sent to the keypunch department where operators typed them in, one line to a card. In other shops, programmers did their own keypunching.

A box of punch cards with several program decks.
A box of punch cards with several program decks.

Program editing was generally done at the keypunch. It was easy to reorder program statements. A single character typo could be corrected by duplicating the card up to the error column, typing the correct character and then duplicating the rest of the card. More complex edits were harder and might require retyping the line after the point of error.

Many early programming languages, including Fortran, Cobol and the various IBM assembler languages, used only the first 72 colums of a card; a tradition that traces back to the card reader used on the IBM 704 computer. Columns 73-80 were ignored by the compiler and could be used for identification, such as adding a sequence number so that if the card deck was dropped it could be restored to its proper order using a card sorter. Programmers often didn't bother doing this during development or for student projects and, instead, frequently drew a diagonal stripe across the top of the deck using a marking pen as a check for proper order. Programs were backed up by duplicating the entire deck or by having it written onto a magnetic tape.

A pad of Fortran coding forms.
A pad of Fortran coding forms.

In many mainframe operations, 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.

Card formated for IBM 1620 assembly language.
Card formated for IBM 1620 assembly language.

Depending on workloads and project priority the process could take hours; overnight and 24 hour turnaround times were not uncommon. Dedicated geeks of the era might stay up all night to get a few quick turn-arounds in the early morning hours -- otherwise unavailable, using this very expensive equipment -- mainframe computer usage was measured in seconds per job, and every job was charged to an account. Other operations, 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.

  • E. I. Organick, A Fortran IV Primer, Addison-Wesley, 1966

  1. ^ Columbia University Computing History: IBM Cards
Advanced Search
Included Web Search Engines


Safe Search

close

Top Matching Results

Occasionally Search.com will highlight specialized results that are based on the context of your query. Examples of specialized results include specific links to news, images, or video.

Top Matching Results may highlight information from other Search.com pages, content from the CNET Network of sites, or third party content. The listings are based purely on relevance. Search.com does not receive payment for listings in this section but our partners that provide this data may get paid for listing these products.

Sponsored Links

This section contains paid listings which have been purchased by companies that want to have their sites appear for specific search terms and related content. These listings are administered, sorted and maintained by a third party and are not endorsed by Search.com.

Search Results

Search.com sends your search query to several search engines at one time and integrates the results into one list which has been sorted by relevance using Search.com's proprietary algorithm. You can customize the list of search engines included in your metasearch from the preferences.

The search engines that are used in your metasearch may allow companies to pay to have their Web sites included within the results. To view the Paid Inclusion policy for a specific search engine, please visit their Web site. Search.com does not accept payment or share revenue with any search engine partner for listings in this section.