Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
316 views

MIS Programming Languages COBOL FORTRAN

This paper is about programming Languages ; It focuses specifically on the Two old HLL; FORTRAN and COBOL

Uploaded by

Olarotimi Ajani
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
316 views

MIS Programming Languages COBOL FORTRAN

This paper is about programming Languages ; It focuses specifically on the Two old HLL; FORTRAN and COBOL

Uploaded by

Olarotimi Ajani
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 30

REDEEMER UNIVERSITY EDE, OSUN STATE, NIGERIA

COLLEGE OF MANAGEMENT SCIENCE


DEPARTMENT OF ECONOMICS AND BUSINESS STUDIES
COURSE CODE/TITLE: MSM 805/MANAGEMENT
INFORMATION SYSTEM
TERM PAPER TITLE:
COURSE LECTURER: Dr. FADARE T.O.

STUDENTS/MATRIC NUMBERS:

1. AJANI OLAROTIMI A./ RUN/MGT/15/6215


2. SALIU P.O/ RUN/MGT/15/6220
3. IRINYEMI B.A./ RUN/MGT/15/6218

2
COMPUTER PROGRAMMING LANGUAGES: COBOL AND FORTRAN LANGUAGES IN
MODERN DAY COMPUTING
Abstract
The efficiency, effectiveness, accuracy and quality of information system of an organization
depends in the modern day, largely, among other factors, on the robustness of the Information
Communication Technology (ICT) infrastructure deployed by such organization. The major
components of the ICT infrastructure are made up of computers. It is very important that the unit
of an organisation charged with administration of its MIS, pays attention to one of the major
ICT infrastructure deployed; i.e. computers, its components, especially the programs the
computers runs.
Computer Definitions:
1.

Computer is a general purpose machine, commonly consisting of digital circuitry, that


accepts (inputs), stores, manipulates, and generates (outputs) data as numbers,
text, graphics, voice, video files, or electrical signals, in accordance
with instructions called a program.1

2.

an electronic device which is capable of receiving information (data) in a particular form

and of performing a sequence of operations in accordance with a predetermined but


variable set of procedural instructions (program) to produce a result in the form of
information or signals. 2 (Google.com)
From the above definitions of computer, program is a very vital component of computer that is
common to the two definitions.
Therefore, this paper will focus on computer program, its definitions, the programming
languages and especially the two old computer programming languages; COBOL and
FORTRAN.

Computer Program and Programming

3
Definitions
A computer program is a collection of instructions that performs a specific task
when executed by a computer. A computer requires programs to function, and typically executes
the program's instructions in a central processing unit. 3
Another definition of a computer program is a series of commands that are executed by the
computer. These programs are written in binary, i.e. a series of 0s and 1s; which is the only code
the computer can read and process. We require therefore, a programming language to be able to
write commands that the computer can execute, but in a legible manner, i.e. commands that are
understood by humans. These programs are then translated into machine code (in binary) by a
compiler.
A computer program is usually written by a computer programmer in a programming
language. From the program in its human-readable form of source code,
a compiler can derive machine codea form consisting of instructions that the
computer can directly execute. Alternatively, a computer program may be executed with
the aid of an interpreter.
A part of a computer program that performs a well-defined task is known as
an algorithm.
The following terms of computer programs are hereby defined for further understanding:
Algorithm
This is a part of a computer program that performs a well-defined task.
Software
This is a collection of computer programs, libraries and related data. Computer
programs may be categorized along functional lines, such as application
software or system software.
Source Code
Source code is any collection of computer instructions (possibly with comments) written
using some readable computer, usually as text. The source code of a program is specially
designed to facilitate the work of computer programmers, who specify the actions to be
performed by a computer mostly by writing source code. The source code is often
transformed by a compiler program into low-level machine code understood by the

4
computer. The machine code might then be stored for execution at a later time.
Alternatively, an interpreter can be used to analyze and perform the outcomes of the
source code program directly on the fly.
Compiler
A compiler is a computer program (or a set of programs) that transforms source
code written in a programming language (the source language) into another computer
language (the target language), with the latter often having a binary form known
as object code.[1] The most common reason for converting source code is to create
an executable program.
The name "compiler" is primarily used for programs that translate source code from
a high-level programming language to a lower level language (e.g., assembly
language or machine code). If the compiled program can run on a computer
whose CPU or operating system is different from the one on which the compiler runs,
the compiler is known as a cross-compiler. More generally, compilers are a specific type
of translator.
Machine Code
Machine code or machine language is a set of instructions executed directly by
a computer's central processing unit (CPU). Each instruction performs a very specific task, such as a
load, a jump, or an ALU operation on a unit of data in a CPU register or memory. Every program
directly executed by a CPU is made up of a series of such instructions.

Interpreter

An interpreter is a computer program that directly executes instructions written in


a programming or scripting language, without previously compiling them into
a machine language program. An interpreter generally uses one of the following
strategies for program execution:
1. parse the source code and perform its behavior directly.
2. translate source code into some efficient intermediate representation and
immediately execute this.

3. explicitly execute stored precompiled code made by a compiler which is part of


