Chapter 1

52
COBOL (COMMON BUSINESS ORIENTED LANGUAGE) By: Manjula Sanjay Asst. prof, Dept. of MCA

description

Introduction to basic concepts of COBOL

Transcript of Chapter 1

Page 1: Chapter 1

COBOL

(COMMON BUSINESS ORIENTED LANGUAGE)

By: Manjula Sanjay Asst. prof, Dept. of MCA

Page 2: Chapter 1

Objective

COBOL is one of the most widespread commercial applications languages in use today. The course is aimed at developers to get the basic knowledge of COBOL program development. This course covers all aspects of Programming with COBOL.

The course teaches the design, writing and testing of COBOL programs.

Having studied this subject, the students should be able:

Develop Structured COBOL Programs

Understand and Use COBOL Verbs

Develop COBOL programs using the available verbs

Develop and Test COBOL print programs

Develop and Test COBOL programs accessing different types of files

Page 3: Chapter 1

Text Books

Text Book

Nancy Stern and Robert A Stern, 11th edition, Structured COBOL Programming, John Wiley & Sons, 1998.

Reference Book

M.K.Roy and D. Ghosh Dastidar, COBOL Programming, Tata McGraw Hill, 2001, COBOL—85,2nd Edition.

Page 4: Chapter 1

Introduction

Types of computer programs

Operating system programs

Application programs / Software

Types of Processing

Interactive – A point-of-Sale system

Batch processing – Payroll System (Large volume of input at periodic intervals)

COBOL support both type of processing

Customized Application Package: Budget, Scheduling etc.

Machine language programs

Symbolic programs : translates to machine language by compiler

Page 5: Chapter 1

Program Development Process

Determine the program specification

Design the program using program planning tools

Code the program

Compile the program

Test the program

Document the program

Compile the programSource program

in symbolic language

Object program in machine language

Translated by compiler

Page 6: Chapter 1

Test the program

Debug during compile & test phase

Compile time errors: Syntax error e.g. ADD | AD Misspelled reserved words Missing punctuation

Execution errors: Logic error e.g. ADD instead of Multiply

Run-Time error: Occurs if computer cannot execute the instruction.

E.g.- Attempt to divide by zero Reading from a file that cannot be found.

Page 7: Chapter 1

Contents

History of COBOL

Features & Language Fundamentals

Program Structure

Coding Format for COBOL Programs

Character Set, Words, Data Names, Literals.

Page 8: Chapter 1

Nature of COBOL

popular Business-oriented language

Standard language

English-like language: Standard & business oriented

Relatively easy to understand- User friendly

Reference: http://www.ansi.org

Page 9: Chapter 1

History of COBOL

1959 – United States Department of Defense

1960 - COBOL initial specifications presented by CODASYL (COnference on Data SYstems Languages)

1961 – COBOL 61

1964 – BASIC COBOL extended to Visual COBOL

1968 – ANSI (American National Standards Institute) developed

American National Standard (ANS) COBOL

1974 – ANSI published revised version of (ANS) COBOL

– Business applications needed to manipulate character as well as numeric data

– String operations added

1985 – COBOL 85 Standards was introduced with revised version of COBOL-74.

Page 10: Chapter 1

COBOL

What does COBOL stand for?

COmmon Business Oriented Language.

Which are target area of COBOL applications?

Defense, Aircraft, Insurance, Finance, Retail etc.

(file & data oriented applications involved)

So we can say that COBOL is basically used for writing business applications and not for developing system software

Page 11: Chapter 1

Future of COBOL

COBOL is likely to remain an important language in the years ahead

According to Datapro Information Services Group about 150 billion lines of COBOL source code in use

5 billion new lines added each year

Cobol is used by 42.7% of application programmers in medium to large U.S. companies

$200 million revenues for 2001

Page 12: Chapter 1

Year 2000 Problem (Y2K)

Year stored as two digits in older programs to save space

19 assumed as valid prefix for all years

95 represented year 1995

Invalid as prefix for years 2000 and beyond

00 could mean 1900 or 2000

Page 13: Chapter 1

Year 2000 Problem (Y2K)

Many calculations with dates incorrect starting in 2000

To find your age if you were born in 1970

Subtract 70 from 95 (95 - 70 = 25)

Calculation incorrect for year 2000 and beyond

00 - 70 = -70 when age should be 30

Page 14: Chapter 1

Year 2000 Problem (Y2K)

To correct problem

Billions of lines of code, many written in COBOL needed to be examined

Code changed to use four digits for year

Age, other calculations now correct

1995 - 1970 = 25

2000 - 1970 = 30

2012 – 1988 = 24

Page 15: Chapter 1

Improving Program Design

Two techniques used to develop programs that are easier to understand, test, debug and modify

