Computers are good at following instructions, but not at reading your mind.
– Donald Knuth
COBOL (an acronym for COmmon Business-Oriented Language) is a programming language developed in 1959 by a working group composed of elements of the US industry and some US government agencies to create a programming language suitable for processing commercial data. Grace Murray Hopper played a primary role in the development and design of the language.
COBOL is a procedural programming language, business-oriented and with strong typing. Its syntax is verbose and descriptive, trying to approach natural language. A COBOL program is divided into four divisions: identification, environment, data and procedure.
IDENTIFICATION DIVISION.
PROGRAM-ID. COMPOUND-INTEREST.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 INITIAL-AMOUNT PIC 9(5)V99 COMP-3.
01 INTEREST-RATE PIC 9(3)V9 COMP-3.
01 YEARS PIC 9(4) COMP-3.
01 FINAL-AMOUNT PIC 9(7)V99 COMP-3.
PROCEDURE DIVISION.
DISPLAY "Enter the initial amount: "
ACCEPT INITIAL-AMOUNT
DISPLAY "Enter the interest rate (as a percentage): "
ACCEPT INTEREST-RATE
DISPLAY "Enter the number of years: "
ACCEPT YEARS
MOVE INITIAL-AMOUNT TO FINAL-AMOUNT
PERFORM VARYING YEARS FROM 1 BY 1
UNTIL YEARS = 0
COMPUTE FINAL-AMOUNT = FINAL-AMOUNT * (1 + INTEREST-RATE / 100)
DISPLAY "The final amount after " YEARS " years is: " FINAL-AMOUNT
STOP RUN.
COBOL has undergone continuous evolution: in 1968, 1974 and 1985 the American National Standards Institute (ANSI) defined the Cobol68, Cobol74 and Cobol85 standards, also adopted by the International Organization for Standardization (ISO). With ISO/IEC 1989-2002, started in 1989 and completed in 2002, we have reached the definitive international standard.
Research information online shows that COBOL was still used in 70% of all business transactions in 2013 and 85% of business applications worldwide would have been written in COBOL. Even today many companies are looking for COBOL programmers to replace historical developers because 75% of rewriting processes in a more modern language have proven to be unsuccessful or the cost of replacement is too high to sustain.
Although I agree that the cost of rewriting can be high and prohibitive in some contexts, I have successfully worked on rewriting several COBOL and RPG programs in Java.
Here are some links to websites that provide information about COBOL:
Even if you don’t like the COBOL language (I don’t like it), don’t underestimate the strategic importance of knowing its basics. You too could work on a project to rewrite a COBOL program in your preferred language.