| |
| |
The essence of COBOL programming | |
| |
| |
Introduction to COBOL programming | |
| |
| |
COBOL platforms, standards, and compilers | |
| |
| |
COBOL platforms | |
| |
| |
COBOL standards and mainframe compilers | |
| |
| |
An interactive COBOL program | |
| |
| |
An interactive session | |
| |
| |
The COBOL code | |
| |
| |
Basic coding rules | |
| |
| |
How to code the Identification Division | |
| |
| |
How to code the Environment Division | |
| |
| |
How to code the Working-Storage Section | |
| |
| |
How to create data names | |
| |
| |
How to code Picture clauses | |
| |
| |
How to code Value clauses | |
| |
| |
How to code group items | |
| |
| |
How to code the Procedure Division | |
| |
| |
How to create procedure names | |
| |
| |
How to code Accept statements | |
| |
| |
How to code Display statements | |
| |
| |
How to code Move statements | |
| |
| |
How to code Compute statements | |
| |
| |
How to code arithmetic expressions | |
| |
| |
How to code Add statements | |
| |
| |
How to code If statements | |
| |
| |
How to code Perform statements | |
| |
| |
How to code Perform Until statements | |
| |
| |
How to code the Stop Run statement | |
| |
| |
Another interactive COBOL program | |
| |
| |
An interactive session | |
| |
| |
The COBOL code | |
| |
| |
How to compile, test, and debug a COBOL program | |
| |
| |
Introduction to compiling and testing | |
| |
| |
How a COBOL program is compiled, link-edited, and executed | |
| |
| |
A basic procedure for developing COBOL programs | |
| |
| |
The basic skills for compiling and testing a program | |
| |
| |
How to enter and edit a source program | |
| |
| |
How to compile and run a program | |
| |
| |
How to review the diagnostic messages for compile-time errors | |
| |
| |
How to correct compile-time errors | |
| |
| |
How to review the message for a run-time error | |
| |
| |
How to correct a run-time error | |
| |
| |
How debugging tools can make debugging easier | |
| |
| |
How to use COBOL statements to get debugging information | |
| |
| |
How to write a program that prepares a report | |
| |
| |
A simple report-preparation program | |
| |
| |
The file specifications | |
| |
| |
The report specifications | |
| |
| |
The COBOL code | |
| |
| |
How to code Select statements and FD statements | |
| |
| |
How to code Select statements on a mainframe | |
| |
| |
How to code FD statements and record descriptions for disk files | |
| |
| |
How to code FD statements and record descriptions for print files | |
| |
| |
How to code the Procedure Division | |
| |
| |
How to code Open and Close statements | |
| |
| |
How to code Read statements for sequential disk files | |
| |
| |
How to code Write statements for print files | |
| |
| |
How to use the Current-Date function to get the current date and time | |
| |
| |
How to use Accept statements to get the current date and time | |
| |
| |
An enhanced version of the report-preparation program | |
| |
| |
The enhanced report specifications | |
| |
| |
The changes to the Data Division code | |
| |
| |
The changes to the Procedure Division code | |
| |
| |
How to test a report-preparation program | |
| |
| |
How to prepare a test plan and test data | |
| |
| |
Common run-time errors | |
| |
| |
How to design, code, and test a structured program | |
| |
| |
How to develop a structured program | |
| |
| |
A complete procedure for developing a structured program | |
| |
| |
The specifications for a summary report-preparation program | |
| |
| |
How to design a structured program | |
| |
| |
The terms for working with a structure chart | |
| |
| |
How to name the modules in a chart | |
| |
| |
How to design the first two levels of a chart | |
| |
| |
How to design the legs of a chart | |
| |
| |
How to add the Read and Write modules to a chart | |
| |
| |
How to number the modules in a chart | |
| |
| |
How to draw charts that won't fit on one page | |
| |
| |
Alternatives to the structure chart | |
| |
| |
When and how to use pseudocode | |
| |
| |
The basics of using pseudocode | |
| |
| |
How to use pseudocode for the critical modules of a program | |
| |
| |
How to code each module so it is independent | |
| |
| |
How to code and test a program from the top down | |
| |
| |
How to plan the coding and testing sequence | |
| |
| |
How to code the new modules for each phase of testing | |
| |
| |
How to code program stubs | |
| |
| |
The code for the summary report-preparation program | |
| |
| |
The Data Division code | |
| |
| |
The Procedure Division code | |
| |
| |
How COBOL programming compares to object-oriented programming | |
| |
| |
How to use the COBOL features for structured coding | |
| |
| |
Introduction to structured programming | |
| |
| |
The three valid structures | |
| |
| |
The principles of substitution and combination | |
| |
| |
From theory to practice | |
| |
| |
Shop standards for structured coding | |
| |
| |
How to code conditions | |
| |
| |
How to code relation, sign, and class tests | |
| |
| |
How to code compound conditions | |
| |
| |
How to code and use condition names | |
| |
| |
How to code selection and iteration structures | |
| |
| |
How to code If statements | |
| |
| |
How to code nested If statements | |
| |
| |
How to code Perform Until statements with tests before and after | |
| |
| |
When and how to code inline Perform statements | |
| |
| |
How to code Perform statements with Varying and Times clauses | |
| |
| |
How to use Evaluate statements | |
| |
| |
How to use an Evaluate statement instead of nested If statements | |
| |
| |
How to use Evaluate statements to implement case structures | |
| |
| |
The complete syntax of the Evaluate statement | |
| |
| |
Other features for improved coding | |
| |
| |
How to use Set to True statements | |
| |
| |
When and how to use structured delimiters | |
| |
| |
When and how to use Not clauses | |
| |
| |
A program that prepares a two-level summary report | |
| |
| |
The program specifications | |
| |
| |
The structure chart | |
| |
| |
The COBOL code for the primary control module | |
| |
| |
Three paragraphs written with a modern coding style | |
| |
| |
Other ways to define, move, and initialize fields | |
| |
| |
How to define fields in the Data Division | |
| |
| |
When to omit the word Filler | |
| |
| |
How to code literals and figurative constants | |
| |
| |
How to code Picture, Value, and Blank When Zero clauses | |
| |
| |
How to code Usage clauses | |
| |
| |
How to code Redefines clauses | |
| |
| |
How to use Move and Initalize statements | |
| |
| |
How to code Move statements | |
| |
| |
How to code Pictures for alphanumeric and numeric editing | |
| |
| |
How to code Initialize statements | |
| |
| |
Usages and data formats on an IBM mainframe | |
| |
| |
IBM mainframe extensions to the standard usages | |
| |
| |
Binary, hex, and EBCDIC notation | |
| |
| |
The primary formats for numeric data | |
| |
| |
An enhanced report-preparation program | |
| |
| |
The changes to the one-level summary report | |
| |
| |
The changes to the Working-Storage code | |
| |
| |
The changes to the Procedure Division code | |
| |
| |
Other COBOL essentials | |
| |
| |
How to use arithmetic statements and intrinsic functions | |
| |
| |
How to code arithmetic statements | |
| |
| |
How to code Compute statements | |
| |
| |
How to code arithmetic expressions | |
| |
| |
How to code Add and Subtract statements | |
| |
| |
How to code Multiply and Divide statements | |
| |
| |
How to use intrinsic functions | |
| |
| |
A summary of the six types of functions | |
| |
| |
How to code any function | |
| |
| |
How to use the mathematical functions | |
| |
| |
How to use the statistical functions | |
| |
| |
How to use the financial functions | |
| |
| |
How to work with dates | |
| |
| |
How to use Accept statements and the date functions | |
| |
| |
How to use Accept Date and Accept Time statements | |
| |
| |
How to use Accept Day and Accept Day-Of-Week statements | |
| |
| |
How to use the functions for working with dates | |
| |
| |
The Y2K problem and its solutions | |
| |
| |
The Y2K problem | |
| |
| |
The Y2K solutions: Date expansion and century windowing | |
| |
| |
How to use IBM's Millennium Language Extensions | |
| |
| |
How to define date fields with the Date Format clause | |
| |
| |
How to work with date fields in the Procedure Division | |
| |
| |
How to work with characters | |
| |
| |
How to use reference modification and functions | |
| |
| |
How to use reference modification | |
| |
| |
How to use the functions for working with characters | |
| |
| |
How to use the String and Unstring statements | |
| |
| |
How to use the String statement | |
| |
| |
How to use the Unstring statement | |
| |
| |
How to use the Inspect statement | |
| |
| |
With the Tallying clause | |
| |
| |
With the Replacing clause | |
| |
| |
With the Tallying and Replacing clauses | |
| |
| |
With the Converting clause | |
| |
| |
Two illustrative routines | |
| |
| |
An editing routine | |
| |
| |
A conversion routine | |
| |
| |
How to work with tables | |
| |
| |
How to use subscripts to work with one-level tables | |
| |
| |
How to define a one-level table that uses subscripts | |
| |
| |
How to initialize a table | |
| |
| |
How to define a table with constant values | |
| |
| |
How to refer to entries in a one-level table using subscripts | |
| |
| |
How to load a one-level table using subscripts | |
| |
| |
How to search a one-level table using subscripts | |
| |
| |
How to use subscripts to work with multi-level tables | |
| |
| |
How to define a multi-level table | |
| |
| |
How to refer to entries in a multi-level table using subscripts | |
| |
| |
How to load a two-level table using subscripts | |
| |
| |
How to search a two-level table using subscripts | |
| |
| |
How to use indexes to work with tables | |
| |
| |
How to define a table with an index | |
| |
| |
How to refer to table entries using an index | |
| |
| |
How to load a table using an index | |
| |
| |
How to code the Set statement | |
| |
| |
How to perform a sequential search | |
| |
| |
How to perform a binary search | |
| |
| |
How to search a two-level table using indexes | |
| |
| |
How to work with variable-length tables | |
| |
| |
How to define a variable-length table | |
| |
| |
How to load a variable-length table | |
| |
| |
How to search a variable-length table | |
| |
| |
Another technique for working with variable-length tables | |
| |
| |
Other features for working with tables | |
| |
| |
How to use the Perform Varying statement to vary more than one index or subscript | |
| |
| |
How to use intrinsic functions with tables | |
| |
| |
How to use copy members and subprograms | |
| |
| |
How to use copy members | |
| |
| |
How to use the Copy statement | |
| |
| |
Guidelines for using copy members | |
| |
| |
How to use subprograms | |
| |
| |
How to call a subprogram | |
| |
| |
How to write a subprogram | |
| |
| |
Another example of a calling program and subprogram | |
| |
| |
Guidelines for using subprograms | |
| |
| |
COBOL for working with files | |
| |
| |
Concepts and terms for working with disk files | |
| |
| |
Disk concepts and terms | |
| |
| |
How data is stored on a disk drive | |
| |
| |
How the data in a sector is read or written | |
| |
| |
Blocked versus unblocked records | |
| |
| |
Fixed-length versus variable-length records | |
| |
| |
File organization concepts | |
| |
| |
Sequential file organization | |
| |
| |
Indexed file organization | |
| |
| |
Indexed file organization with alternate indexes | |
| |
| |
Relative file organization | |
| |
| |
VSAM file organizations | |
| |
| |
Typical programs that work with disk files | |
| |
| |
Interactive programs | |
| |
| |
Batch programs | |
| |
| |
How to work with sequential files | |
| |
| |
COBOL for fixed-length records | |
| |
| |
How to code Select and FD statements | |
| |
| |
How to code Procedure Division statements | |
| |
| |
How to work with file status codes | |
| |
| |
A sequential update program | |
| |
| |
The program specifications | |
| |
| |
The test data and matching record logic | |
| |
| |
The structure chart | |
| |
| |
The COBOL code | |
| |
| |
A sequential maintenance program | |
| |
| |
The program specifications | |
| |
| |
The test data and matching record logic | |
| |
| |
The structure chart | |
| |
| |
The COBOL code | |
| |
| |
Special considerations for sequential update and maintenance programs | |
| |
| |
Error processing for I/O operations | |
| |
| |
Testing and debugging | |
| |
| |
Design alternatives | |
| |
| |
COBOL for variable-length records | |
| |
| |
How to code FD statements | |
| |
| |
How to write to a file that contains record types with different lengths | |
| |
| |
How to process a file that contains record types with different lengths | |
| |
| |
How to write records with a varying number of segments | |
| |
| |
How to process records with a varying number of segments | |
| |
| |
How to work with indexed files | |
| |
| |
COBOL for indexed files | |
| |
| |
How to code Select statements | |
| |
| |
File status codes | |
| |
| |
How to code the Open, Close, Read, Write, and Rewrite statements | |
| |
| |
How to code the Start statement | |
| |
| |
How to code the Delete statement | |
| |
| |
A sequential file creation program | |
| |
| |
The program specifications | |
| |
| |
The structure chart | |
| |
| |
The COBOL code | |
| |
| |
A random maintenance program | |
| |
| |
The program specifications | |
| |
| |
The structure chart | |
| |
| |
The COBOL code | |
| |
| |
How to work with alternate indexes | |
| |
| |
How to code Select statements | |
| |
| |
How to code Start and Read statements | |
| |
| |
How to process an alternate index sequentially | |
| |
| |
How to process an alternate index randomly | |
| |
| |
Other processing techniques | |
| |
| |
How to use dynamic processing | |
| |
| |
How to use skip-sequential processing | |
| |
| |
How to work with relative files | |
| |
| |
COBOL for relative files | |
| |
| |
How to code Select statements | |
| |
| |
How to code I/O statements | |
| |
| |
How to process relative files | |
| |
| |
Sequential processing | |
| |
| |
Random processing | |
| |
| |
How to use the sort/merge feature | |
| |
| |
Concepts for sorting and merging | |
| |
| |
Sorting concepts | |
| |
| |
Merging concepts | |
| |
| |
Why COBOL sorts and merges improve efficiency | |
| |
| |
COBOL for sorting | |
| |
| |
How to code Select and SD statements | |
| |
| |
How to code the Sort statement | |
| |
| |
How to code the Release statement | |
| |
| |
How to code the Return statement | |
| |
| |
An edit-sort-and-update program | |
| |
| |
The program specifications | |
| |
| |
The structure chart | |
| |
| |
The COBOL code | |
| |
| |
Efficiency considerations | |
| |
| |
COBOL for merging | |
| |
| |
How to code the Merge statement | |
| |
| |
How to use the Sort statement to merge files | |
| |
| |
How to merge files using JCL | |
| |
| |
Two more sort/merge considerations | |
| |
| |
IBM special registers | |
| |
| |
The FASTSRT compiler option | |
| |
| |
The IBM mainframe environment for COBOL | |
| |
| |
Introduction to IBM mainframes | |
| |
| |
IBM mainframe processors | |
| |
| |
The basic architecture of a processor | |
| |
| |
The history of the System 360/370 family of processors | |
| |
| |
Input/output devices for IBM mainframes | |
| |
| |
Terminal display devices | |
| |
| |
Direct access storage devices | |
| |
| |
Printer devices | |
| |
| |
Magnetic tape and optical disk devices | |
| |
| |
The basic features of a mainframe operating system | |
| |
| |
Virtual storage | |
| |
| |
Multiprogramming | |
| |
| |
Spooling | |
| |
| |
Batch processing | |
| |
| |
Time sharing | |
| |
| |
Operating systems for IBM mainframes | |
| |
| |
The OS family of operating systems | |
| |
| |
Other IBM mainframe operating systems | |
| |
| |
Features of the OS/390 and z/OS operating systems | |
| |
| |
OS/390 and z/OS subsystems and facilities | |
| |
| |
How to compile and test programs on an IBM mainframe | |
| |
| |
An introduction to program development on a mainframe | |
| |
| |
How a COBOL program is compiled, link-edited, and executed on a mainframe | |
| |
| |
A general procedure for developing a COBOL program on a mainframe | |
| |
| |
How to create a source program using ISPF | |
| |
| |
Basic skills for working with ISPF | |
| |
| |
How to create a partitioned data set | |
| |
| |
How to start an edit session | |
| |
| |
How to work in the edit data display | |
| |
| |
How to use line commands and primary commands | |
| |
| |
How to terminate an edit session | |
| |
| |
How to compile, link-edit, and execute a program | |
| |
| |
An introduction to jobs and Job Control Language | |
| |
| |
The cataloged procedures for COBOL program development | |
| |
| |
How to use the compile-link-and-go procedure | |
| |
| |
How to execute an existing program | |
| |
| |
How to create a sequential data set | |
| |
| |
How to use SDSF to work with jobs and job output | |
| |
| |
Basic skills for working with SDSF | |
| |
| |
How to work with jobs | |
| |
| |
How to use SDSF to work with jobs and job output (continued) | |
| |
| |
How to work with job output | |
| |
| |
How to display job output | |
| |
| |
How to handle compile-time and run-time error messages | |
| |
| |
How to handle compile-time error messages | |
| |
| |
How to handle run-time error messages | |
| |
| |
How to use Access Method Services to work with VSAM files | |
| |
| |
How VSAM manages data sets | |
| |
| |
The Integrated Catalog Facility (ICF) | |
| |
| |
Control intervals and control areas | |
| |
| |
Free space and record additions for a KSDS | |
| |
| |
How a record in a KSDS is randomly accessed by primary key | |
| |
| |
How alternate indexes work | |
| |
| |
Introduction to Access Method Services | |
| |
| |
Some commonly used AMS commands | |
| |
| |
The JCL requirements for using AMS commands | |
| |
| |
The syntax requirements for AMS commands | |
| |
| |
How to use the Define Cluster command to define a data set | |
| |
| |
Parameters that identify a data set | |
| |
| |
Parameters that describe the data set's characteristics | |
| |
| |
Parameters that allocate space to the data set | |
| |
| |
Other Define Cluster parameters | |
| |
| |
How to use the Listcat command to list catalog information | |
| |
| |
How to identify the entries you want to list | |
| |
| |
How to limit the amount of information that's listed for each entry | |
| |
| |
How to use AMS commands to print, copy, and delete data sets | |
| |
| |
How to use the Print command to print a data set | |
| |
| |
How to use the Repro command to copy a data set | |
| |
| |
How to use the Delete command to delete a data set | |
| |
| |
How to define and build an alternate index | |
| |
| |
How to use the Define Alternateindex command | |
| |
| |
How to use the Define Path command | |
| |
| |
How to use the Bldindex command | |
| |
| |
How to use CICS to develop interactive programs | |
| |
| |
Program development concepts and techniques | |
| |
| |
How application programs use CICS services | |
| |
| |
How pseudo-conversational programming works | |
| |
| |
How to develop CICS programs | |
| |
| |
The Execute Interface Block and the Dfhaid copy member | |
| |
| |
A CICS inquiry program | |
| |
| |
The program specifications | |
| |
| |
The BMS mapset | |
| |
| |
The symbolic map | |
| |
| |
The structure chart | |
| |
| |
The COBOL listing | |
| |
| |
Introduction to CICS web programming | |
| |
| |
The benefits of using CICS for web applications | |
| |
| |
How to connect to CICS through the Internet | |
| |
| |
Three techniques for accessing CICS programs | |
| |
| |
How the CICS Transaction Gateway works | |
| |
| |
How the 3270 Bridge exit works | |
| |
| |
How to use DB2 to develop database programs | |
| |
| |
DB2 and the relational database model | |
| |
| |
How a relational database is organized | |
| |
| |
How the tables in a relational database are related | |
| |
| |
How to use SQL to work with a DB2 database | |
| |
| |
Introduction to Structured Query Language | |
| |
| |
How to retrieve data from a single table | |
| |
| |
How to join data from two or more tables | |
| |
| |
How to create and work with result tables using embedded SQL | |
| |
| |
A DB2 inquiry program | |
| |
| |
The interactive screen | |
| |
| |
The DCLGEN output | |
| |
| |
The structure chart | |
| |
| |
The COBOL listing | |
| |
| |
How to develop a COBOL program that accesses DB2 data | |
| |
| |
How to become an effective maintenance programmer | |
| |
| |
Statements and features you should be aware of | |
| |
| |
Perform Thru and Go To statements | |
| |
| |
Go To Depending statements | |
| |
| |
Section names in the Procedure Division | |
| |
| |
Qualification and the Move, Add, and Subtract Corresponding statements | |
| |
| |
Declarative sections | |
| |
| |
The basic skills for maintaining programs | |
| |
| |
A structured procedure for maintaining a program | |
| |
| |
What to change and where to change it | |
| |
| |
How to document the changes in the source code | |