Structured Programming

Top-Down Programming

Page 16: Chapter 1

Structured Programming

Eliminates use of GO TO statements

Allowed skipping to different sections of program without returning to starting point

Program logic easier to follow with "GO-TO-less" programming

Page 17: Chapter 1

Structured Programming

Program divided into paragraphs

Structured programming follows logical control constructs that make program easier to read, modify, and debug.

Main paragraph or module controls logic flow using PERFORM statements

Main module "performs" other modules when instructions in that module required

Each module can be written and tested independently of others

Page 18: Chapter 1

Top-Down Programming

Another technique to make programs easier to understand, test, debug and modify

Develop program like term paper

Develop outline first

Add details for each of main steps

Add further refinement for more complex steps

Page 19: Chapter 1

Top-Down Programming

For COBOL program

Code main modules or routines first

Code intermediate modules next

Details deferred to minor modules and coded last

Page 20: Chapter 1

COBOL – Program Structure

Principal portions of a program. There are 4 divisions –a) Identification (Required)b) Environment (Optional)c) Data (Optional)d) Procedure (Required)

User defined chunk of code which consists of one/more paragraphs.

e.g. a) U000-CHECK-LOG SECTION.

b) FILE SECTION.

User defined chunk of code which consists of one/more sentences.

e.g. a) P000-PRINT-FINAL-TOTALS.

b) PROGRAM-ID.A SENTENCE consists of one or

more statements and is terminated by a full stop.

e.g. a) MOVE .21 TO VAT-RATE

b) COMPUTE VAT-AMOUNT =

PRODUCT-COST * VAT-RATE.

PROGRAM

DIVISIONS

SECTIONS

PARAGRAPHS

SENTENCES

STATEMENTS

A STATEMENT consists of a COBOL verb and an operand or operands.

e.g. SUBTRACT T-TAX FROM GROSS-

PAY GIVING NET-PAYCHARACTERS

RESERVED WORDS

USER DEFINED WORDS

Page 21: Chapter 1

Example

IDENTIFICATION DIVISION.

PROGRAM-ID. Multiplier.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 Num1 PIC 9 VALUE ZEROS.

01 Num2 PIC 9 VALUE ZEROS.

01 Result PIC 99 VALUE ZEROS.

PROCEDURE DIVISION.

DISPLAY "Enter first number (1 digit) : " .

ACCEPT Num1.

DISPLAY "Enter second number (1 digit) : “.

ACCEPT Num2.

MULTIPLY Num1 BY Num2 GIVING Result.

DISPLAY "Result is = ", Result.

STOP RUN.

Page 22: Chapter 1

1. DIVISIONS

A DIVISION is the largest unit in the COBOL program and is a collection of SECTIONs and/or paragraphs. Every COBOL program is divided into four DIVISIONS.

IDENTIFICATION DIVISION Identifies the program to the computer. It also provide

documentation about the program

ENVIRONMENT DIVISION Define file-names and describe computer equipment used by

the program

DATA DIVISION Describe input and output format used by the program. Also

define constants and work areas necessary for processing the data

PROCEDURE DIVISION Instructions for reading input, processing and creating output

Page 23: Chapter 1

2. SECTIONS

A SECTION is a collection of related paragraphs.

The IDENTIFICATION DIVISION doesn’t contain any SECTIONs, the ENVIRONMENT AND DATA DIVISIONs have pre-defined SECTIONs that you may or may not include, depending on the requirement and the PROCEDURE DIVISION may contain only user defined SECTIONs.

A user defined SECTION is indicated by a user-defined word followed by the reserved word SECTION.

It is used mainly to divide the executable program into units that can be loaded and executed independently.

Thus, a program larger than the memory size can be accommodated in memory.

Page 24: Chapter 1

3. PARAGRAPHS & 4. SENTENCES

3)

A paragraph is a collection of sentences that form a logical unit in a COBOL program.

It is the basic unit of organisation of a COBOL program and is referred by a user-defined name in the program.

4)

A sentence is a sequence of one or more statements, ending with a period.

Page 25: Chapter 1

5. STATEMENTS

A statement is a valid combination of a COBOL verb and its operands.

It specifies an action to be taken by the object program.

The COBOL statements can be broadly classified into two types - Imperative statements

An imperative statement begins with a verb and specifies an unconditional action to be taken.

Conditional statements. A conditional statement is one in which the action

to be taken is determined by some condition that is evaluated when the program is executed.

Page 26: Chapter 1

6. RESERVED WORDS

A reserved word is a character-string with a predefined meaning in a COBOL source program.

There are several types of reserved words in COBOL. Keywords:- appear in uppercase.

Eg ADD, READ etc Optional Words:- They improve readability.

