Warning: mkdir() [
function.mkdir]: Permission denied in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: mkdir() [
function.mkdir]: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
12
Warning: fopen(/home/templatecore2cache//*cluesnet.com/78/78b4d93fa51683cbcfb97b519f855428e5ed8f90.tc2cache) [
function.fopen]: failed to open stream: No such file or directory in
/home/webs/affiliatelib2/CacheManager.php on line
130
Warning: fwrite(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
131
Warning: fclose(): supplied argument is not a valid stream resource in
/home/webs/affiliatelib2/CacheManager.php on line
132
{{ Infobox programming language| name = COBOL| logo =| paradigm =
multi-paradigm programming language| year =
1959, [William Selden, Gertrude Tierney,
Howard Bromberg, Howard Discount,
Vernon Reeves,
Jean E. Sammet, [static typing| 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-->
COBOL (pronounced //) 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.
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:
This subcommittee completed the specifications for COBOL as the year of 1959 concluded. 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.
COBOL (Common Business Oriented Language) was one of the earliest high-level programming languages. It was developed in 1959 by a group of computer professionals called the
Conference on Data Systems Languages (CODASYL). Since 1959 it 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. Object-oriented COBOL is a subset of COBOL 97, which is the fourth edition in the continuing evolution of ANSI/ISO standard COBOL. COBOL 97 includes conventional improvements as well as object-oriented features. Like the C++ programming language, object-oriented COBOL compilers are available even as the language moves toward standardization.
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 (over 400), called keyword (computer)s. The original COBOL specification supported
self-modifying code via the infamous "ALTER X TO PROCEED TO Y" statement. This capability has since been removed.
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
Microsoft 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.
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.
PROCEDURE DIVISION.
PARAGRAPH-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 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".
COBOL 85 was not compatible with earlier versions, resulting in the "cesarean birth of COBOL 85". Joseph T. Brophy,
Chief Information Officer,
St. Paul Travelers, spearheaded an effort to inform users of COBOL of the heavy reprogramming costs of implementing the new standard. As a result the American National Standards Institute received more than 3,200 letters from the public, mostly negative, requiring the committee to make changes.
Older versions of COBOL lack local variables and so cannot truly support structured programming.
Others 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
Glue language have already been designed and developed.
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
x=\frac{-b + \sqrt {b^2-4ac\ -->{2a}.
of the
quadratic equation ax2 +
bx +
c = 0 can be written, using the "compute" verb, as:
COMPUTE X = (-B + (B ** 2 - (4 * A * C)) **.5) / (2 * A)
The same 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.
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.
Another point to be made is that COBOL was one of the earliest high-level programming languages that allowed for fairly long identifiers (identifiers may to be up to 30 characters long), whereas other languages at the time were limited to short identifiers (e.g., FORTRAN compilers typically limited identifiers to six characters). Supporting longer identifiers allows programmers to use more descriptive names, and to reduce the risk that the same name is accidentally used in more than one context.
Aphorisms and humor about COBOL
It has been said of languages like
C (programming language), C++, and Java (programming language) 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 has only 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. COBOL allows adding a value or variable into another variable in the form ADD YEARS TO AGE. The values of the two variables are added together and the result placed into the variable after TO, if no GIVING is present. So the succinct form would be "ADD 1 TO COBOL". This is verbose when compared to "++" the increment operator in several programming languages, but much more English-like.
Another suggested name is "POSTINCREMENT COBOL BY 1", which not only reflects the verbose nature of COBOL statements, but also highlights the tendency for COBOL features to require their own dedicated
reserved word (standard COBOL employs over 400 reserved words), this example being the case for a hypothetical new POSTINCREMENT operator.
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 (programming language), and support for execution within framework environments such as Microsoft's .NET Framework and Java (programming language) (including COBOL instantiated as
EJBs). However, no vendor has yet produced a completely conforming compiler.
See also
Other third-generation programming languages
Other
- Comparison of programming languages
- Burroughs B2000
References
Sources
- Ebbinkhuijsen, Wim B.C., COBOL Alphen aan den Rijn/Diegem: Samson Bedrijfsinformatie bv, 1990. ISBN 90-14-04560-3. (Dutch)
External links
- COBOL-Standard Committee
- COBOL Tutorial
- COBOL Virtual Machine
- IBM COBOL including Mainframe (zOS)
- OpenCOBOL: Open-source COBOL compiler
- Wildcat Cobol - Open-source .NET compiler
- Description from another wiki
- Cobol User's Group has an extensive collection of links
- Article " Cobol: Not Dead Yet" by Robert Mitchell
- Article " Cobol Coders: Going, Going, Gone?" by Gary Anthes
COBOL Portal
resource site for Cobol developers. Cobol related news, programming tips, resources and everything Cobol.
COBOL jobs- web services technology jobs - dotnet - cobol technology ...
Everything you need to know about COBOL technology can be found at Cobolportal.com. Offering white papers on the integration of COBOL legacy applications with contemporary ... ...
COBOL - Wikipedia, the free encyclopedia
COBOL (pronounced /ˈkoʊbɒl/) is one of the oldest programming languages still in active use. Its name is an acronym for CO mmon B usiness-O riented L anguage, defining its ...
COmmon Business Oriented Language from FOLDOC
COBOL ==> COmmon Business Oriented Language < language, business > /koh'bol/ (COBOL) A programming language for simple computations on large amounts of data, designed by the ...
Basic COBOL from FOLDOC
Basic COBOL < language > A subset of COBOL from COBOL-60 standards. [Sammet 1969, p. 339]. (1997-12-07) Try this search on Wikipedia, OneLook, Google
COBOL Sample Program
IDENTIFICATION DIVISION. PROGRAM-ID. SAMPLE. * ***** * The following is a sample program which ...
Tony Marston's Page on COBOL stuff
This is part of Tony Marston's web site which deals with COBOL stuff ... 13th Nov 2004: Articles - added Project Development Standards. 17th Jan 2004: Articles - added Menu and ...
COBOL Resartus | The Register
Related Whitepapers. Gartner Paper: US Data Centers - The Calm Before the Storm How to handle future energy demands; Gartner Report: How IT Management Can "Green" the Data Center ...
COBOL IDE
COBOL IDE Welcome to the Eclipse COBOL IDE Project. The COBOL IDE Project - The COBOL IDE for Eclipse Subproject will build a fully functional COBOL Integrated Development ...
COBOL Standards
COBOL services and solutions from Micro Focus, the industry standard for COBOL, integrating COBOL technology with contemporary system architectures such as Web Services, .NET ...