Sunteți pe pagina 1din 72

COBOL

(Common Business Oriented Language)


Introduction
History

 1959 – Conference on Data System


Languages (CODASYL) created
the first standardized business
computer programming language
 1960 – First proposal for COBOL –
named COBOL-60
History

 1961 – First COBOL compilers are


getting used
 1965 – The usage of COBOL starts to
increase a lot (COBOL edition
1965).
History

 1968 – The American National Standards


Institute (ANSI) sets the first
official COBOL: COBOL-68.
 1970 – The International Organization for
Standardization (ISO) makes
ANSI’s COBOL-68 an
international standard.
History

 1973 – Machine Independent COBOL


presented.
 1974 – ANSI published a revised version
of (ANSI) COBOL, COBOL-74.
 1985 – The new COBOL-85 standard is
set (ANSI X3.23-1985).
History

 1989 – Intrinsic functions are added to


the standard (ANSI X3.23a-
1989).
 1997 – Object-oriented features are
added to Structured COBOL.
History

 2002 – The long awaited object oriented


COBOL 2002 standard is set.
– Information on 2008 COBOL
standard at http://www.ansi.org
Features

 As a programming language
 Oriented towards business applications
 Supports Procedural Programming (from
COBOL-60)
 Supports Structured Programming (from
COBOL-68)
Features

 As a programming language
 Supports Machine Independent
Programming (from COBOL-73)
 Supports Object oriented programming
(from COBOL-2002)
Features

 As a high-level language
 English like
 Problem oriented
 Self-documenting
 Multi-platform support
 Easy to learn/read/write and maintain
Program Structure

PROGRAM

DIVISIONS

SECTIONS
PARAGRAPHS

ENTRY SENTENCES
CLAUSE STATEMENT
PHRASE
WORDS CHARACTERS
Character Set

 Digits (10) 0, 1-9


 Letters (26) A, B…Z
 Blank Space (01) b
 Symbols (12) +-*/,.()=$;“
 Conditional (02) <>

Total: 51 Characters in COBOL-74


Character Set

 Reference Modifier (01) :


Total: 52 Characters in COBOL-85
 Apostrophe (01) ‘
Total: 53 Characters in Mainframe
COBOL

Note: Mainframe COBOL also includes


small letters (a to z), for nonnumeric
literals.
Reserved Words

 Keywords
 The spelling of words are American
English and not British
 COBOL supports abbreviations in many
cases
User Defined Words

 Should not be a Reserved Word


 1 - 30 characters
 Letters, digits, hyphens (-) only
 At least one Letter or Hyphen
(Recommended to use the first
character as an alphabet)
User Defined Words

 Hyphen/s should be embedded.


 Spaces are not allowed.
 Must be unique within a set
Literals

 User defined constants


 Can be Numeric literal, Floating point
literal and Non-numeric literal

Note : A non-numeric literal can hold a


character which is not
available in COBOL character
set.
Literals

 Numeric Literals
 May consist of
numerals
decimal point (.)
 1 decimal character is allowed
 Should not be the rightmost character
plus or minus sign
 1 sign character (+ or -) is allowed
 Leftmost character
 Not enclosed in quotes
Literals

 Numeric Literals
Examples

123
123.45
-256
+2987
Literals

 Floating Point Literals


 Support a much wider range of values
than numeric literal
Example

In Mathematics In COBOL
12345000 1.2345*107 1.2345E07 or
+12.345E+06
Literals

 Non-Numeric Literals
 Enclosed in quotes (“)
 May consists of alphanumeric characters
 1 – 160 characters
 An embedded quotation mark must be
represented by a pair of quotation marks (“
“)
Literals

 Non-Numeric Literals
 The opening delimiter (“) cannot split
across lines.

Note: COBOL-74 compilers accept only


120 characters.
Figurative Constants

 Predefined constants, but reserved


words
 Except ZERO/ZEROES, others are
treated as Non-Numeric Literals
Figurative Constants

Examples

ZERO, ZEROS, ZEROES (0)


