Session 1: What Is COBOL? History Features
Session 1: What Is COBOL? History Features
Session 1: What Is COBOL? History Features
What is COBOL?
History
Features
1
What is COBOL?
2
Advantages of Cobol
3
History of Cobol
COBOL – 68
COBOL – 74
COBOL – 85
COBOL – 2003 ( Enterprise COBOL )
4
Future of Cobol
5
Features Of COBOL
• English-like
• Self-Documenting
• Machine independent
6
COMPARISON OF IBM COBOL EXTENSIONS
FOR OOCOBOL,
COMPILERS C INTEROP.
INTRINSIC INTRINSIC
FUNCTIONS, FUNCTIONS,
SUPPORT FOR SUPPORT FOR
LANGUAGE LANGUAGE
ENVIRONMENT ENVIRONMENT
7
Application Development Cycle
- A Programmer/ Developer writes the code for each module. And tests each
module after development.
- A Tester prepares a plan for testing and also prepares a set of Test data to test
and ensure that the programs work as intended by the designer and customer
8
Business Analyst End User
System Analyst
Programmer Tester
9
Components of a COBOL program
• Divisions
• Sections
• Paragraphs
• Sentences
• Statements
• Words
• Characters
10
COBOL Coding Format
Columns
| | | | |
| | | | |
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |……………| 71 | 72 |
|---------- 1 ------| |------ ---|------------------------------ 4 ------------------|
3
a. * (Asterisk) – Comment
b. / (Slash) - Comment + page feed
c. - (Hyphen) - String Continuation
11
Source Coding Rules
Indicator Area
12
Source Coding Rules (contd.) it
Area A
Area B
Area B (Columns 12 – 72 )
14
• The IDENTIFICATION DIVISION is used to specify the name of program
and programmer.
• The ENVIRONMENT DIVISION is used to define the data sets that are used
by a program and links the data sets to the corresponding DD names of JCL
15
COBOL coding rules
16
Sample COBOL program
1 2 3 4 5 6 7
123456789012345678901234567890123456789012345678901234567890123456789012
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
AUTHOR. SRG.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NUM1 PIC 9 VALUE ZEROS.
77 NUM2 PIC 9 VALUE ZEROS.
77 RESULT PIC 99 VALUE ZEROS.
77 WS-NAME PIC X(10) VALUE ‘ARICH INFOTECHS’.
PROCEDURE DIVISION.
CALC-RTN1.
ACCEPT NUM1.
ACCEPT NUM2.
MULTIPLY NUM1 BY NUM2 GIVING RESULT.
DISPLAY "RESULT IS = ", RESULT.
STOP RUN.
17
Recap!!!!!!
18
Identification Division
- THE SMALLEST
- USED TO IDENTIFY THE PROGRAM AND AUTHOR
- NO SECTIONS
- CONTAINS ONLY PARAGRAPHS
IDENTIFICATION DIVISION
PROGRAM-ID. TEST123.
AUTHOR. TESM.
INSTALLATION. ARICH INFOTECH.
DATE-WRITTEN. 17-01-2010.
DATE-COMPILED. 18-01-2010.
- PROGRAM-ID is the only required Paragraph for this division.
- Program name can be only 8 characters
- All other entries are optional and for documentation purposes only
19
ENVIRONMENT DIVISION
• This follows the identification division.
• This is the most hardware dependent division.
• The computer and other device requirements are described in this
section.
• It has two sections.
ENVIRONMENT DIVISION.
CONFIGURATION SECTION.
SOURCE-COMPUTER. S390. (where the program is compiled)
OBJECT-COMPUTER. DEC ALPHA. (where the program is executed)
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT employee-master ASSIGN TO DD1
organization is sequential.
I-O-CONTROL.
SPECIAL-NAMES.
CURRENCY SIGN IS literal-1.
DECIMAL POINT IS COMMA.
20
DATA DIVISION
File Section.
Working-Storage Section.
21
DATA DIVISION
• FILE SECTION.
• WORKING-STORAGE SECTION.
• LINKAGE SECTION.
• LOCAL-STORAGE SECTION.
• REPORT SECTION
• SCREEN SECTION.
22
The DATA DIVISION has the following structure
DATA DIVISION.
FILE SECTION.
……….. FILE SECTION ENTRIES …………..
WORKING-STORAGE SECTION.
……TEMPORARY MEMEORY VARIABLES, GROUP AND
ELEMENTARY ITEMS..
EXAMPLE:
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE1.
AUTHOR. SRG.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 Num1 PIC 9 VALUE ZEROS.
01 Num2 PIC 9 VALUE ZEROS.
01 Result PIC 99 VALUE ZEROS.
23
VARIABLES
A data item starts with a level number followed by its name, PIC clause and
optionally VALUE and other clauses
24
DATA ITEMS / VARIABLES
25
DATA ITEMS / VARIABLES (Contd.)
26
Example Code
01 REC1.
05 ID-FIELD1 PIC XX.
05 AMOUNT PIC 9(5)V99.
05 DESCRIPTION PIC X(40).
01 PRINT-REC1.
05 ID-FIELD PIC XX VALUE SPACES.
05 AMOUNT PIC ZZ,ZZ9.99.
05 DESCRIPTION PIC X(40) VALUE SPACES.
PROCEDURE DIVISION.
……..
SET-PRINT.
MOVE CORRESPONDING REC1 TO PRINT-REC1.
27
COBOL Data Types
There are THREE basic data types in COBOL
Numeric, Alphabetic, Alphanumeric
28
Declare Variables in WS
Variables are declared with a level number, user defined name and PIC clause
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(15) VALUE “ARICH INFOTECH”.
29
Declare Variables in WS (contd.)
Though the initial values are called constants, the contents can be modified late
in the program.
The max size of X and A is 32000 chars without value clause and 180 with VALUE
clause.
The maximum for numeric data item max allowed is 18 digits but mainframe
COBOL allows up to 31 digits. You have to set the compiler option
PARM.COBOL=ARITH(EXTEND)
30
More examples
77 WS-CTR2 PIC 9(5) VALUE 123. ( STORED AS 00123 )
77 EMP-NAME PIC A(15) VALUE “ARICH INFOTECH ”.
01 EMP-ADDRESS PIC X(12) VALUE “45, I STREET”.
01 WS-GRP.
02 WS-EC PIC 9(3).
02 WS-EN PIC X(12).
02 WS-DOB.
03 WS-DD PIC 9(2).
03 WS-MM PIC 9(2).
03 WS-YY PIC 9(2).
01 WS-GRP.
05 WS-EC PIC 9(3).
05 WS-EN PIC X(12).
05 WS-DOB.
10 WS-DD PIC 9(2).
10 WS-MM PIC 9(2).
10 WS-YY PIC 9(2).
31
Figurative Constants
COBOL provides special types of constants called Figurative Constants.
They are:
• SPACE or SPACES
32
THE PROCEDURE DIVISION
• The PROCEDURE DIVISION is where all the data described in the DATA
DIVISION is processed .
33
EXAMPLE – PROCEDURE DIVISION STATEMENT
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10) VALUE ‘ARICH INFOTECH’.
PROCEDURE DIVISION.
DISPLAY “HELLO” WS-NAME.
STOP RUN.
34
You have to use multiple display statements to show the contents on
separate lines
35
Procedure to compile and execute a COBOL program
36
CREATE A JCL NAMED RUNJCL AS FOLLOWS IN ARICH03.COBOL.PDS
AND SUBMIT
NOTE: //GO.SYSIN DD * is to be used for giving the input when we use IGYWCLG
37
ACCEPT
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-NAME PIC X(10).
77 WS-NUM PIC 9(5).
PROCEDURE DIVISION.
ACCEPT WS-NAME.
DISPLAY WS-NAME.
ACCEPT WS-NUM.
DISPLAY WS-NUM.
STOP RUN.
38
EXAMPLE: 1
IDENTIFICATION DIVISION.
PROGRAM-ID. EX1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 NAME PIC X(15).
01 AGE PIC 9(2).
PROCEDURE DIVISION.
PARA-1.
ACCEPT NAME.
ACCEPT AGE.
DISPLAY “HELLO " NAME.
DISPLAY “YOUR AGE IS " AGE.
STOP RUN.
39
ACCEPT variable
FROM {DATE/TIME/DAY/DAY-OF-WEEK } [ YYYYMMDD ].
40
ACCEPT can be used to capture system registers like DATE, TIME etc.
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-DATE PIC 9(8).
PROCEDURE DIVISION.
ACCEPT WS-DATE
FROM DATE YYYYMMDD.
DISPLAY WS-DATE.
STOP RUN.
41
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-TIME PIC 9(8) VALUE 0.
PROCEDURE DIVISION.
ACCEPT WS-TIME FROM TIME.
DISPLAY WS-TIME.
STOP RUN.
42
IDENTIFICATION DIVISION.
PROGRAM-ID. PRG1.
DATA DIVISION.
WORKING-STORAGE SECTION.
77 WS-DAY PIC 9(6) VALUE 0.
PROCEDURE DIVISION.
ACCEPT WS-DAY FROM DAY YYYYDDD.
DISPLAY WS-DAY.
ACCEPT WS-DWK FROM DAY-OF-WEEK
DISPLAY WS-DWK.
STOP RUN.
43
What is the purpose of using the Environment
Division?
What are the different section available in Data
Division.
What is the purpose of a Display statement?
When do you use an ACCEPT keyword?
List out atleast five different Reserved words
that you have come across so far.
44