Slide 1
Slide 1 text
Multicore COBOL: three approaches
Richard A. O’Keefe
November 2012
Abstract
COBOL is a commercially important historic programming language.
This survey of ways to adapt it to a multicore world shows that support
for parallelism can be added below a language, in it, or above it, and
COBOL is a good example. It turns out that concurrent COBOL has
been a commercially successful reality for 43 years.
1 Introduction
COBOL[1] is a programming language for business applications, originally de-
vised in late 1959, and revised several times since.
C. A. R. Hoare wrote[9] that COBOL 68 was “a language suitable for sim-
ple applications in business data processing. It contains good data structuring
capability, but poor facilities for abstraction. It aimed at readability, but unfor-
tunately achieved only prolixity; it aimed to provide a complete programming
tool, in a way few languages have since.”
Since then, revisions of COBOL have added support for structured pro-
gramming (1985) and even object-oriented programming (2002), so the charge
of “poor facilities for abstraction” has long ceased to be fair. The prolixity of
COBOL has not, however, decreased.
There is a great deal of COBOL in the world, representing a huge investment
of time and money to produce it, which is still of enough value in what it does
that people want to continue using it. According to [10] (which should be read
for the sources to these claims):
According to a 2009 survey commissioned by Micro Focus and con-
ducted by Harris Interactive:
• 70–75% of the business and transaction systems around the
world run on COBOL. This includes credit card systems, ATMs,
ticket purchasing, retail/POS systems, banking, payroll sys-
tems, telephone/cell calls, grocery stores, hospital systems, gov-
ernment systems, airline systems, insurance systems, automo-
tive systems, traffic signal systems.
• 90% of global financial transactions are processed in COBOL.
1