Cross Program Communications in z/OS

Why take this course?

After completing this course, you will be able to
  • Code calling and called programs using one or more of these LE-conforming compilers:
    IBM Enterprise COBOL, XL C/C++ for z/OS, IBM Enterprise PL/I, High Level Assembler language (HLASM)
  • Define elementary and aggregate data types in all of the above languages
  • Access JCL PARM data from code written in any of these languages
  • Set the JCL return code value
  • Describe the general content of object modules in OBJ, XOBJ, and GOFF formats
  • Call and code subroutines / external functions with each of these languages
  • Pass elementary and aggregate data items, passing by reference, content,and value
  • Describe how argument lists are built and how parameter lists are received in all four languages
  • Use the program binder to create load modules and program objects
  • Create and use programs with multiple entry points
  • Deal with variable numbers of arguments and parameters
  • Where possible, share external data items across programs, modules, and languages.
3 Days : Fee - $ 1,997.00 (CAD) :  ? Multi-seat - $ 1,347.00 (CAD)
Mon May 2, 2016
Mon Jun 6, 2016
Mon Jul 11, 2016
Contact us to arrange your preferred location and date
This course helps experienced programmers find the most productive ways to combine functions and modules written in different programming languages (or the same language). The student will gain new insights on how each language builds argument lists and accesses parameters. This can result in code that is smaller, faster, and more robust.
Experienced programmers who need to create or maintain applications that include components written in various languages, or who need to use some of the advanced subroutine features of a particular language or the program binder.
At the very least, the student entering this course should have a strong programming background in at least one of: COBOL, PL/I, C, or Assembler.

Major topics covered

  • Defining data (items, structures, arrays) in four languages
  • Converting between null-terminated strings and traditional strings in four languages
  • Working with halfword-prefixed strings in four languages
  • Accessing the JCL PARM and setting the JCL return code in four languages and using LE services
  • Static calls and function references
  • Passing arguments, including: passing by reference and by value;
  • passing a variable number of arguments; setting the end-of-list flag;
  • omitting arguments; providing a return value area
  • receiving parameters, including: receiving by reference and by value;
  • handling a variable number of parameters; testing for the end-of-list flag;
  • testing for omitted parameters; providing a return value;s
  • how subroutines can behave like functions, and vice-versa
  • Object code formats: OBJ, XOBJ, GOFF
  • The program binder
  • Executables: load modules, program objects
  • Alternate entry points
  • Shared external data
  • Multi-tasking issues
  • Dynamic calls and function references
  • Addressing concerns and AMODE / RMODE issues
  • Module attributes (reusable, reenterable, refreshable)
Copyright © 2014 by Hunter Cobb & Steve Comstock