QUOTE, QUOTES (“)
SPACE, SPACES
ALL Represents 1 or more occurrences
of the string
*Not used in Mainframe
Figurative Constants

Examples

NULL, NULLS To indicate an invalid


address for a POINTER variable;
Has the value Zero in Mainframe
COBOL
Figurative Constants

Examples

HIGH-VALUE, HIGH-VALUES Highest


value in the collating sequence
Figurative Constants

Examples

LOW-VALUE, LOW-VALUES Lowest


ordinal position in the collating
sequence
Figurative Constants

NOTES:
The singular and plural forms of a figurative
constant can be used interchangeably.
Do not use QUOTE/QUOTES to enclose a
Non-numeric literal.
ZERO, ZEROS, ZEROES are considered as
Numeric Literals.
Special Registers

 Reserved words that name storage


areas generated by the compiler
Special Registers

Examples

RETURN-CODE Used to pass a return


code to the calling
program or to the JCL
when the current
COBOL program ends
Special Registers

Examples

WHEN-COMPILED Contains the date at the


start of the program
compilation
Operators

 Arithmetic Operators
 Relational Operators
 Logical Operators

Note: All COBOL operators must be preceded


and followed by a space.
Operators

 Arithmetic Operators
 Binary Operators
 Addition +
 Subtraction -
 Multiplication *
 Division /
 Exponentiation **
Operators

 Arithmetic Operators
 Unary Operators
 Positive + (Equals to Multiplication by +1)
 Negative - (Equals to Multiplication by +1)
Operators

 Relational Operators
 Less Than <
 Greater Than >
 Equal To =
 Less Than or Equal To <=
 Greater Than or Equal To >=

Note: Each relational operators can be combined with the


NOT logical operator
Operators

 Logical Operators
 Conjunction AND
 Inclusive OR
 Negation NOT
Separator String

 A word formed by 2 or more contiguous


characters
 1st character is a special character and the 2nd
character is a space.
Separator String

Examples
Separator comma ,b
Separator period .b
Separator Semicolon ;b

Note: b indicates a blank space.


Separator String Rules

 A COBOL statement may use Separator Period


or
Separator Comma or
Separator Semicolon.
Separator String Rules

 The following must end with a separator period:


 Sentence
 File (FD), sort/merge file (SD) and data description
entries in the data division
 Each paragraph in the Identification division
Separator String Rules

 The following must end with a separator period:


 SOURCE-COMPUTER, OBJECT-COMPUTER,
SPECIAL-NAMES and I-O-CONTROL paragraphs in the
Environment division
 Each file-control entry in the FILE-CONTROL paragraph
Separator String Rules

 The following must end with a separator period:


 All the 4 division headers
 All the section headers
Phrase & Clause

 Phrase – “meaningless” collection of COBOL words


 Clause – collection of words or phrases that itself has a meaning like
Statements
Phrase & Clause
 Phrase

AT END

Examples
UNTIL A > B
 Clause

OCCURS 5 TIMES
LABEL RECORDS ARE STANDARDS

Examples
Statement & Clause

 Statements – group of words and/or phrases


in PROCEDURE DIVISION
 Clause – group of words and/or
phrases in DATA, ENVIRONMENT &
IDENTIFICATION DIVISION
Sentence & Entry

 Sentence – collection of statements


 Entry – collection of clauses
Sentence & Entry

 Must be terminated by a Separator Period


 A COBOL Sentence can have only one
COBOL Statement
Paragraphs

 Subgroup of Sections
Paragraphs

 2 types:
 Predefined
 IDENTIFICATION DIVISION & ENVIRONMENT DIVISION have only predefines
paragraphs
 User defined
 PROCEDURE DIVISION allows to define user defined paragraphs
Paragraphs

 Paragraph header has the para-name followed by a separator


period.
 At least one paragraph should be specified in PROCEDURE
DIVISION, if it has any sentences.
Sections

 Subgroup of Divisions
Sections

 2 types:
 Predefined
 ENVIRONMENT DIVISION & DATA DIVISION have only predefines sections
 User defined
 PROCEDURE DIVISION allows to define user defined sections
