Share on Facebook Share on Twitter Email
Answers.com

COBOL

 
Dictionary: CO·BOL or Co·bol ('bôl') pronunciation
 
n.

A programming language developed in the late 1950s and early 1960s and used especially for business applications. It is closer to English than many other high-level languages.

[Co(mmon) B(usiness-)O(riented) L(anguage).]


Search unanswered questions...
Enter a word or phrase...
All Community Q&A Reference topics
 

(common business-oriented language) computer language developed in the early 1960s by several computer manufacturers and the U.S. Department of Defense. It was often used to write programs to process business data such as payrolls and accounts payable records.

 
Accounting Dictionary: Common Business Oriented Language (Cobol)
Top

Programming language for business data processing. As compared to Fortran and Basic COBOL statements resemble English sentences and thus are long and wordy, but easy to read.

 
Hacker Slang: COBOL
Top

[COmmon Business-Oriented Language] (Synonymous with evil.) A weak, verbose, and flabby language used by code grinders to do boring mindless things on dinosaur mainframes. Hackers believe that all COBOL programmers are suits or code grinders, and no self-respecting hacker will ever admit to having learned the language. Its very name is seldom uttered without ritual expressions of disgust or horror. One popular one is Edsger W. Dijkstra's famous observation 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) See also fear and loathing, software rot.


 

High-level computer programming language, one of the first widely used languages and for many years the most popular language in the business community. It developed from the 1959 Conference on Data Systems Languages, a joint initiative between the U.S. government and the private sector. COBOL was created to fulfill two major objectives: portability (ability of programs to be run with minimum modification on computers from different manufacturers) and readability (ease with which a program can be read like ordinary English). It ceased to be widely used in the 1990s.

For more information on COBOL, visit Britannica.com.

 
Abbreviations: COBOL
Top
is short for:

Meaning Category
Cannot Operate Because Of LimitationsMiscellaneous->Funnies
Common Business Oriented LanguageGovernmental->Military
Computing->General
Business->Accounting
Completely Obsolete Business Oriented LanguageMiscellaneous->Funnies

Click here to submit an acronym.


 
Wikipedia: COBOL
Top
COBOL
Paradigm procedural,
object-oriented
Appeared in 1959 (1959)
Designed by Grace Hopper, William Selden, Gertrude Tierney, Howard Bromberg, Howard Discount, Vernon Reeves, Jean E. Sammet
Typing discipline strong, static
Major implementations OpenCOBOL, MicroFocus.com
Dialects HP3000 COBOL/II, COBOL/2, 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, ICL COBOL, ACUCOBOL-GT, DEC VAX COBOL, Wang VS COBOL, Visual COBOL
Influenced by FLOW-MATIC, COMTRAN, FACT
Influenced PL/I, CobolScript, ABAP

COBOL (pronounced /ˈkoʊbɒl/) is one of the oldest programming languages. 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.[1]

Contents

History and specification

A specification of COBOL was initially created during the second half of 1959 by Grace Hopper. The scene was set on April 8 at a meeting of computer manufacturers, users and university people at the University of Pennsylvania Computing Center and subsequently the United States Department of Defense agreed to sponsor and oversee the next activities. A meeting was held at the Pentagon on May 28 and 29 (exactly one year after the Zürich ALGOL 58 meeting), chaired by Charles A. Phillips. There it was decided to set up three committees, short, intermediate and long range (the last one was actually never formed). It was the Short Range Committee, chaired by Joseph Wegstein of the US National Bureau of Standards, that during the next months would create a description of the first version of COBOL.[2] The committee was formed to recommend a short range approach to a common business language. The committee was made up of members representing six computer manufacturers and three government agencies. 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 National Institute of Standards and Technology). The intermediate-range committee was formed but never became operational. 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:

This subcommittee completed the specifications for COBOL in December 1959. 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", the IBM COMTRAN language invented by Bob Bemer, and the FACT language from Honeywell.

The name COBOL was decided upon at a meeting of the committee held on 18 September 1959.

The first compilers for COBOL were subsequently implemented during the year 1960 and on 6 and 7 December essentially the same COBOL program was run on two different makes of computers, an RCA computer and a Remington-Rand Univac computer, demonstrating that compatibility could be achieved.