the interpreter system.
Application Software
This is also referred to as application program (app or application for short). It is a computer
program designed to perform a group of coordinated functions, tasks, or activities for the benefit of
the user. Examples of an application include a word processor, a spreadsheet, an accounting
application, a web browser, a media player, an aeronautical flight simulator, a console game or
a photo editor. The collective noun application software refers to all applications collectively.
System Software
This is a computer software designed to provide services to other software. Examples of system
software include operating systems (e.g. Microsoft Windows, Mac OS X, Linux, Android, Apple iOS)

computational software, game engines, industrial automation, and software as service applications.
Computer Programming Languages
Definitions
A programming language is a notation designed to connect instructions to a machine or a
computer. Programming languages are mainly used to control the performance of a machine or to
express algorithms 4.
A programming language is a formal constructed language designed to communicate instructions to a
machine, particularly a computer. Programming languages can be used to create programs to control the
behavior of a machine or to express algorithms.
A "programming language" is a language designed to describe a set of consecutive actions to be executed by a
computer. A programming language is therefore a practical way for us (humans) to give instructions to a
computer. 5
Description of a programming language is usually split into the two components of syntax (form) and
semantics (meaning). Some languages are defined by a specification document (for example, the C
programming language is specified by an ISO Standard), while other languages (such as Perl) have
a dominant implementation that is treated as a reference. Some languages have both, with the basic
language defined by a standard and extensions taken from the dominant implementation being
common.

6
Thousands of different programming languages have been created, mainly in the computer field, and
many more are still being created every year. Many programming languages require computation to
be specified in an imperative form (i.e., as a sequence of operations to perform), while other
languages use other forms of program specification such as the declarative form (i.e. the desired
result is specified, not how to achieve it).

Usage of A Computer Programming Language


i.

to write computer programs, which involve a computer performing some kind of


computation or algorithm

ii.

to control external devices such as printers, disk drives, robots and so on. For
example, PostScript programs are frequently created by another program to control
a computer printer or display.

iii.

to describe computation on some, possibly abstract, machine. It is generally


accepted that a complete specification for a programming language includes a
description, possibly idealized, of a machine or processor for that language. In most
practical contexts, a programming language involves a computer; consequently,
programming languages are usually defined and studied this way.

iv.

Programming languages differ from natural languages in that natural languages are
only used for interaction between people, while programming languages also allow
humans to communicate instructions to machines.

Early Developments in Programming Language


i.

First-Generation Programming Languages (1GL): The earliest computers were often


programmed without the help of a programming language, by writing programs in
absolute machine language. The programs, in decimal or binary form, were read in
from punched cards or magnetic tape, or toggled in on switches on the front panel of the
computer.

ii.

Second-Generation Programming Languages (2GL): This is also referred to as assembly


languages. These were closely tied to the instruction set architecture of the specific
computer. These served to make the program much more human-readable, and relieved the
programmer of tedious and error-prone address calculations.

iii.

High-Level Programming Languages(3GL): These are also referred to as third-generation


programming languages (3GL). The first high-level programming languages were written in
1950s. Unlike machine code, Short Code statements represented mathematical expressions
in understandable form. However, the program had to be translated into machine code every
time it ran, making the process much slower than running the equivalent machine code.

7
3GL History:

Plankalkl, developed for the German Z3 by Konrad Zuse between 1943 and
1945. However, it was not implemented until 1998 and 2000.

John Mauchly's Short Code, proposed in 1949, it was one of the first high-level
languages ever developed for an electronic computer. Unlike machine code,
Short Code statements represented mathematical expressions in understandable
form.

In the early 1950s, At the University of Manchester, Alick


Glennie developed Autocode. The programming language used a compiler to
automatically convert the language into machine code. The first code and
compiler was developed in 1952 for the Mark computer at the University of
Manchester and is considered to be the first compiled high-level programming
language

R. A. Brooker in 1954, developed the second autocode for the Mark 1 and was
called the "Mark 1 Autocode". Brooker also developed an autocode for
the Ferranti Mercury in the 1950s in conjunction with the University of
Manchester.

D. F. Hartley of University of Cambridge Mathematical Laboratory in 1961


developed autocode for the EDSAC 2 and named EDSAC 2 Autocode.

In 1954, John Backus at IBM; invented FORTRAN language. It was the first
widely used high level general purpose programming language to have a
functional implementation, as opposed to just a design on paper. It is still popular
language for high-performance computing and is used for programs that
benchmark and rank the world's fastest supercomputers.

Grace Hopper developed FLOW-MATIC for the UNIVAC I at Remington


Rand during the period from 1955 until 1959. Hopper found that business data
processing customers were uncomfortable with mathematical notation, and in
early 1955, she and her team wrote a specification for an English programming
language and implemented a prototype. The FLOW-MATIC compiler became
publicly available in early 1958 and was substantially complete in 1959.FlowMatic was a major influence in the design of COBOL, since only it and its direct
descendant AIMACO were in actual use at the time.

8
Classifications of Programming Languages

Types of Programming Languages 6


Computer programming languages can be mainly classified into:

Low-Level Languages: A language that corresponds directly to a specific machine

High-Level Languages: Any language that is independent of the machine

Other Classifications
Classifications are also done by their types, purpose and functions. Find below the list:
Array language

Declarative languages

Assembly languages

