Murach's Mainframe COBOL

by ; ;
  • ISBN13:


  • ISBN10:


  • Format: Paperback
  • Copyright: 2004-08-31
  • Publisher: Mike Murach & Associates Inc

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
  • We Buy This Book Back!
    In-Store Credit: $10.50
    Check/Direct Deposit: $10.00
List Price: $59.51 Save up to $23.80
  • Rent Book $35.71
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


This has been the number 1 best-selling COBOL book for professional programmers since its first edition in 1979. It is the only book that shows how to design, code, test, and maintain structured COBOL programs on the IBM mainframes (or enterprise systems) that are used by the largest companies in the world. Besides COBOL, this book presents the IBM products that every mainframe programmer needs to know including TSO, ISPF, OS/390 JCL, VSAM Access Method Services, CICS, and DB2.

Table of Contents

The essence of COBOL programming
Introduction to COBOL programming
COBOL platforms, standards, and compilersp. 4
COBOL platformsp. 4
COBOL standards and mainframe compilersp. 6
An interactive COBOL programp. 8
An interactive sessionp. 8
The COBOL codep. 10
Basic coding rulesp. 12
How to code the Identification Divisionp. 14
How to code the Environment Divisionp. 14
How to code the Working-Storage Sectionp. 16
How to create data namesp. 16
How to code Picture clausesp. 18
How to code Value clausesp. 20
How to code group itemsp. 22
How to code the Procedure Divisionp. 24
How to create procedure namesp. 24
How to code Accept statementsp. 26
How to code Display statementsp. 28
How to code Move statementsp. 30
How to code Compute statementsp. 32
How to code arithmetic expressionsp. 34
How to code Add statementsp. 36
How to code If statementsp. 38
How to code Perform statementsp. 40
How to code Perform Until statementsp. 40
How to code the Stop Run statementp. 40
Another interactive COBOL programp. 42
An interactive sessionp. 42
The COBOL codep. 44
How to compile, test, and debug a COBOL program
Introduction to compiling and testingp. 48
How a COBOL program is compiled, link-edited, and executedp. 48
A basic procedure for developing COBOL programsp. 50
The basic skills for compiling and testing a programp. 52
How to enter and edit a source programp. 52
How to compile and run a programp. 54
How to review the diagnostic messages for compile-time errorsp. 56
How to correct compile-time errorsp. 58
How to review the message for a run-time errorp. 60
How to correct a run-time errorp. 62
How debugging tools can make debugging easierp. 64
How to use COBOL statements to get debugging informationp. 66
How to write a program that prepares a report
A simple report-preparation programp. 70
The file specificationsp. 70
The report specificationsp. 72
The COBOL codep. 74
How to code Select statements and FD statementsp. 82
How to code Select statements on a mainframep. 82
How to code FD statements and record descriptions for disk filesp. 84
How to code FD statements and record descriptions for print filesp. 84
How to code the Procedure Divisionp. 86
How to code Open and Close statementsp. 86
How to code Read statements for sequential disk filesp. 88
How to code Write statements for print filesp. 88
How to use the Current-Date function to get the current date and timep. 90
How to use Accept statements to get the current date and timep. 92
An enhanced version of the report-preparation programp. 94
The enhanced report specificationsp. 94
The changes to the Data Division codep. 96
The changes to the Procedure Division codep. 98
How to test a report-preparation programp. 100
How to prepare a test plan and test datap. 100
Common run-time errorsp. 102
How to design, code, and test a structured program
How to develop a structured programp. 106
A complete procedure for developing a structured programp. 106
The specifications for a summary report-preparation programp. 108
How to design a structured programp. 110
The terms for working with a structure chartp. 110
How to name the modules in a chartp. 110
How to design the first two levels of a chartp. 112
How to design the legs of a chartp. 114
How to add the Read and Write modules to a chartp. 116
How to number the modules in a chartp. 118
How to draw charts that won't fit on one pagep. 118
Alternatives to the structure chartp. 120
When and how to use pseudocodep. 122
The basics of using pseudocodep. 122
How to use pseudocode for the critical modules of a programp. 124
How to code each module so it is independentp. 126
How to code and test a program from the top downp. 128
How to plan the coding and testing sequencep. 128
How to code the new modules for each phase of testingp. 130
How to code program stubsp. 132
The code for the summary report-preparation programp. 134
The Data Division codep. 134
The Procedure Division codep. 136
How COBOL programming compares to object-oriented programmingp. 142
How to use the COBOL features for structured coding
Introduction to structured programmingp. 146
The three valid structuresp. 146
The principles of substitution and combinationp. 148
From theory to practicep. 148
Shop standards for structured codingp. 150
How to code conditionsp. 152
How to code relation, sign, and class testsp. 152
How to code compound conditionsp. 154
How to code and use condition namesp. 156
How to code selection and iteration structuresp. 158
How to code If statementsp. 158
How to code nested If statementsp. 160
How to code Perform Until statements with tests before and afterp. 162
When and how to code inline Perform statementsp. 164
How to code Perform statements with Varying and Times clausesp. 166
How to use Evaluate statementsp. 168
How to use an Evaluate statement instead of nested If statementsp. 168
How to use Evaluate statements to implement case structuresp. 170
The complete syntax of the Evaluate statementp. 172
Other features for improved codingp. 174
How to use Set to True statementsp. 174
When and how to use structured delimitersp. 176
When and how to use Not clausesp. 178
A program that prepares a two-level summary reportp. 180
The program specificationsp. 180
The structure chartp. 182
The COBOL code for the primary control modulep. 184
Three paragraphs written with a modern coding stylep. 186
Other ways to define, move, and initialize fields
How to define fields in the Data Divisionp. 190
When to omit the word Fillerp. 190
How to code literals and figurative constantsp. 192
How to code Picture, Value, and Blank When Zero clausesp. 194
How to code Usage clausesp. 196
How to code Redefines clausesp. 198
How to use Move and Initalize statementsp. 200
How to code Move statementsp. 200
How to code Pictures for alphanumeric and numeric editingp. 202
How to code Initialize statementsp. 204
Usages and data formats on an IBM mainframep. 206
IBM mainframe extensions to the standard usagesp. 206
Binary, hex, and EBCDIC notationp. 208
The primary formats for numeric datap. 210
An enhanced report-preparation programp. 212
The changes to the one-level summary reportp. 212
The changes to the Working-Storage codep. 212
The changes to the Procedure Division codep. 214
Other COBOL essentials
How to use arithmetic statements and intrinsic functions
How to code arithmetic statementsp. 220
How to code Compute statementsp. 220
How to code arithmetic expressionsp. 222
How to code Add and Subtract statementsp. 224
How to code Multiply and Divide statementsp. 226
How to use intrinsic functionsp. 228
A summary of the six types of functionsp. 228
How to code any functionp. 230
How to use the mathematical functionsp. 232
How to use the statistical functionsp. 234
How to use the financial functionsp. 236
How to work with dates
How to use Accept statements and the date functionsp. 240
How to use Accept Date and Accept Time statementsp. 240
How to use Accept Day and Accept Day-Of-Week statementsp. 242
How to use the functions for working with datesp. 244
The Y2K problem and its solutionsp. 246
The Y2K problemp. 246
The Y2K solutions: Date expansion and century windowingp. 248
How to use IBM's Millennium Language Extensionsp. 250
How to define date fields with the Date Format clausep. 250
How to work with date fields in the Procedure Divisionp. 252
How to work with characters
How to use reference modification and functionsp. 256
How to use reference modificationp. 256
How to use the functions for working with charactersp. 258
How to use the String and Unstring statementsp. 260
How to use the String statementp. 260
How to use the Unstring statementp. 262
How to use the Inspect statementp. 264
With the Tallying clausep. 264
With the Replacing clausep. 266
With the Tallying and Replacing clausesp. 268
With the Converting clausep. 270
Two illustrative routinesp. 272
An editing routinep. 272
A conversion routinep. 272
How to work with tables
How to use subscripts to work with one-level tablesp. 276
How to define a one-level table that uses subscriptsp. 276
How to initialize a tablep. 278
How to define a table with constant valuesp. 278
How to refer to entries in a one-level table using subscriptsp. 280
How to load a one-level table using subscriptsp. 282
How to search a one-level table using subscriptsp. 284
How to use subscripts to work with multi-level tablesp. 286
How to define a multi-level tablep. 286
How to refer to entries in a multi-level table using subscriptsp. 288
How to load a two-level table using subscriptsp. 288
How to search a two-level table using subscriptsp. 290
How to use indexes to work with tablesp. 292
How to define a table with an indexp. 292
How to refer to table entries using an indexp. 292
How to load a table using an indexp. 294
How to code the Set statementp. 296
How to perform a sequential searchp. 298
How to perform a binary searchp. 300
How to search a two-level table using indexesp. 302
How to work with variable-length tablesp. 304
How to define a variable-length tablep. 304
How to load a variable-length tablep. 306
How to search a variable-length tablep. 306
Another technique for working with variable-length tablesp. 308
Other features for working with tablesp. 310
How to use the Perform Varying statement to vary more than one index or subscriptp. 310
How to use intrinsic functions with tablesp. 312
How to use copy members and subprograms
How to use copy membersp. 316
How to use the Copy statementp. 316
Guidelines for using copy membersp. 318
How to use subprogramsp. 320
How to call a subprogramp. 320
How to write a subprogramp. 322
Another example of a calling program and subprogramp. 324
Guidelines for using subprogramsp. 326
COBOL for working with files
Concepts and terms for working with disk files
Disk concepts and termsp. 332
How data is stored on a disk drivep. 332
How the data in a sector is read or writtenp. 334
Blocked versus unblocked recordsp. 336
Fixed-length versus variable-length recordsp. 336
File organization conceptsp. 338
Sequential file organizationp. 338
Indexed file organizationp. 340
Indexed file organization with alternate indexesp. 342
Relative file organizationp. 344
VSAM file organizationsp. 344
Typical programs that work with disk filesp. 346
Interactive programsp. 346
Batch programsp. 348
How to work with sequential files
COBOL for fixed-length recordsp. 354
How to code Select and FD statementsp. 354
How to code Procedure Division statementsp. 356
How to work with file status codesp. 358
A sequential update programp. 360
The program specificationsp. 360
The test data and matching record logicp. 362
The structure chartp. 364
The COBOL codep. 366
A sequential maintenance programp. 372
The program specificationsp. 372
The test data and matching record logicp. 374
The structure chartp. 376
The COBOL codep. 378
Special considerations for sequential update and maintenance programsp. 386
Error processing for I/O operationsp. 386
Testing and debuggingp. 388
Design alternativesp. 390
COBOL for variable-length recordsp. 392
How to code FD statementsp. 392
How to write to a file that contains record types with different lengthsp. 394
How to process a file that contains record types with different lengthsp. 396
How to write records with a varying number of segmentsp. 398
How to process records with a varying number of segmentsp. 400
How to work with indexed files
COBOL for indexed filesp. 404
How to code Select statementsp. 404
File status codesp. 406
How to code the Open, Close, Read, Write, and Rewrite statementsp. 408
How to code the Start statementp. 410
How to code the Delete statementp. 410
A sequential file creation programp. 412
The program specificationsp. 412
The structure chartp. 412
The COBOL codep. 414
A random maintenance programp. 418
The program specificationsp. 418
The structure chartp. 420
The COBOL codep. 422
How to work with alternate indexesp. 430
How to code Select statementsp. 430
How to code Start and Read statementsp. 432
How to process an alternate index sequentiallyp. 434
How to process an alternate index randomlyp. 436
Other processing techniquesp. 438
How to use dynamic processingp. 438
How to use skip-sequential processingp. 440
How to work with relative files
COBOL for relative filesp. 444
How to code Select statementsp. 444
How to code I/O statementsp. 446
How to process relative filesp. 448
Sequential processingp. 448
Random processingp. 450
How to use the sort/merge feature
Concepts for sorting and mergingp. 454
Sorting conceptsp. 454
Merging conceptsp. 456
Why COBOL sorts and merges improve efficiencyp. 458
COBOL for sortingp. 460
How to code Select and SD statementsp. 460
How to code the Sort statementp. 462
How to code the Release statementp. 464
How to code the Return statementp. 464
An edit-sort-and-update programp. 466
The program specificationsp. 466
The structure chartp. 468
The COBOL codep. 470
Efficiency considerationsp. 472
COBOL for mergingp. 476
How to code the Merge statementp. 476
How to use the Sort statement to merge filesp. 478
How to merge files using JCLp. 478
Two more sort/merge considerationsp. 480
IBM special registersp. 480
The FASTSRT compiler optionp. 480
The IBM mainframe environment for COBOL
Introduction to IBM mainframes
IBM mainframe processorsp. 486
The basic architecture of a processorp. 486
The history of the System 360/370 family of processorsp. 488
Input/output devices for IBM mainframesp. 490
Terminal display devicesp. 492
Direct access storage devicesp. 494
Printer devicesp. 494
Magnetic tape and optical disk devicesp. 494
The basic features of a mainframe operating systemp. 496
Virtual storagep. 496
Multiprogrammingp. 496
Spoolingp. 498
Batch processingp. 500
Time sharingp. 502
Operating systems for IBM mainframesp. 504
The OS family of operating systemsp. 504
Other IBM mainframe operating systemsp. 504
Features of the OS/390 and z/OS operating systemsp. 506
OS/390 and z/OS subsystems and facilitiesp. 508
How to compile and test programs on an IBM mainframe
An introduction to program development on a mainframep. 512
How a COBOL program is compiled, link-edited, and executed on a mainframep. 512
A general procedure for developing a COBOL program on a mainframep. 512
How to create a source program using ISPFp. 514
Basic skills for working with ISPFp. 514
How to create a partitioned data setp. 516
How to start an edit sessionp. 518
How to work in the edit data displayp. 520
How to use line commands and primary commandsp. 522
How to terminate an edit sessionp. 522
How to compile, link-edit, and execute a programp. 524
An introduction to jobs and Job Control Languagep. 524
The cataloged procedures for COBOL program developmentp. 526
How to use the compile-link-and-go procedurep. 528
How to execute an existing programp. 530
How to create a sequential data setp. 532
How to use SDSF to work with jobs and job outputp. 534
Basic skills for working with SDSFp. 534
How to work with jobsp. 536
How to use SDSF to work with jobs and job output (continued)
How to work with job outputp. 538
How to display job outputp. 540
How to handle compile-time and run-time error messagesp. 542
How to handle compile-time error messagesp. 542
How to handle run-time error messagesp. 544
How to use Access Method Services to work with VSAM files
How VSAM manages data setsp. 548
The Integrated Catalog Facility (ICF)p. 548
Control intervals and control areasp. 550
Free space and record additions for a KSDSp. 552
How a record in a KSDS is randomly accessed by primary keyp. 554
How alternate indexes workp. 554
Introduction to Access Method Servicesp. 556
Some commonly used AMS commandsp. 556
The JCL requirements for using AMS commandsp. 558
The syntax requirements for AMS commandsp. 558
How to use the Define Cluster command to define a data setp. 560
Parameters that identify a data setp. 562
Parameters that describe the data set's characteristicsp. 564
Parameters that allocate space to the data setp. 566
Other Define Cluster parametersp. 568
How to use the Listcat command to list catalog informationp. 570
How to identify the entries you want to listp. 572
How to limit the amount of information that's listed for each entryp. 572
How to use AMS commands to print, copy, and delete data setsp. 574
How to use the Print command to print a data setp. 574
How to use the Repro command to copy a data setp. 576
How to use the Delete command to delete a data setp. 578
How to define and build an alternate indexp. 580
How to use the Define Alternateindex commandp. 580
How to use the Define Path commandp. 582
How to use the Bldindex commandp. 584
How to use CICS to develop interactive programs
Program development concepts and techniquesp. 588
How application programs use CICS servicesp. 588
How pseudo-conversational programming worksp. 590
How to develop CICS programsp. 592
The Execute Interface Block and the Dfhaid copy memberp. 594
A CICS inquiry programp. 596
The program specificationsp. 596
The BMS mapsetp. 598
The symbolic mapp. 602
The structure chartp. 606
The COBOL listingp. 608
Introduction to CICS web programmingp. 616
The benefits of using CICS for web applicationsp. 616
How to connect to CICS through the Internetp. 616
Three techniques for accessing CICS programsp. 618
How the CICS Transaction Gateway worksp. 620
How the 3270 Bridge exit worksp. 622
How to use DB2 to develop database programs
DB2 and the relational database modelp. 626
How a relational database is organizedp. 626
How the tables in a relational database are relatedp. 628
How to use SQL to work with a DB2 databasep. 630
Introduction to Structured Query Languagep. 630
How to retrieve data from a single tablep. 632
How to join data from two or more tablesp. 634
How to create and work with result tables using embedded SQLp. 636
A DB2 inquiry programp. 638
The interactive screenp. 638
The DCLGEN outputp. 640
The structure chartp. 642
The COBOL listingp. 644
How to develop a COBOL program that accesses DB2 datap. 650
How to become an effective maintenance programmer
Statements and features you should be aware ofp. 654
Perform Thru and Go To statementsp. 654
Go To Depending statementsp. 656
Section names in the Procedure Divisionp. 658
Qualification and the Move, Add, and Subtract Corresponding statementsp. 660
Declarative sectionsp. 662
The basic skills for maintaining programsp. 664
A structured procedure for maintaining a programp. 664
What to change and where to change itp. 666
How to document the changes in the source codep. 668
Table of Contents provided by Ingram. All Rights Reserved.

Rewards Program

Write a Review