cobol programming language



cobol

cobol

COBOL
Paradigm: multi-paradigm
Appeared in: 1959
Designed by: Grace Hopper, William Selden, Gertrude Tierney, Howard Bromberg, Howard Discount, Vernon Reeves, Jean E. Sammet
Typing discipline: strong, static
Major implementations: http://www.opencobol.org/
Dialects: IBM OS/VS COBOL, IBM COBOL/II, IBM COBOL SAA, IBM Enterprise COBOL, IBM COBOL/400, IBM ILE COBOL, Unix COBOL X/Open, Micro Focus COBOL, Microsoft COBOL, Ryan McFarland RM/COBOL, Ryan McFarland RM/COBOL-85, DOSVS COBOL, UNIVAC COBOL, Realia COBOL, Fujitsu COBOL, ACUCOBOL-GT, DEC VAX COBOL, Wang VS COBOL
Influenced by: FLOW-MATIC, COMTRAN
Influenced: PL/I

COBOL is a third-generation programming language, and one of the oldest programming languages still in active use. Its name is an acronym for COmmon Business-Oriented Language, defining its primary domain in business, finance, and administrative systems for companies and governments.

The COBOL 2002 standard includes support for object-oriented programming and other modern language features.

Contents

  • 1 History and specification
  • 2 History of COBOL standards
  • 3 Defining features
  • 4 COBOL legacy
  • 5 Hello world
  • 6 Criticism
  • 7 Defense
  • 8 Aphorisms and humor about COBOL
  • 9 COBOL 2002 and Object-Oriented COBOL
  • 10 Trivia
  • 11 See also
    • 11.1 Other third-generation programming languages
    • 11.2 Other
  • 12 References
  • 13 External links

History and specification

COBOL was initially created in 1959 by The Short Range Committee, one of three committees proposed at a meeting held at the Pentagon on May 28 and 29, 1959, organized by Charles Phillips of the United States Department of Defense (exactly one year after the Zürich ALGOL 58 meeting). The Short Range Committee was formed to recommend a short range approach to a common business language. It was made up of members representing six computer manufacturers and three government agencies. In particular, the six computer manufacturers were Burroughs Corporation, IBM, Minneapolis-Honeywell (Honeywell Labs), RCA, Sperry Rand, and Sylvania Electric Products. The three government agencies were the US Air Force, the David Taylor Model Basin, and the National Bureau of Standards (Now NIST). This committee was chaired by a member of the NBS. An Intermediate-Range Committee and a Long-Range Committee were proposed at the Pentagon meeting as well. However although the Intermediate Range Committee was formed, it was never operational; and the Long-Range Committee was never even formed. In the end a sub-committee of the Short Range Committee developed the specifications of the COBOL language. This sub-committee was made up of six individuals:

  • William Selden and Gertrude Tierney of IBM
  • Howard Bromberg and Howard Discount of RCA
  • Vernon Reeves and Jean E. Sammet of Sylvania Electric Products

This subcommittee completed the specifications for COBOL as the year of 1959 came to an end. The specifications were to a great extent inspired by the FLOW-MATIC language invented by Grace Hopper, commonly referred to as "the mother of the COBOL language", and the IBM COMTRAN language invented by Bob Bemer.

History of COBOL standards

The specifications approved by the full Short Range Committee were approved by the Executive Committee on January 3 1960, and sent to the government printing office, which edited and printed these specifications as Cobol 60.

The American National Standards Institute (ANSI) has since produced several revisions of the COBOL standard, including

  • COBOL-68
  • COBOL-74
  • COBOL-85
  • COBOL 2002

Defining features

COBOL as defined in the original specification included a PICTURE clause for detailed field specification. It did not support local variables, recursion, dynamic memory allocation, or structured programming constructs. Support for some or all of these features has been added in later editions of the COBOL standard.

COBOL has many reserved words, called keywords. The original COBOL specification supported self-modifying code via the infamous "ALTER X TO PROCEED TO Y" statement. This capability has since been removed.

COBOL legacy

COBOL programs are in use globally in governmental and military agencies, in commercial enterprises, and on operating systems such as IBM's z/OS, Microsoft's Windows, and the POSIX families (Unix/Linux etc.. ). In 1997, the Gartner Group, reported that 80% of the world's business ran on COBOL with 180 billion lines of code in existence and with an estimated 5 billion lines of new code annually.[1]