Embeddable languages

Authoring languages

In source code

Constraint programming

Server side

Command line interface

Client side

languages

In object code

Impure

Hardware description
languages
-

HDLs for analog


circuit design

HDLs for digital

Compiled languages

Educational languages

Concurrent languages

Esoteric languages

Imperative languages

Curly-bracket languages

Extension languages

Interactive mode languages

Dataflow languages

Fourth-generation

Interpreted languages

Data-oriented languages

languages

Iterative languages

Data-structured languages

Functional languages

List-based languages

Decision table languages

Pure

circuit design

LISPs

9
Little languages

Numerical analysis

Reflective languages

Logic-based languages

Non-English-based

Rule-based languages

Machine languages

languages

Scripting languages

Macro languages

Object-oriented class-

Stack-based languages

Textual substitution macro

based languages

Synchronous languages

languages

Multiple dispatch

Syntax handling languages

Application macro

Single dispatch

Transformation languages

languages

Object-oriented prototype-

Visual languages

Metaprogramming

based languages

Wirth languages

languages

Off-side rule languages

XML-based language

Multiparadigm languages

Procedural languages

Here is another list of programming languages, types and their application area, this list is not
exhaustive:
Language

Main application area

Compiled/interpreted

ADA

Real-time

Compiled language

BASIC

Programming for educational purposes

Interpreted language

System programming

Compiled language

C++

System object programming

Compiled language

Cobol

Management

Compiled language

Fortran

Calculations

Compiled language

Java

Internet oriented programming

Intermediary language

MATLAB

Mathematical calculations

Interpreted language

Mathematica

Mathematical calculations

Interpreted language

LISP

Artificial intelligence

Intermediary language

Pascal

Education

Compiled language

PHP

Dynamic website development

Interpreted language

10
Prolog

Artificial intelligence

Interpreted language

Perl

Processing character strings

Interpreted language

COBOL and FORTRAN; the two earliest high level programming languages will
be looked at in details.

Cobol Programming Language


COBOL is an acronym that stands for Common Business-Oriented Language.
COBOL is a compiled English-like computer programming language designed for business use.
It is imperative, procedural and, since 2002, object-oriented.
COBOL is designed for developing business, typically file-oriented, applications. It is not
designed for writing systems programs. For instance, you would not develop an operating system
or a compiler using COBOL.
History of COBOL
In the late 1950s, computer users and manufacturers were becoming concerned about the rising
cost of programming. A 1959 survey had found that in any data processing installation, the
programming cost US$800,000 on average and that translating programs to run on new hardware
would cost $600,000. At a time when new programming languages were proliferating at an ever
increasing rate, the same survey suggested that if a common business-oriented language were
used, conversion would be far cheaper and faster 8
Several initiatives came up to develop business oriented programming languages that will useful
in various sectors and also can be developed further by programmers subsequently.
To this end, In April 1959, representatives from academia, computer users and manufacturers
met at the University of Pennsylvania to organize a formal meeting on common business
language. Other meetings were held in May 28 and 29, 1959 at the US pentagon to discuss the
creation of a common programming language for business. The meeting resulted in the creation
of a steering committee and short-, intermediate- and long-range committees.
Finally, on June 4, 1959, The steering committee met and agreed to name the entire activity as
the Committee on Data Systems Languages, or CODASYL, and to form an executive committee.

11
Dr. Grace Hopper, who invented FLOWMATIC (the English-like data processing language)
earlier in 1950, led the team that finally wrote the COBOL programming language that year.
Representatives among others, included, Jean Sammet and Saul Gorn.
The COBOL was partly based on FLOWMATIC programming language design work.
This committee completed the specifications for COBOL by the end of 1959 came. These were
then approved by the Executive Committee in January 1960, and sent to the government printing
office, which edited and printed these specifications as Cobol60. COBOL was developed within
a six-month period, and yet is still in use over 40 years later. After the earliest version; Cobol60
was developed, several other versions were developed and the latest, cobol2014 still in use.
FEATURES OF COBOL
The following are some of the characteristics of COBOL that contributed to its success 9:
1. COBOL is Self-Documenting
One of the design goals for COBOL was to make it possible for non-programmers
such as supervisors, managers and users, to read and understand COBOL code. COBOL
contains such English-like structural elements as verbs, clauses, sentences, sections and
divisions. However, this design goal was not realized, as users nowadays, do not read
COBOL programs due to their complexities. Despite this, the design goal and its effect on
COBOL syntax has had one important side-effect; it has made COBOL the most
readable, understandable and self-documenting programming language in use today. It
has also made it the most verbose.
2. COBOL is simple
COBOL is a simple language (no pointers, no user defined functions, no user
defined types) with a limited scope of function. It encourages a simple
straightforward programming style. Curiously enough though, despite its
limitations, COBOL has proven itself to be well suited to its targeted problem
domain (business computing).
3. COBOL is non-proprietary (portable)
Like the name suggests, COBOL was meant to be common or compatible among a significant
group of manufacturers, it is non-proprietary.
The COBOL standard does not belong to any particular vendor. In effect, no vendor claims the
ownership of the program because the ownership is open.
The vendor independent ANSI COBOL committee legislates formal, non-vendor-specific