Sections

 A section header has the:


 Section-name
 Followed by a space
 The word SECTION
 A separator period
Sections

 Optional, but must be specified in ENVIRONMENT DIVISION


and DATA DIVISION, if they have appropriate entries
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 1 – 6 : Sequence Number / Line


Number Area, Margin L is Column 1
: Originally designed for entering line
numbers on Punch Cards
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 1 – 6 : Used to label a source


statement like revision number
: Can consist of any characters
: Nothing to do inside the program
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Col 7 : Can have the ff:


* - designates entire line as comment
- - indicates continuation of nonnumeric literal
/ - forces page break when printing source listing
: Also known as Margin C
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Col 7 : A D or d indicates a debugging


line
: Should be left blank if this line is not a
comment/ debugging line/ page break or
a continuation.
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 8 – 72 : For COBOL program


statements
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 8 – 11 : Area A / Margin A is column


8
: The following items must begin in
Area A:
- Division headers
- Section headers
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 8 – 11 : The following items must


begin in Area A:
- Paragraph-names
- Level indicators FD & SD
- Level-numbers 01 and 77
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 8 – 11 : The following items must


begin in Area A:
- DECLARATIVES and END
DECLARATIVES
- End Program statement
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 12 – 72 : Area B / Margin B is column


12 and Margin R is column
72
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 12 – 72 : The following items must


begin in Area B:
- Entries & Sentences
- Statements & Clauses
- Continuation lines
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

Note :
 Anything that begins anywhere in Area A
or B is considered to be in Area A or B
respectively.
 Level Numbers other than 01 & 77 can
begin in Area A or Area B.
COBOL Coding Sheet

1–6 7 8 – 11 12 – 72
Sequence No. Indicator No. Area A Area B

 Cols 73 – 80 : Identification Field (used in


punch cards, but no more!)

Note : 80 columns can COBOL accepts and


only the first 72 columns are used by
the COBOL compiler.
Sample COBOL Program
---1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
---1----+----2----+----3----+----4----+----5----+----6----+----7----+----8
IDENTIFICATION DIVISION.
IDENTIFICATION DIVISION.
PROGRAM-ID. SequenceProgram.
PROGRAM-ID. SequenceProgram.
AUTHOR. Michael Coughlan.
AUTHOR.
*This Michael
prgram Coughlan.
lets the user to input 2 numbers to be multiplied and display
*This
*the prgram lets the user to input 2 numbers to be multiplied and display
product.
*the product.
DATA DIVISION.
DATA DIVISION. SECTION.
WORKING-STORAGE
WORKING-STORAGE
01 Num1 PIC 9 SECTION.
VALUE ZEROS.
01 Num2
01 Num1 PIC9 9 VALUE
PIC VALUEZEROS.
ZEROS.
01 Num2
01 Result PIC 9 VALUE ZEROS.
PIC 99 VALUE ZEROS.
01 Result PIC 99 VALUE ZEROS.
PROCEDURE DIVISION.
PROCEDURE DIVISION.
CalculateResult.
CalculateResult.
ACCEPT Num1.
ACCEPTNum2.
ACCEPT Num1.
ACCEPT Num2.
MULTIPLY Num1 BY Num2 GIVING Result.
MULTIPLY
DISPLAY Num1 BY
"Result is Num2
= ", GIVING Result.
Result.
DISPLAY
STOP RUN. "Result is = ", Result.
STOP RUN.
Reading the Syntax Diagrams
 Words in uppercase are reserved words.
 When underlined they must be present when the operation of which they are a part is used.
 When they are not underlined the used for readability only and are optional. If used they must be spelt correctly.
Reading the Syntax Diagrams
 Words in lower case represent names which will be devised by the programmer.
Reading the Syntax Diagrams
 When enclosed in braces { }
 A choice must be made from the options within the braces.
 When enclosed in square brackets [ ]
 Indicates that the material is an option
Reading the Syntax Diagrams
 The ellipsis symbol ‘...’ indicates that the preceding syntax element may be repeated at the programmer’s discretion.

S-ar putea să vă placă și