Eg GIVING, AFTER etc Figurative constants:- Refer to constant

values. Eg ZEROES, SPACES etc

Page 27: Chapter 1

7. USER DEFINED WORDS

They are constructed and used by the application programmer.

They are normally used to define paragraph names, SECTION names, file names, temporary variables, etc.,

The following are the rules for forming user-defined words. Length may be up to 30 characters. Only letters, digits and hyphen (-) are allowed. Embedded blanks are not allowed. At least one character must be alphabetic. Cannot be COBOL reserved words. May not begin or end with hyphen.

Page 28: Chapter 1

8. CHARACTERS

The most basic and indivisible unit of the COBOL language is the character.

The COBOL character set includes 78 characters that can be classified as letters of the alphabet, digits and special Characters.

Page 29: Chapter 1

COBOL coding sheet

Column numbers

1 2 3 4 5 6 7 8 9 10 11 12 13 14

. . . . . . . 72 80

Column numbers

* Area A Area B I

D

E

N

T

I

F

I

C

A

T

I

O

N

A

R

E

A

-

/

Page 30: Chapter 1

COBOL coding rules

Each line is considered to be made up of 80 columns.

Columns 1 to 6 are reserved for sequence numbers.1 to 3 ---Page Number. 4 to 6 ---Line Number

Column 7 is an indicator column and has specialmeaning to the compiler.

Hyphen ( - ) indicates continuation. Slash ( / ) indicates comment line , forces page

break when printing source listing.

Asterisk ( * ) indicates comment line, no such page ejection.

Columns 8 to 11 are called Area A. All COBOL DIVISIONs, SECTIONs, paragraphs and some special entries must begin in Area A.

Columns 12 to 72 are called Area B. All COBOL statements must begin in Area B.

Page 31: Chapter 1

COBOL coding sheet

Almost all COBOL compilers treat a line of COBOL code as if it contained two distinct areas. These are -

AREA A

*) Between Column 8 to 11*) Division, Section, Paragraph names, FD entries & 01 level entries must start in Area A

AREA B

*) Between Column 12 to 72*) All Sentences & Statements start in Area B

Page 32: Chapter 1

coding rules

Columns 73 to 80 are identification area. Anything written in this area , will be ignored by the compiler but will appear in the source listing.

Columns 1-6 and 73-80 optional and rarely used today

Column 7 for continuation, comment, starting new page

Columns 8-72 for COBOL program statements

Column 7

/ (slash) forces page break when printing source listing

* (asterisk) designates entire line as comment

- (dash) to indicate continuation of nonnumeric literal

Page 33: Chapter 1

Margin Rules

Columns 8-72 divided into two areas

Area A - columns 8, 9, 10, 11

Area B - columns 12-72

Division, section and paragraph-names must all begin in Area A

First letter of name must begin in column 8, 9, 10 or 11

Entry may extend into Area B

All other statements, clauses, and sentences begin anywhere in Area B (column 12, 13, 14, etc.)

Select entries in ENVIRONMENT DIVISION

Data description entries in DATA DIVISION

All PROCEDURE DIVISION instructions

Page 34: Chapter 1
Page 35: Chapter 1
Page 36: Chapter 1

COBOL CHARACTER SET

Overview

Page 37: Chapter 1

Character Meaning

Space

+ Plus sign

- Minus sign or hyphen

* Asterisk

/ Forward slash or solidus

= Equal sign

$ or £ Currency sign

, Comma

; Semicolon

. Decimal point or period

" Quotation mark

( Left parenthesis

) Right parenthesis

> Greater than

< Less than

A-Z (26) Alphabet (uppercase)

a-z Alphabet (lowercase)

0-9 (10) Numeric characters

Page 38: Chapter 1

COBOL Words

0-9 , A-Z and - Hyphen

The total no of character must not be greater than 30.

One of the character must be a letter.

A word cannot begin with Hyphen.

A word must not contain a blank or special character except Hyfen (-)

A Cobol word can be User defined or reserve word

Valid words Invalid WordsGROSS-PAY -Gross-OVERTIME-HOURS OVERTIME HOURA 1-2-3B12-4 More than 30 characters

Page 39: Chapter 1

Data names and Identifiers

Data names are named memory locations.

Data Names must be described in the DATA DIVISION before they can be used in the PROCEDURE DIVISION.

Can be of elementary or group type.

Can be subscripted for Arrays.

Are user defined words.

Ingle data name or a data name qualified, indexed or subscripted is normally referred to by the general term identifier.

Valid data names: A12 sum-natural net-pay

Invalid: DATA ADD 45 46+2A

Page 40: Chapter 1

Rules for forming User-defined words/Data names

Can be at most 30 characters in length.

