2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community...

37
2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin- Stout (Emeritus) John Wiley & Sons, Inc. 11th edition

Transcript of 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community...

Page 1: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-1

COBOL for the 21st Century

Nancy Stern Hofstra University

Robert A. Stern Nassau Community College

James P. Ley University of Wisconsin-Stout (Emeritus)

John Wiley & Sons, Inc.11th edition

Page 2: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-2

The IDENTIFICATION and ENVIRONMENT DIVISIONs

Chapter 2

Page 3: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-3

Chapter Objectives

To familiarize you with

• Basic structure of a COBOL program

• General coding and format rules

• IDENTIFICATION and ENVIRONMENT DIVISION entries

Page 4: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-4

Chapter Contents

• Basic Structure of a COBOL Program

• Coding Requirements of IDENTIFICATION DIVISION

• Sections of ENVIRONMENT DIVISION

• Assigning Files to Devices in ENVIRONMENT DIVISION

Page 5: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-5

Humor

Page 6: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-6

Basic COBOL Program Structure

• Originally, each COBOL instruction coded on single line of 80 characters

• Positions on line reserved for special purposes

• Rules may differ for your compiler

• Rigid column rules dropped in 2008

Page 7: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-7

Coding Rules

• 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

Page 8: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-8

Coding Rules

Column 7

* (asterisk) designates entire line as comment

/ (slash) forces page break when printing source listing

- (dash) to indicate continuation of nonnumeric literal

Page 9: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-9

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

Page 10: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-10

Margin Rules

• 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 11: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-11

Review of Margin Rules

• Division and Section Names– Begin in Area A, end with a period– Must appear on a line with no other entries

• Paragraph-names– Begin in Area A, end with period followed

by space– May appear on line by themselves or with

other entries

Page 12: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-12

Review of Margin Rules

• Statements and Sentences– Begin in Area B– May appear on line by themselves or with

other entries– Statements (e.g., OPEN, WRITE) may end

with period but not recommended– Sentences (e.g., a paragraph made up of

one or more statements) end with period followed by space

Page 13: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-13

IDENTIFICATION DIVISION

• Provides identifying information about program

• Divided into paragraphs

• PROGRAM-ID only required paragraph

• Other paragraphs optional

Page 14: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-14

IDENTIFICATION DIVISION

Format

IDENTIFICATION DIVISION.

PROGRAM-ID. program-name.

[AUTHOR. [comment-entry] …]

[other optional paragraphs]

Page 15: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-15

Understanding Instruction Formats

• Instruction formats describe syntax of all parts of COBOL language

• Describe required and optional elements, ordering and punctuation

• All formats in text are correct although additional options may be available

Page 16: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-16

Rules for Instruction Formats• Uppercase words are COBOL reserved

words• Lowercase words are user-defined entries

IDENTIFICATION DIVISION.

PROGRAM-ID. program-name.

– DIVISION is reserved word– program-name is user-defined data-name

Example

Page 17: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-17

Rules for Instruction Formats

• Underlined words are required• Punctuation if specified is required

IDENTIFICATION DIVISION. PROGRAM-ID. program-name.

– IDENTIFICATION, DIVISION required– PROGRAM-ID is required paragraph– Periods required after division header, paragraph

name and program-name

Example

Page 18: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-18

Rules for Instruction Formats

• Brackets [ ] mean item is optional, braces { } mean one of enclosed items required

• Ellipses (. . .) mean entry may be repeated

IDENTIFICATION DIVISION.

PROGRAM-ID. program-name.

[AUTHOR. [comment-entry] …]

– AUTHOR paragraph optional– If included it may have any number of comment

entries

Example

Page 19: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-19

ENVIRONMENT DIVISION

• Describes files and computer devices used to process them

• Required by programs that process files

• This division is machine-dependent since devices differ from computer to computer

• Only division that may change if program run on different computer

Page 20: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-20

Sections of Environment Division

• CONFIGURATION SECTION– Describes computer used to

compile/execute program– Optional and recommended that you omit it

• INPUT-OUTPUT SECTION– Describes input and output files and

devices used by program– Required for all programs using files

Page 21: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-21

INPUT-OUTPUT SECTION

• Follows CONFIGURATION SECTION (if coded)

• Includes FILE-CONTROL paragraph– Contains one SELECT statement for each

file used by program– Each SELECT defines a file-name and

assigns device name to that file

Page 22: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-22

INPUT-OUTPUT SECTION