Near the end of the twentieth century the year 2000 problem was the focus of significant COBOL programming effort, sometimes by the same programmers who had designed the systems decades before. The particular level of effort required for COBOL code has been attributed both to the large amount of business-oriented COBOL, as COBOL is by design a business language and business applications use dates heavily, and to constructs of the COBOL language such as the PICTURE clause, which can be used to define fixed-length numeric fields, including two-digit fields for years.

Hello world

       IDENTIFICATION DIVISION.
       PROGRAM-ID. Hello-World.
      *
       ENVIRONMENT DIVISION.
      *
       DATA DIVISION.
      *
       PROCEDURE DIVISION.
       PARA-1.
           DISPLAY "Hello, world.".
      *
           STOP RUN.

Criticism

Critics have argued that COBOL's syntax serves mainly to increase the size of programs, at the expense of developing the thinking process needed for software development. In his letter to an editor in 1975 titled "How do we tell truths that might hurt?", computer scientist Edsger Dijkstra remarked that "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense" (from Selected Writings on Computing: A Personal Perspective).

COBOL 85 was not compatible with earlier versions, resulting in the "cesarean birth of COBOL 85". Joseph T. Brophy, CIO, Travelers Insurance, spearheaded an effort to inform users of COBOL of the heavy reprogramming costs of implementing the new standard. As a result the ANSI COBOL Committee received more than 3200 letters from the public, mostly negative, requiring the committee to make changes. (The COBOL 85 Example Book)

Older versions of COBOL lack local variables and so cannot truly support structured programming.

Defense

Advocates claim that typically those who criticize the language have never been COBOL programmers and often misrepresent it. Critic Edsger Dijkstra was also positively impressed by Michael A. Jackson's ideas about "Structured Programming" in COBOL (Jackson Structured Programming).

The COBOL specification has also been revised over the years to incorporate developments in computing theory and practice .

As with any language, COBOL code can be made more verbose than necessary. For example the COBOL code for one of the roots of the quadratic equation

can be written, using the "compute" verb, as:

      COMPUTE X = (-B + (B ** 2 - (4 * A * C)) **.5) / (2 * A)

The same formula can also be written less concisely as:

      MULTIPLY B BY B GIVING B-SQUARED.  
      MULTIPLY 4 BY A GIVING FOUR-A.  
      MULTIPLY FOUR-A BY C GIVING FOUR-A-C.  
      SUBTRACT FOUR-A-C FROM B-SQUARED GIVING RESULT-1.  
      COMPUTE RESULT-2 = RESULT-1 ** .5.
      SUBTRACT B FROM RESULT-2 GIVING NUMERATOR.
      MULTIPLY 2 BY A GIVING DENOMINATOR.
      DIVIDE NUMERATOR BY DENOMINATOR GIVING X.

Newer versions of COBOL support local variables via embedded programs (scope-delimited by the keywords PROGRAM-ID and END-PROGRAM). Variables declared within the embedded program are invisible outside its scope. In older versions of COBOL local variables may be hidden by using sub-programs, which must be invoked (via the keyword CALL). The calling program will not have access to the variables declared and manipulated by the sub-program. This technique could result in an unwieldy mass of sub-programs, particularly if those are not well documented.

Aphorisms and humor about COBOL

It has been said of languages like C, C++, and Java that the only way to modify legacy code is to rewrite it - write once and write once again; or write once and throw away. On the other hand, it has been said of COBOL that there actually is one original COBOL program, and it only has been copied and modified millions of times.

The name "ADD 1 TO COBOL GIVING COBOL" has been suggested for a hypothetical object-oriented dialect of COBOL, as a play on the name C++. While this is meant to suggest that COBOL is inherently verbose, the form given is more verbose than COBOL actually requires.

Alternative expansions of the COBOL acronym have been suggested:

  • Compiles Only Because Of Luck
  • Compiles Only By Odd Luck
  • Completely Obsolete Business Oriented Language
  • Completely Obsolete Boring Old Language

COBOL 2002 and Object-Oriented COBOL