At least one alphabetic character.

Only alphabets, digits and hyphen are allowed.

Blanks are not allowed.

May not begin or end with a hyphen.

Should not be a COBOL reserved word like ADD,SUBTRACT,MOVE,DISPLAY etc….

Page 41: Chapter 1

Data-Name Guidelines

1. Use meaningful data-names that describe contents of field

2. Use prefixes or suffixes in data-names when appropriate

• -IN and -OUT for fields (Emp-Salary-IN and Emp-Salary-OUT)

• -FILE and -RECORD for file and record names

• Emp-File or Emp-Record

• Amount-Due-In instead of A1

Page 42: Chapter 1

Identify the valid data-names

• Identify the valid data-names

1. Date-Of-Birth

2. Amount$Out

3. -First-Name

4. 98-6

5. Time out

6. ADD

Page 43: Chapter 1

Literals

Literals are symbols whose value does not change in a program.

A data name may have different values at different points of time whereas a literal means the specific value which remains unchanged throughout the execution of the program. For this reason a literal is often called a constant.

Example--- MOVE 0 to sum. (Here 0 is literal)

There are 3 types of literals namely

(1) Numeric literals.

(2) Non-numeric literals.

(3) Figurative constants.

Page 44: Chapter 1

Rules for Numeric Literals

1. A numeric literal can be formed with the help of digits only.

2. The maximum number of digits allowed in a numeric literal varies from compiler to compiler. can have a maximum of 18 digits.

3. + or - sign may be included to left of first digit.

4. Decimal point permitted within literal. May not follow last digit.

Valid numeric literals

23 , +2359.4 , .125 , -68734

Page 45: Chapter 1

Rules for Nonnumeric Literals

• Composed of characters which are enclosed within quotation marks.

• Generally used for output messages or headings.

• Any character in COBOL character set except quotation mark.

• The maximum number of characters that are allowed is compiler dependent. ANSI 74: 120 characters.

Valid Nonnumeric Literals

“123 Main St.” “$14.99” “12,342” “Enter a value from 1 to 10”

Page 46: Chapter 1

Figurative Constants

These are literals representing values that may be frequently used by most programs.

These are given some fixed names and when the compiler recognizes these names it sets up the corresponding values in the object program.

Example--- MOVE ZERO TO sum. MOVE SPACES TO REPORT-REC.

The following is the list of figurative constants and their meanings.

Page 47: Chapter 1

Figurative constants Meaning

ZERO(S) or ZEROES Represents the value 0, one ormore depending on the context

SPACE(S) Represents one or more spaces

HIGH-VALUE(S) Represents the highest value

LOW-VALUE(S) Represents the lowest value

QUOTE(S) Represents single or double quotes

ALL ALL literalliteral Fill With Literal

Literals – Figurative Constants

Page 48: Chapter 1

Figurative Constants - Examples

01 GrossPay PIC 9(5)V99 VALUE 13.5.

MOVE TO GrossPay.

01 GrossPay PIC 9(5)V99 VALUE 13.5.

MOVE TO GrossPay.ZEROZEROSZEROES

01 StudentName PIC X(10) VALUE "MIKE".

MOVE ALL "-" TO StudentName.

01 StudentName PIC X(10) VALUE "MIKE".

MOVE ALL "-" TO StudentName.

StudentName

M I K E M I K E

GrossPay

0 0 0 1 3 5 0

Page 49: Chapter 1

Figurative Constants - Examples

01 GrossPay PIC 9(5)V99 VALUE 13.5.

MOVE TO GrossPay.

01 GrossPay PIC 9(5)V99 VALUE 13.5.

MOVE TO GrossPay.ZEROZEROSZEROES

01 StudentName PIC X(10) VALUE "MIKE".

MOVE ALL "-" TO StudentName.

01 StudentName PIC X(10) VALUE "MIKE".

MOVE ALL "-" TO StudentName.

StudentName

- - - - - - - - - -- - - - - - - - - -

GrossPay

0 0 0 0 0 0 0

Page 50: Chapter 1

Continuation of Lines

A statement or an entry may be continued to the area B of the next line as and when necessary.

A hyphen(-) is used in the indicator field for continuation of lines.

Actually, a hyphen in the indicator field means that the first non-blank character in the area B of the current line is the character immediately following the last non-blank character of the previous line.

Example—In case of non numeric literal

Indicator lineArea A Area B

Continued line “Enter the

Continuation Line - “Number”.

Page 51: Chapter 1

Is Cobol still used ?

75% of all business data is processed in COBOL.

There are between 180 billion and 200 billion lines of COBOL code in use worldwide.

15% of all new applications (5 billion lines) through 2009 will be in COBOL.

Page 52: Chapter 1

Thank You