Format

INPUT-OUTPUT SECTION.FILE-CONTROL.

SELECT file-name-1 ASSIGN TO implementor-name-1 [ORGANIZATION IS LINE SEQUENTIAL].1

1Use this clause for all PC files so each line treated as separate record.

Page 23: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-23

SELECT Statement file-names

• Choose meaningful file-names– EMPLOYEE-FILE instead of E-FILE– EMP-REPORT-FILE instead or OUT-FILE

• File-names are user-defined words– Words chosen by programmer to represent

some element of program

• Must follow rules for forming user-define words

Page 24: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-24

Rules for User-Defined Words

1. 1 to 30 characters

2. Letters, digits, hyphens (-) only

3. No embedded blanks

4. At least one alphabetic character

5. May not begin or end with hyphen

6. May not be COBOL reserved word

Page 25: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-25

SELECT implementor-names

• Conventions for these names vary widely among computers

• Most enable use of special device names for frequently used devices

Printer SYSLST, SYS$OUT, PRINTER

Disk DISC or DISK and disk file-name

Page 26: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-26

SELECT implementor-names

• Special device-names exampleSelect Transaction-File Assign to Disk "Data1".Select Report-File Assign to Printer.

• Some systems use name of file stored on disk (VAX or Alpha systems)

Select Sales-File Assign to "Sales1".

Page 27: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-27

SELECT Statements for PCs

• For PCs, use device names specifying– Drive on which file appears followed by a

colon– Folder name if file is in a folder– Name of file

• PC exampleSelect Inventory-File

Assign To "C:\Inventory\Inv-File.dat".

Page 28: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-28

ORGANIZATION clause for PCs

• This clause describes organization of records in the file

• Most PC disk files created as text files – Following data for each record, Enter key

is pressed– Indicates end of the line and end of the

record– If records 80 characters or less, each

record appears on single line on screen or printer

Page 29: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-29

ORGANIZATION clause for PCs

• Include LINE SEQUENTIAL to– Correctly read records from files

when Enter key used to mark the end of each record

– Create disk files with each record followed by Enter key so each record appears on separate line when printed

Page 30: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-30

ORGANIZATION clause for PCs

PC Example

Select Sales-File

Assign to "C:\Chapter2\Sales.dat"

Organization is Line Sequential.

Page 31: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-31

Coding Guidelines

1. Separate divisions by blank comment line, page eject symbol or blank line

2. Code a single statement per line

3. Code paragraph-names on line by themselves

4. Be liberal in use of comments. Box lengthy comments using asterisks.

Page 32: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-32

Coding Guidelines

5. Code SELECT statements in logical order (input files first, then output files) although order not required

6. Use separate lines for SELECT, ASSIGN, ORGANIZATION clauses for readability

7. Avoid use of device-specific file-names

Page 33: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-33

COBOL 2008 Changes

• Coding rules for Margins A and B will be recommended not required.

• PROGRAM-ID will be only paragraph in IDENTIFICATION DIVISION. All others can be specified as comments.

• Length of user-defined words will be increased from 30 to 60 characters.

Page 34: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-34

Chapter Summary

• IDENTIFICATION DIVISION– Defines program name– Program name up to eight characters,

letters and digits only, acceptable on all computers

– PROGRAM-ID is only required paragraph, all others optional

– Use comments by coding an * in column 7

Page 35: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-35

Chapter Summary

• ENVIRONMENT DIVISION– Division is optional for COBOL 85– Not needed for fully interactive programs– INPUT-OUTPUT SECTION required for

any program using files– Only machine-dependent division since

device specification, file-name rules vary among computers

Page 36: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-36

Copyright © 2003 John Wiley & Sons, Inc. All rights reserved. Reproduction or translation of this work beyond that permitted in Section 117 of the 1976 United States Copyright Act without the express written permission of the copyright owner is unlawful. Request for further information should be addressed to the Permissions Department, John Wiley & Sons, Inc. The purchaser may make back-up copies for his/her own use only and not for distribution or resale. The Publisher assumes no responsibility for errors, omissions, or damages, caused by the use of these programs or from the use of the information contained herein.

Page 37: 2-1 COBOL for the 21 st Century Nancy Stern Hofstra University Robert A. Stern Nassau Community College James P. Ley University of Wisconsin-Stout (Emeritus)

2-37

The IDENTIFICATION and ENVIRONMENT DIVISIONs

Chapter 2