Since 1959 COBOL has undergone several modifications and improvements. In an attempt to overcome the problem of incompatibility between different versions of COBOL, the American National Standards Institute (ANSI) developed a standard form of the language in 1968. This version was known as American National Standard (ANS) COBOL. In 1974, ANSI published a revised version of (ANS) COBOL, containing a number of features that were not in the 1968 version. In 1985, ANSI published still another revised version that had new features not in the 1974 standard. The language continues to evolve today.

COBOL 2002 and object-oriented COBOL

In the early 1990s it was decided to add object-orientation in the next full revision of COBOL. The initial estimate was to have this revision completed by 1997 and an ISO CD (Committee Draft) was available by 1997. Some implementers (including Micro Focus, Fujitsu, and IBM) introduced object-oriented syntax based on the 1997 or other drafts of the full revision. The final approved ISO Standard (adopted as an ANSI standard by INCITS) was approved and made available in 2002.

Like the C++ programming language, object-oriented COBOL compilers are available even as the language moves toward standardization. Fujitsu and Micro Focus currently support object-oriented COBOL compilers targeting the .NET framework.[4]

The 2002 (4th revision) of COBOL included many other features beyond object-orientation. These included (but are not limited to):

  • National Language support (including but not limited to Unicode support)
  • Locale-based processing
  • User-defined functions
  • CALL (and function) prototypes (for compile-time parameter checking)
  • Pointers and syntax for getting and freeing storage
  • Calling conventions to and from non-COBOL languages such as C
  • Support for execution within framework environments such as Microsoft's .NET and Java (including COBOL instantiated as Enterprise JavaBeans)
  • Bit and Boolean support
  • “True” binary support (up until this enhancement, binary items were truncated based on the (base-10) specification within the Data Division)
  • Floating-point support
  • Standard (or portable) arithmetic results
  • XML generation and parsing

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) produced several revisions of the COBOL standard, including:

  • COBOL-68
  • COBOL-74
  • COBOL-85
  • Intrinsic Functions Amendment - 1989
  • Corrections Amendment - 1991

After the Amendments to the 1985 ANSI Standard (which were adopted by ISO), primary development and ownership was taken over by ISO. The following editions and TRs (Technical Reports) have been issued by ISO (and adopted as ANSI) Standards:

  • COBOL 2002
  • Finalizer Technical Report - 2003
  • Native XML syntax Technical Report - 2006
  • Object Oriented Collection Class Libraries - pending final approval...

From 2002, the ISO standard is also available to the public coded as ISO/IEC 1989.

Work is progressing on the next full revision of the COBOL Standard. It is expected to be approved and available in the early 2010s. For information on this revision, to see the latest draft of this revision, or to see what other works is happening with the COBOL Standard, see the COBOL Standards Website.

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 over 200 billion lines of code in existence and with an estimated 5 billion lines of new code annually.[5]

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.

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 (over 400), 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.

Syntactic features

COBOL provides an update-in-place syntax, for example

      ADD YEARS TO AGE

The equivalent construct in many procedural languages would be

age = age + years

This syntax is similar to the compound assignment operator later adopted by C:

age += years

The abbreviated conditional expression

      IF SALARY > 9000 OR SUPERVISOR-SALARY OR = PREV-SALARY

is equivalent to

      IF SALARY > 9000
          OR SALARY > SUPERVISOR-SALARY
          OR SALARY = PREV-SALARY

COBOL provides "named conditions" (so-called 88-levels). These are declared as sub-items of another item (the conditional variable). The named condition can be used in an IF statement, and tests whether the conditional variable is equal to any of the values given in the named condition's VALUE clause. The SET statement can be used to make a named condition TRUE (by assigning the first of its values to the conditional variable).

COBOL allows identifiers to be up to 30 characters long. When COBOL was introduced, much shorter lengths (e.g., 6 characters for FORTRAN) were prevalent.

The concept of copybooks was introduced by COBOL; these are chunks of text which can be inserted into a program's code. This is done with the COPY statement, which also allows parts of the copybook's text to be replaced with other text (using the REPLACING ... BY ... clause).

Data types

Standard COBOL provides the following data types:

Data type Sample declaration Notes
Character PIC X(20)
PIC A(4)9(5)X(7)
Alphanumeric and alphabetic-only
Single-byte character set (SBCS)
Edited character PIC X99BAXX Formatted and inserted characters
Numeric fixed-point binary PIC S999V99
USAGE COMPUTATIONAL

or
BINARY
Binary 16, 32, or 64 bits (2, 4, or 8 bytes)
Signed or unsigned. Conforming compilers limit the maximum value of variables based on the picture clause and not the number of bits reserved for storage.
Numeric fixed-point packed decimal PIC S999V99
USAGE PACKED-DECIMAL
1 to 18 decimal digits (1 to 10 bytes)
Signed or unsigned
Numeric fixed-point zoned decimal PIC S999V99
[USAGE DISPLAY]
1 to 18 decimal digits (1 to 18 bytes)
Signed or unsigned
Leading or trailing sign, overpunch or separate
Numeric floating-point PIC S9V999ES99 Binary floating-point
Edited numeric PIC +Z,ZZ9.99
PIC $***,**9.99CR
Formatted characters and digits
Group (record) 01 CUST-NAME.
  05 CUST-LAST PIC X(20).
  05 CUST-FIRST PIC X(20).
Aggregated elements
Table (array) OCCURS 12 TIMES Fixed-size array, row-major order
Up to 7 dimensions
Variable-length table OCCURS 0 to 12 TIMES
DEPENDING ON CUST-COUNT
Variable-sized array, row-major order
Up to 7 dimensions
Renames (variant or union data) 66 RAW-RECORD
  RENAMES CUST-RECORD
Character data overlaying other variables
Condition name 88 IS-RETIRED-AGE
  VALUES 65 THRU 150
Boolean value
dependent upon another variable
Array index USAGE INDEX Array subscript

Most vendors provide additional types, such as:

Data type Sample declaration Notes
Numeric fixed-point binary
in native byte order
PIC S999V99
USAGE COMPUTATIONAL-4
Binary 16, 32, or 64 bits (2, 4, or 8 bytes)
Signed or unsigned
Numeric fixed-point binary
in big-endian byte order
PIC S999V99
USAGE COMPUTATIONAL-5
Binary 16, 32, or 64 bits (2, 4, or 8 bytes)
Signed or unsigned
Wide character PIC G(20) Alphanumeric
Double-byte character set (DBCS)
Edited wide character PIC G99BGGG Formatted and inserted wide characters
Edited floating-point PIC +9.9(6)E+99 Formatted characters and decimal digits
Data pointer USAGE POINTER Data memory address
Code pointer USAGE PROCEDURE-POINTER Code memory address
Bit field PIC 1(n) USAGE COMPUTATIONAL-5 n can be from 1 to 64, defining an n-bit integer
Signed or unsigned
Index USAGE INDEX Binary value corresponding to an occurrence of a table element
May be linked to a specific table using INDEXED BY

Hello, world

An example of the "Hello, world" program in COBOL:

      IDENTIFICATION DIVISION.
      PROGRAM-ID. HELLO-WORLD.
      PROCEDURE DIVISION.
      MAIN.
          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 and Turing Award recipient Edsger Dijkstra remarked that "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offense."[6]

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 3,200 letters from the public, mostly negative, requiring the committee to make changes.[7]

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

Others[who?] criticize the ad hoc incorporation of features on a language that was meant to be a short term solution to interoperability in 1959. Coupled with the perceived archaic syntax, they argue that it tries to fill a niche for which better tools have already been designed and developed.

Defense

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, one of the roots of the quadratic equation ax2 + bx + c = 0, which are:


x=\frac{-b \pm \sqrt {b^2-4ac\ }}{2a} ,

can be coded in COBOL using the "compute" verb as:

      COMPUTE X1 = (-B + SQRT(B ** 2 - (4 * A * C))) / (2 * A)
      COMPUTE X2 = (-B - SQRT(B ** 2 - (4 * A * C))) / (2 * A)

The first formula could 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.

Which form to use is a matter of style. In some cases the less concise form may be easier to read. For example:

      ADD YEARS TO AGE.
      MULTIPLY PRICE BY QUANTITY GIVING COST.
      SUBTRACT DISCOUNT FROM COST GIVING FINAL-COST.