12
syntax and semantic language standards. COBOL has been ported to virtually every
hardware platform - from every favour of Windows, to every falser of Unix, to AS/400,
VSE, OS/2, DOS, VMS, Unisys, DG, VM, and MVS.

4. COBOL is Maintainable
COBOL has a 30-year proven track record for application maintenance, enhancement and
production support at the enterprise level. Early indications from the year 2000 problem
are that COBOL applications were actually cheaper to fix than applications written in
more recent languages. [ Capers Jones] [Kappleman]10.
COBOL applications are also very long-lived. Because of the huge investment in building
COBOL applications of a million+ lines, these applications cannot be abandoned
whenever a new technology or programming language becomes popular. This is why
business applications between 10 and 30 years old are common. This is also why most of
the applications affected by the Y2K problem were in COBOL (12,000,000 COBOL
applications vs. 375,000 C and C++ applications in the US alone - Jones, Capers - The
global economic impact of the year 2000 software problem (Jan, 1997)
The reasons for the maintainability of COBOL are:

the readability of COBOL code as stated above.


another reason is COBOL's rigid hierarchical structure. In COBOL programs all
external references, relating to devices, files, command sequences, collating
sequences, the currency symbol and the decimal point symbol, are defined in the

Environment Division.
5. COBOL applications can be very large
The COBOL program applications are with typically more than 1,000,000 lines of code.
6. COBOL is designed for developing business
COBOL is designed typically, for file-oriented, applications, and is not designed for writing
systems programs.
Other Features:
7. No pointers
8. No user defined types
9. No user defined functions
10. Structure like data types

13
COBOL programs are hierarchical in structure. Each element of the hierarchy consists of one or
more subordinate elements. The levels of hierarchy are Divisions, Sections, Paragraphs,
Sentences and Statements. There are 4 main divisions and each division provides an essential
part of the information required by the complier. At the top of the COBOL hierarchy are the four
divisions. The sequence in which they are specified is fixed, and must follow the order:
- IDENTIFICATION DIVISION supplies information about the program
-

to the programmer and the compiler.


ENVIRONMENT DIVISION is used to describe the environment in

which the program will run.


DATA DIVISION provides descriptions of the data-items processed by

the program.
PROCEDURE DIVISION contains the code used to manipulate the data
described in the DATA DIVISION. It is here that the programmer

describes his algorithm.


Some COBOL compilers require that all the divisions be present in a program while others only
require the IDENTIFICATION DIVISION and the PROCEDURE DIVISION.

COBOL Program hierarchical structure diagram (Michael Coughlan, Introduction to COBOL,


http://www.csis.ul.ie/cobol/course/COBOLIntro.htm [25-April-2016])

COBOL Program Example

14
HelloWorld Example
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400 ENVIRONMENT DIVISION.
000500 CONFIGURATION SECTION.
000600 SOURCE-COMPUTER. RM-COBOL.
000700 OBJECT-COMPUTER. RM-COBOL.
000800
000900 DATA DIVISION.
001000 FILE SECTION.
001100
101200 PROCEDURE DIVISION.
101300
101400 MAIN-LOGIC SECTION.
101500 DISPLAY "Hello world!"
101600 STOP RUN.

Data Types in COBOL

COBOL is not a strongly typed language


In COBOL, there are only three data types:
- Numeric
- alphanumeric (text/string)
- alphabetic
Data types are declared using:
- A level number.
- A data-name or identifier.
- A Picture clause.

e.g. 01 GrossPay PIC 9(5) V99 VALUE ZEROS.

Basic Commands in COBOL


ADD a TO b.
ADD a TO b GIVING c.
SUBTRACT a FROM b.
SUBTRACT a FROM b GIVING c.
MULTIPLY a BY b.

15
MULTIPLY a BY b GIVING c.
DIVIDE a INTO b.
DIVIDE a INTO b GIVING c.
COMPUTE x = a + b * c.
MOVE a TO b c.
SORT sort-file
ON ASCENDING KEY k
USING inventory-file
GIVING sorted-inventory-file.
MERGE merge-work-file
ON ASCENDING KEY K
USING input-file1 input-file2
GIVING output-file.
DISPLAY total-cost.
ACCEPT identifier.
PERFORM paragraphname1 THROUGH paragraphname2
VARYING index FROM value1 BY value2
UNTIL condition.

A detailed example in COBOL


000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID.
SAMPLE.
000030 AUTHOR.
J.P.E. HODGSON.
000040 DATE-WRITTEN. 4 February 2000
000041
000042* A sample program just to show the form.
000043* The program copies its input to the output,
000044* and counts the number of records.
000045* At the end this number is printed.
000046
000050 ENVIRONMENT DIVISION.
000060 INPUT-OUTPUT SECTION.
000070 FILE-CONTROL.
000080 SELECT STUDENT-FILE ASSIGN TO SYSIN
000090 ORGANIZATION IS LINE SEQUENTIAL.
000100 SELECT PRINT-FILE
ASSIGN TO SYSOUT
000110 ORGANIZATION IS LINE SEQUENTIAL.
000120
000130 DATA DIVISION.
000140 FILE SECTION.
000150 FD STUDENT-FILE
000160 RECORD CONTAINS 43 CHARACTERS
000170 DATA RECORD IS STUDENT-IN.
000180 01 STUDENT-IN PIC X (43).
000190
000200 FD PRINT-FILE
000210 RECORD CONTAINS 80 CHARACTERS
000220 DATA RECORD IS PRINT-LINE.
000230 01 PRINT-LINE
PIC X (80).
000240

16
000250 WORKING-STORAGE SECTION.
000260 01 DATA-REMAINS-SWITCH PIC X(2) VALUE SPACES.
000261 01 RECORDS-WRITTEN
PIC 99.
000270
000280 01 DETAIL-LINE.
000290 05 FILLER
PIC X(7) VALUE SPACES.
000300 05 RECORD-IMAGE
PIC X(43).
000310 05 FILLER
PIC X(30) VALUE SPACES.
000311
000312 01 SUMMARY-LINE.
000313 05 FILLER
PIC X(7) VALUE SPACES.
000314 05 TOTAL-READ
PIC 99.
000315 05 FILLER
PIC X
VALUE SPACE.
000316 05 FILLER
PIC X(17)
000317 VALUE Records were read'.
000318 05 FILLER
PIC X(53) VALUE SPACES.
000319
000320 PROCEDURE DIVISION.
000321
000330 PREPARE-SENIOR-REPORT.
000340 OPEN INPUT STUDENT-FILE
000350 OUTPUT PRINT-FILE.
000351 MOVE ZERO TO RECORDS-WRITTEN.
000360 READ STUDENT-FILE
000370 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH
000380 END-READ.
000390 PERFORM PROCESS-RECORDS
000410 UNTIL DATA-REMAINS-SWITCH = 'NO'.
000411 PERFORM PRINT-SUMMARY.
000420 CLOSE STUDENT-FILE
000430 PRINT-FILE.
000440 STOP RUN.
000450
000460 PROCESS-RECORDS.
000470 MOVE STUDENT-IN TO RECORD-IMAGE.
000480 MOVE DETAIL-LINE TO PRINT-LINE.
000490 WRITE PRINT-LINE.
000500 ADD 1 TO RECORDS-WRITTEN.
000510 READ STUDENT-FILE
000520 AT END MOVE 'NO' TO DATA-REMAINS-SWITCH
000530 END-READ.
000540
000550 PRINT-SUMMARY.
000560 MOVE RECORDS-WRITTEN TO TOTAL-READ.
000570 MOVE SUMMARY-LINE TO PRINT-LINE.
000571 WRITE PRINT-LINE.
000572
000580

COBOL Programming Language Important Features


COBOL, as one of

the oldest programming languages in use, has some peculiarities which


programmers used to other languages may find irritating. Such peculiarities include:
-

One of the design goals was to make it as English-like as possible.


Therefore, COBOL uses structural concepts normally associated with

17
English prose such as section, paragraph and sentence. It also has an
extensive reserved word list with over 300 entries and the reserved
words themselves, tend to be long. COBOL programs tend to be verbose
especially when compared to languages like C.
-

When COBOL was designed, programs were written on coding forms


(see below), punched on to punch cards, and loaded into the computer
using a punch card reader. These media (coding forms and punch cards)
required adherence to a number formatting restrictions that some
COBOL implementations still enforce today, long after the need for
them has gone. Although modern COBOL (COBOL 85 and OOCOBOL) has introduced many of the constructs required to write wellstructured programs it also still retains elements which, if used, make it
difficult, and in some cases impossible, to write good programs.

Ancient COBOL Coding Form

COBOL Areas of Application


According to a 2009 survey commissioned by Micro Focus and conducted by Harris
Interactive11:
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
systems, telephone/cell calls, grocery stores, hospital systems, government systems, airline

18
systems, insurance systems, automotive systems, traffic signal systems. (See: Krill,
TechWorld; Gaffney, Reuters; and Industry Bits, SystemINetwork articles below).
90% of global financial transactions are processed in COBOL. (See: Industry Bits,
SystemINetwork article)
The language supports over 30 billion transactions per day. (See Gaffney, Reuters article)
The average American still interacts with a COBOL program 13 times a day. (See: Handy,
SD Times article)
There are 1.5-2 million developers, globally, working with COBOL code. (See: Industry
Bits, System Inetwork article)
There are around 200 billion lines of COBOL code in use. (See: Robinson, Federal
Computer Week article)
Around 5 billion lines of new COBOL code are added to live systems every year. (See:
System Inetwork article)
The investment made into COBOL systems over the past 50 years is said to be worth
about $2 trillion dollars. (Gartner Group; see Erickson, Dr Dobbs Code Talker article)

Despite many criticisms and its relative unpopularity, in the IT world today, it is still observed
that several industries still use COBOL on their computers. For instance, IBM estimates that
more than 200 billion lines of COBOL code are still being used across industries such as
banking, insurance and retail
Therefore, COBOL is still being used in the following industries and areas:
1. Banking Industry: Many Automated Teller Machines, Credit Card Systems, retail/POS
systems, banking, payroll systems etc. run on COBOL.
2. Retail Stores and General Commercial Businesses: retail/POS
systems, telephone/cell calls, grocery stores,
3. Hospitals: Many Hospital systems also run on COBOL
4. Airlines and Transportation: ticket purchasing, airline systems, transport
companies ticketing systems etc.

The FORTRAN Programming Language


FORTRAN, is an acronym that stands for FORmula TRANslation. It is one of the oldest highlevel programming languages. It is often referred to as a scientific language.

19
It is a general-purpose, imperative programming language that is especially suited to numeric
computation and scientific computing. Originally developed by IBM in the 1950s for scientific
and engineering applications, Fortran came to dominate this area of programming early on and
has been in continuous use for over half a century in computationally intensive areas such
as numerical weather prediction, finite element analysis, computational fluid
dynamics, computational physics and computational chemistry12
History
It was developed by a team of IBM engineer, led by John Backus in 1957. Other team members
consisted of programmers Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter
Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt, and David Sayre 13.
The earliest version of FORTRAN was released as a programming tool for the IBM 704.
It is a language specially developed to let the computer execute number crunching operations. It
was the first high level language, one in which the programmer did not have to directly deal with
assembler or machine code (0's and 1's). It was the first language to be widely used and it is the
oldest language still widely used today. It was designed to express scientific and mathematical
formulas and it is still used in that area.14

FORTRAN Versions

The following is the chronological list of versions of FORTRAN before the first official
FORTRAN II version unveiled in 1958 till date:
1. 1954-1957 - The first compiler was developed from scratch. In those days there were no
"high level languages" (=HLL) at all, most operating systems were simple and memory
was small, like 16 Kb. The first compiler ran on an IBM 704. This first HLL language
was much more efficient than programming in assembler and was popular pretty soon.
2. FORTRAN II was officially released in 1958. The main enhancement was to
support procedural programming by allowing user-written subroutines and functions

20
which returned values, with parameters passed by reference. The COMMON statement
provided a way for subroutines to access common (or global) variables. Six new
statements were introduced:

SUBROUTINE ,

FUNCTION ,

and END
CALL

and RETURN
COMMON
3. FORTRAN III was also developed in 1958, but was not released.
4. FORTRAN IV was developed in 1961. This version removed the machine-dependent
features of FORTRAN II (such as READ INPUT TAPE ), while adding new features
such as a LOGICAL data type, logical Boolean expressions and the logical IF
statement as an alternative to the arithmetic IF statement. FORTRAN IV was eventually
released in 1962, first for the IBM 7030 ("Stretch") computer, followed by versions for
the IBM 7090, IBM 7094, and later for the IBM 1401 in 1966. By 1962 an ASA
committee started developing a standard for the FORTRAN language. This made it
worthwhile for vendors to produce FORTRAN systems for every new compute
5. FORTRAN66 was released in 1967. FORTRAN 66 effectively became the first industrystandard version of FORTRAN. It became the first High Level Language (HLL)
standard in the world. The publication of the standard meant that FORTRAN became
more widely implemented than any other language. By the mid-1970s virtually every
computer, mini or mainframe, was supplied with a standard-conforming FORTRAN 66
language. The language knew an if-statement by using a goto-statement and using this,
spagethi-programs were quickly developed. To get much better and more reliable
programs, structured programming began to get popular in the 60-s/70-s. FORTRAN
didn't follow these new developments in time and lost momentum and so lost
popularity.15

21
6. FORTRAN77 was released in 1980. The new FORTRAN also officially denoted X3.91978, added a number of significant features to address many of the shortcomings of
FORTRAN 66:

Block IF and END IF statements, with optional ELSE and ELSE


IF clauses, to provide improved language support for structured

programming
DO loop extensions, including parameter expressions, negative

increments, and zero trip counts


OPEN , CLOSE , and INQUIRE statements for improved I/O capability
Direct-access file I/O
IMPLICIT statement, to override implicit conventions that undeclared
variables are INTEGER if their name begins with I, J, K, L, M, or N (and

REAL otherwise)
CHARACTER data type, replacing Hollerith strings with vastly expanded
facilities for character input and output and processing of character-based

data
PARAMETER statement for specifying constants

SAVE statement for persistent local variables

Generic names for intrinsic functions (e.g. SQRT also accepts arguments

of other types, such as COMPLEX or REAL*16 ).


A set of intrinsics ( LGE, LGT, LLE, LLT ) for lexical comparison of
strings, based upon the ASCII collating sequence.

7. FORTRAN90 was informally known as Fortran 90 (and prior to that, Fortran 8X). It was
officially released as ISO/IEC standard 1539:1991 in 1991 and an ANSI Standard in
1992. The official spelling was also changed from FORTRAN to Fortran. This major
revision added many new features to reflect the significant changes in programming
practice that had evolved since the 1978 standard; these include:
Free-form source input, also with lowercase Fortran keywords
Identifiers up to 31 characters in length (In the previous standard, it was

only 6 characters).
Inline comments

22

Ability to operate on arrays (or array sections) as a whole, thus greatly


simplifying math and engineering computations.
-

whole, partial and masked array assignment statements and array


expressions, such as X(1:N)=R(1:N)*COS(A(1:N))

WHERE statement for selective array assignment

array-valued constants and expressions,

user-defined array-valued functions and array constructors.

RECURSIVE procedures
Modules, to group related procedures and data together, and make them
available to other program units, including the capability to limit the

accessibility to only specific parts of the module.


A vastly improved argument-passing mechanism, allowing interfaces to be

checked at compile time


User-written interfaces for generic procedures
Operator overloading
Derived (structured) data types
New data type declaration syntax, to specify the data type and other

attributes of variables
Dynamic memory allocation by means of the ALLOCATABLE attribute

and the ALLOCATE and DEALLOCATE statements


POINTER attribute, pointer assignment, and NULLIFY statement to

facilitate the creation and manipulation of dynamic data structures


Structured looping constructs, with an END DO statement for loop
termination, and EXIT and CYCLE statements for terminating

normal DO loop iterations in an orderly way


SELECT . . . CASE construct for multi-way selection
Portable specification of numerical precision under the user's control
New and enhanced intrinsic procedures.

23
8. Fortran 95 was officially released as ISO/IEC 1539-1:1997 in 1997. Only minor
revision, mostly to resolve some outstanding issues from the Fortran 90 standard, was
carried out on this version. Fortran 95 also added a number of extensions, notably from
the High Performance Fortran specification:

FORALL and nested WHERE constructs to aid vectorization

User-defined PURE and ELEMENTAL procedures


Default initialization of derived type components, including pointer

initialization
Expanded the ability to use initialization expressions for data objects
Initialization of pointers to NULL ()
Clearly defined that ALLOCATABLE arrays are automatically
deallocated when they go out of scope.

9. Fortran 2003 was officially released as SO/IEC 1539-1:2004 in year 2004. This came
with a major revision introducing many new features. The new features include16:

Derived type enhancements: parameterized derived types, improved


control of accessibility, improved structure constructors, and finalizers

Object-oriented programming support: type extension and


inheritance, polymorphism, dynamic type allocation, and type-bound
procedures, providing complete support for abstract data types

Data manipulation enhancements: allocatable components (incorporating


TR 15581), deferred type parameters, VOLATILE attribute, explicit type
specification in array constructors and allocate statements, pointer
enhancements, extended initialization expressions, and enhanced intrinsic
procedures

Input/output enhancements: asynchronous transfer, stream access, user


specified transfer operations for derived types, user specified control of

24
rounding during format conversions, named constants for pre-connected
units, the FLUSH statement, regularization of keywords, and access to
error messages

Procedure pointers

Support for IEEE floating-point arithmetic and floating point exception


handling (incorporating TR 15580)

Interoperability with the C programming language

Support for international usage: access to ISO 10646 4-byte characters and
choice of decimal or comma in numeric formatted input/output

Enhanced integration with the host operating system: access to command


line arguments, environment variables, and processor error messages

10. Fortran 2008 was released as ISO/IEC 1539-1:2010 in 2010. Only minor revision
upgrade was carried out on this version incorporating clarifications and corrections to
Fortran 2003, as well as introducing a select few new capabilities. The new capabilities
include:

Submodules Additional structuring facilities for modules; supersedes

ISO/IEC TR 19767:2005
Coarray Fortran a parallel execution model
The DO CONCURRENT construct for loop iterations with no

interdependencies
The CONTIGUOUS attribute to specify storage layout restrictions
The BLOCK construct can contain declarations of objects with construct

scope
Recursive allocatable components as an alternative to recursive pointers
in derived types.

FORTRAN Programming Language Important Features

25

FORTRAN code on a punched card, showing the


specialized uses of columns 1-5, 6 and 73-80.

4.3 BSD for the Digital Equipment


Corporation (DEC) VAX, displaying the
manual for FORTRAN 77 (f77) compiler

The following are some of the significant features of the FORTRAN programming Language:
1.

Simple to learn - when FORTRAN was design one of the objectives was to write a
language that was easy to learn and understand.

2.

Machine Independent - allows for easy transportation of a program from one machine
to another.

3.

More natural ways to express mathematical functions - FORTRAN permits even


severely complex mathematical functions to be expressed similarly to regular algebraic
notation.

4.

Problem orientated language

5.

Remains close to and exploits the available hardware

6.

Efficient execution - there is only an approximate 20% decrease in efficiency as


compared to assembly/machine code.

7.

Ability to control storage allocation -programmers were able to easily control the
allocation of storage (although this is considered to be a dangerous practice today, it was
quite important some time ago due to limited memory.

8.

More freedom in code layout - unlike assembly/machine language, code does not need
to be laid out in rigidly defined columns, (though it still must remain within the
parameters of the FORTRAN source code form).

FORTRAN Areas of Application

26
FORTRAN is useful for in many areas of applications, some of the more important areas are as
follows:

Number crunching - due to the more natural (like it's true algebraic form) way of
expressing complex mathematical functions and it's quick execution time, FORTRAN is
easy and efficient at processing mathematical equations.

Scientific, mathematical, statistical, and engineering type procedures -due to its rapid
number-crunching ability FORTRAN is a good choice for these type of applications.

Petroleum Industry Oil companies, especially in the area of exploration and other
engineering works that demand complex calculations

Finance Industry aids complex calculations to analyse stock market and financial
market data

Other Industries and users Metrological office, Ministry of Defence, the Atomic
Weapons Establishment, the Aircraft and Automobile industries, engineering
consultancies, universities, research laboratories and other scientific institutions, all these
also use the FORTRAN 17

Basically FORTRAN is most useful for applications that are "computational-bound" rather
than "I/O bound".

Conclusions
Whereas COBOL was created to be a general purpose language that worked well for
creating applications for business and government purposes in which reports and
human-readable output were key, FORTRAN was all about manipulating numbers and
numeric data structures.

27
Its numeric capabilities meant that Fortran was the language of choice for the first
generation of high-performance computers and remained the primary development tool
for supercomputers: Platform-specific versions of the language power applications on
supercomputers from Burroughs, Cray, IBM, and other vendors.
While many scientific applications have begun to move to C++, Java, and other modern
languages because of the wide availability of both function libraries and programming
talent, Fortran remains an active part of the engineering and scientific software
development world. 19
Cobol and Fortran programming languages being the foremost high level programming
languages have been around for over 50 years ago and still relevant in the computer world. This
testifies to their robustness and importance.
Many supercomputers across the industries and organisations are still running these
programming languages on their computers despite the observed lack of interests among the
majority of new generations of programmer to learn the COBOL and Fortran. Also most
institutions across the world and their students are more willing to teach their students other
common popular programs like Java. NTE, C++ etc. than COBOL and Fortran.
These attitudes among the generation of programmers portend great dangers for the continuous
existence of the two foremost HLL.
We suggest that those organisations should intensify efforts to work with training organisations
and Institutions of higher learning to promote interests in and learning of the two foremost
Computer programming languages.

To avoid their extinction


To prevent huge financial loss (estimated in billions of US dollars) by the
organisations whose computers run these programs.

28
References
1. Businessdictionary.com,
http://www.businessdictionary.com/definition/computer.html#ixzz46q
QLaRAg, accessed on 25/04/2016
2. Google.com, https://www.google.com.ng/search?
q=what+is+computer%3F&rlz=1C1CHMO_enGBNG602NG602&oq=what+is+computer
%3F&aqs=chrome...69i57.7335j0j7&sourceid=chrome&ie=UTF-8#,
accessed on 25/04/2016
3. Silberschatz, Abraham (1994). Operating System Concepts, Fourth Edition.
Addison-Wesley. p. 58. ISBN 0-201-50480-4.
4. Edgefxkits International Website, What is the Programming Language and
Differences; http://rrefxkits.com/blog/types-of-programming-languages-withdifferences/, accessed on 25/04/2016.
5. CCM.net, Programming Languages, http://ccm.net/contents/315programming-languages, accessed on 25/04/2016
6. Edge FX Kits and Solutions International Blogsite, What is the
Programming Language and Differences,
http://efxkits.com/blog/types-of-programming-languages-withdifferences/, accessed on 25/04/2016
7. Wikipedia.org, List of programming languages by type,
https://en.m.wikipedia.org/wiki/List_of_programming_languages_by_t
ype accessed on 25/04/2016.
8. Beyer, Kurt (2009). Grace Hopper and the Invention of the Information
Age. MIT Press. ISBN 978-0262013109. LCCN 2008044229, p. 282.

29
9. Michael Coughlan, Introduction to COBOL,
http://www.csis.ul.ie/cobol/course/COBOLIntro.htm [25-April-2016]
10.
Jones, Capers - The global economic impact of the year 2000 software problem
(Jan, 1997) and Kappelman, Leon A. - Some Strategic Y2K Blessings (March/April
2000) - IEEE Software.
11.
Darryl K. Taft, COBOL: 10 Reasons the Old Language Is Still Kicking;24-062013, web link: http://www.eweek.com/developer/slideshows/cobol-10-reasons-the-oldlanguage-is-still-kicking, accessed on 05/05/2016)
12.
Wikipedia, Fortran, modified on 27 April 2016, at 00:42.,
https://en.wikipedia.org/wiki/Fortran, accessed on 02/05/2016
13.
Computer History Museum, Software Preservation Group, History
of FORTRAN and FORTRAN II, web link:
http://www.softwarepreservation.org/projects/FORTRAN/index.html#B
y_FORTRAN_project_members, accessed on 05/05/2016.
14.
The History of Computing Project, FORTRAN, 2014,
http://www.thocp.net/software/languages/fortran.htm, accessed on
05/05/16.
15.
The History of Computing Project, FORTRAN, 2014,
http://www.thocp.net/software/languages/fortran.htm, accessed on
05/05/16.
16.
John Reid, WG5, Convener, The New Features of Fortran 2003, web link:
ftp://ftp.nag.co.uk/sc22wg5/n1551-n1600/n1579.pdf, accessed on 05/05/2016.
17.
British Computer Society, Fortran Specialist Group, Application
Areas For Fortran programs, web link:
http://www.fortran.bcs.org/2005/fortran/img19.html, accessed on
05/05/2016
18.

Steve Lionel, Doctor Fortran in "One Door Closes"

19. Curtis Franklin Jr., Fortran: 7 Reasons Why Its Not Dead, web link:
http://www.informationweek.com/software/enterprise-applications/fortran-7-reasonswhy-its-not-dead/d/d-id/1321174, accessed on 05/05/2016

30

You might also like