Tikalon Header Blog Logo

Celebrating COBOL

March 31, 2011

There's a saying that "if it ain't broke, don't fix it!" This applies especially to large legacy software programs that continue to do their job many years after they were written. This is notoriously true for many mainframe payroll applications, and they were little noticed until Y2K. For those of you too young to have lived through the change of year from 1999 to 2000, this roll-over in dates caused a problem for many legacy systems. This could have been called the millennium computer problem, but the new millennium didn't start until 2001,[1] which is surprising to most people.

Since these legacy systems were written in legacy software languages, there were quite a few retired programmers who were enticed to come out of retirement to fix these applications. The problem was that early programmers didn't have the wealth of memory or fast processors we have today, so they wrote frugal code that took less space and did simple operations. For this reason, dates never included the most significant digits of the year (understood to be always 19). This saved a lot of bytes of storage in huge database applications, and it made calculation of differences of dates faster.

Many of these legacy applications were written in COBOL, an acronym for Common Business Orientated Language. Legacy programs written in COBOL are still used to process millions of banking transactions daily. "Cobol" may also be familiar to Battlestar Galactica fans as the origin planet for the human diaspora.[2]

COBOL, the computer language, is now fifty years old. It was one of the first high-level languages, and the first to run on computers of different manufacture. It was run simultaneously on a Remington Rand Univac computer and an RCA 501 computer on December 6, 1960.[3] The fiftieth anniversary of COBOL is the object of an online exhibit, and a physical exhibit that opened March 17, at the Smithsonian National Museum of American History.[4-6]

You can't think about COBOL without thinking about Grace Hopper. Hopper was one of the first computer scientists and computer programmers. She wrote the first compiler; that, for a language called "A," so now we know the milieu in which "C" was named. This compiler was written while Hopper was working at Remington Rand. "A" evolved into FLOW-MATIC, one of the precursors for COBOL. In 1959, Hopper was technical consultant to CODASYL, a two-day conference of industrial and government computer experts that launched the development of COBOL.

Grace Hopper

Commodore Grace M. Hopper, USNR official portrait photograph, January 20, 1984.


The CODASYL conference was convened to address the problem that software written for a particular brand of machine would not run on others. This was a special problem for the US government, since it bought computers from many different manufacturers. If compilers were written for a high level language for each machine, this problem would vanish. Furthermore, the government had enough clout to require such a compiler for computers it bought. The CODASYL conference set the specification and development of COBOL into motion. The verbose syntax of COBOL is a result of Hopper's idea that computer language should be as natural as spoken language.

A chronology of COBOL's creation appears on the Smithsonian web site:[7]
• In 1959, Mary Hawes of Burroughs Corporation asked computer users and manufacturers to consider the creation of a language that would run things such as payroll calculations, inventory control and financial ledgers on different computers.

• In May 1959, Charles Phillips of the U.S. Department of Defense sponsored a conference of about 40 representatives of computer users and manufacturers at the Pentagon. The Short Range Committee of the Conference on Data Systems Languages was established at that conference with government funding.

• CODASYL was a subcommittee of the "Short Range Committee."

• During 1960, teams at Remington Rand Univac (Philadelphia, PA) and the RCA 501 Systems Center (Cherry Hill, NJ) wrote COBOL compilers for their machines

• On December 6, 1960, COBOL programs ran successfully on the Remington Rand Univac computer and the RCA 501 computer.

COBOL set the stage for development of other common programming languages, and the ability to run such programs on computers of various manufacture set the stage for the computer software industry.[7]

Linux operating system users can experiment with COBOL for free using OpenCOBOL, an open-source COBOL compiler. Open COBOL creates COBOL executables in an interesting way. It translates COBOL into C and compiles this translated code on the GNU C compiler.[8]

References:

  1. When does the New Millennium Start?, NASA Goddard Space Flight Center, Ask an Astrophysicist Web Site.
  2. Battlestar Galactica (TV Series 1978–1979) Page on the Internet Movie Database.
  3. Smithsonian Celebrates COBOL, Computer.org, December 16, 2010.
  4. COBOL (Common Business Orientated Language) exhibit, March 17, 2011.
  5. Nicholas Jackson, "Smithsonian Celebrates COBOL's 50th Anniversary With New Site," The Atlantic Monthly, December 16, 2011.
  6. Peggy A. Kidwell, "50 years of running COBOL," American History Blog, Smithsonian Institution, December 6, 2010.
  7. COBOL Exhibit Web Site, Smithsonian Institution.
  8. OpenCOBOL Website.                                     

Permanent Link to this article

Linked Keywords: If it ain't broke, don't fix it!; legacy software programs; mainframe computer; Year 2000 problem; Y2K; millennium; retirement; programmer; computer data storage; central processing unit; SWEET16; frugal code; byte; COBOL; Battlestar Galactica; diaspora; high-level language; Remington Rand Univac II computer; RCA 501 computer; Smithsonian Institution; National Museum of American History; Grace Hopper; computer scientist; compiler; C programming language; Remington Rand; FLOW-MATIC; CODASYL; Commodore Grace M. Hopper, USNR; verbose syntax; Burroughs Corporation; U.S. Department of Defense; computer software industry; Linux operating system; free open-source software; GNU C compiler.