Older versions of COBOL supported 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. Also, local variables could be accomplished via separately compiled sub-programs. Newer COBOL compilers support the LOCAL-STORAGE section for local variables.

See also

Other third- and fourth-generation programming languages

References

  1. ^ Oliveira, Rui (2006). The Power of Cobol. City: BookSurge Publishing. ISBN 0620346523. 
  2. ^ Garfunkel, Jerome (1987). The Cobol 85 Example Book. New York: Wiley. ISBN 0471804614. 
  3. ^ Wexelblat, Richard (1981). History of Programming Languages. Boston: Academic Press. ISBN 0127450408. 
  4. ^ NetCOBOL for .NET supports COBOL migration and software development in the .NET environment
  5. ^ "Future of COBOL" (PDF). LegacyJ Corporation. 2003. 5. http://www.legacyj.com/cobol/FutureOfCobol.pdf. Retrieved on 2006-11-08. 
  6. ^ Dijkstra (2006). "E. W. Dijkstra Archive: How do we tell truths that might hurt? (EWD498)". University of Texas at Austin. http://www.cs.utexas.edu/users/EWD/transcriptions/EWD04xx/EWD498.html. Retrieved on August 29 2007. 
  7. ^ (The COBOL 85 Example Book)

Sources

  • Ebbinkhuijsen, Wim B.C., COBOL Alphen aan den Rijn/Diegem: Samson Bedrijfsinformatie bv, 1990. ISBN 90-14-04560-3. (Dutch)

External links

Standards:

Reference manuals:

Tutorials, forums and communities:

Compilers and other products:

  • XML Thunder, which serializes and de-serializes XML in COBOL
  • COBOL-IT, First company offering Professional Services for the COBOL World based on a wide range of Open Source Software

Other perspectives:


 
Translations: CoboL
Top

Dansk (Danish)
n. - programmeringssproget COBOL, COmmon Business Oriented Language

Français (French)
n. - (abrév = common business-oriented language) (Comput) langage COBOL

Deutsch (German)
n. - (Comp.) COBOL (Programmiersprache)

Ελληνική (Greek)
abbr. - (Η/Υ) κοινή γλώσσα προγραμματισμού για εμπορικές εφαρμογές

Español (Spanish)
n. - (informática) COBOL, lenguaje de programación (Common Business-oriented Language)

Svenska (Swedish)
abbr. - Cobol (programmeringsspråk)

中文(简体)(Chinese (Simplified))
面向商业的通用语, COBOL语言

中文(繁體)(Chinese (Traditional))
n. - 面向商業的通用語, COBOL語言

한국어 (Korean)
n. - 사무 계산용 프로그래밍 언어

العربيه (Arabic)
‏(اختصار) أسم لغه برمجه شائعه‏

עברית (Hebrew)
n. - ‮קובול - שפת תכנות עלית, בעיקר לשימושים מסחריים‬


 
 

 

Copyrights:

Dictionary. The American Heritage® Dictionary of the English Language, Fourth Edition Copyright © 2007, 2000 by Houghton Mifflin Company. Updated in 2007. Published by Houghton Mifflin Company. All rights reserved.  Read more
Business Dictionary. Dictionary of Business Terms. Copyright © 2000 by Barron's Educational Series, Inc. All rights reserved.  Read more
Accounting Dictionary. Dictionary of Accounting Terms. Copyright © 2005 by Barron's Educational Series, Inc. All rights reserved.  Read more
Hacker Slang. The Jargon File. Copyright © 2007.  Read more
Britannica Concise Encyclopedia. Britannica Concise Encyclopedia. © 2006 Encyclopædia Britannica, Inc. All rights reserved.  Read more
Abbreviations. STANDS4.com - The source for acronyms and abbreviations. Copyright ©2006 STANDS4 LLC. All rights reserved.  Read more
Wikipedia. This article is licensed under the GNU Free Documentation License. It uses material from the Wikipedia article "COBOL" Read more
Translations. Copyright © 2007, WizCom Technologies Ltd. All rights reserved.  Read more

 

Mentioned in