The COBOL2002 standard supports Unicode, XML generation and parsing, calling conventions to/from non-COBOL languages such as C, and support for execution within framework environments such as Microsoft's .NET and Java (including COBOL instantiated as EJBs). However, no vendor has yet produced a completely conforming compiler.

Trivia

  • The Tao of Programming (by Geoffrey James), when talking about the place of languages within the Tao says: "...but do not program in COBOL if you can avoid it."
  • Labyrinth - a Novel about the Software Industry (by Arunabha Sengupta) deals with the monotony and corporate exploitation in the life of a COBOL programmer during the Y2K days.

cobol news and cobol articles

Here's our top rated cobol links for the day:

The next bit programming language ... will not be a programming language 

IT World - Feb 09 12:43 PM
The industry seems to be in one of its "Gee, I wonder what's next? What's the next Big Thing?" phases at the moment in the field of software development.

How to avoid being outsourced 
Silicon.com - Feb 08 6:33 AM
Techies need more business skills, says job guide

Wikis as Collaboration Tools 
TechNewsWorld.com - Feb 08 5:05 AM
Content management systems usually won't work as collaboration tools. Although a CMS does ease content creation, the resulting Web sites have rigid navigation and formal publishing work flows. Wikis, on the other hand, empower users to create new pages ad hoc, as well as create links easily within the content.

Thank you for viewing the cobol page cobol. 

 

Ever wondered what others are searching for in relation to cobol? Now you can see.  Below is a listing of  what everyone else is searching for in regard to cobol.

1. cobol
2. cobol programming language
3. cobol loadlib
4. cobol programmer san antonio texas
5. history of cobol
6. cobol migration services
7. cobol tutorials
8. cobol to java
9. cobol programming
10. cobol pds
11. cobol to net
12. cobol migration
13. cobol web page in the us
14. cobol programmer jobs
15. start & cobol
16. cobol jobs
17. cobol computers
18. cobol compiler
19. cobol array processing and table handling
20. cobol search command
21. history of cobol languages
22. cobol online reference
23. cobol signed value
24. cobol ii
25. cobol after advancing
26. cobol documentation
27. merant microfocus 3.0 cobol trace command line
28. cobol sign value
29. pros and cons of cobol
30. tcr + cobol
31. cobol search
32. retrieving the name of a field in cobol
33. cobol ii bit byte manipulation
34. cobol code for single page subfile
35. cobol sample program & file i/o
36. cobol jokes
37. as400 cobol runqry
38. cobol ruler
39. cobol language basic characteristics
40. how does a cobol variable record move work
41. how to get cobol working storage address
42. eclipse z/os cobol
43. cobol unit test
44. cobol test questions
45. ibm cobol link options
46. columns in cobol coding form
47. delta cobol
48. micro focus cobol for .net
49. symbolics in cobol jcl
50. variable length record cobol
51. cobol teachers
52. sample cobol programs
53. pcl commands in cobol programs
54. isam rmcobol unix rm cobol utilitiesresume downloadshop
55. mainframe cobol jobs
56. microfocus cobol 4
57. ibm hexidecimal representation in cobol program
58. cobol jobs unisys detroit
59. cobol education
60. cobol faq
61. cobol function
62. cobol compile date ibm load
63. certification soa applications cics cobol
64. cobol syntax xml generate attribute
65. assembler dsect to cobol copybook
66. cobol history
67. cobol checkpoint restart
68. cobol sql count
69. cobol humor
70. cobol string manipulation
71. cobol record editor gui
72. cobol software analysis
73. cobol inspect
74. cobol quotes
75. cobol online jobs
76. cobol line continue
77. cobol load module to source conversion
78. cobol open file
79. cobol language
80. cobol executive trainers
81. cobol flowchart aid
82. cobol programmers areas question rfi find
83. cobol editing sign control symbols
84. cobol set verb
85. cobol programmer in mississauga
86. cobol process documentation tools
87. cobol pc free
88. basics + learning + cobol
89. cobol assignments cust file
90. cobol computer language
91. as400 cobol
92. as/400 cobol online course
93. a-mode cobol linking
94. cobol cust-file program
95. cobol date functions
96. cobol definition
97. cobol db2 express
98. cobol db2
99. cobol date leap year
100. cobol developer test questions