TTFlogo2.gif (2585 bytes)

Course Description

Secrets of Inter-Language Communication in z/OS

 

This course: course objectives; course outline;
LE curriculum; Topic list; Course list; Home page

 

Course Code: M-520
Recommended Duration: 3.5 Days

Benefits

This course helps experienced programmers find the most productive ways to combine functions and modules written in different languages. 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.

Audience

Experienced programmers who need to create or matintain 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.

Prerequisites

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.

Related IBM Materials

This course is drawn from this and other IBM manuals; access to these publications in the classroom is desirable but not required:

SA22-7832 - z/Architecture Principles of Ops.
SC26-4940 - HLASM Language Reference
SA22-7606 - Assembler Services Reference, I
SA22-7607 - Assembler Services Reference, II
SC27-1408 - Enterprise COBOL Language Reference
SC27-1412 - Enterprise COBOL Programming Gde.
SC27-1460 - Enterprise PL/I Language Reference
SC27-1457 - Enterprise PL/I Programming Guide
SC09-4815 - XL C/C++ Language Reference
SC09-4765 - XL C/C++ Programming Guide
SC09-4767 - XL C/C++ User's Guide
SA22-7821 - XL C/C++ Run-Time Library Ref.
SA22-7643 - MVS Program Mgmt. User's Guide
SA22-7644 - MVS Program Mgmt. Advanced Facilities

 

Major Topics Include
  • 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; how subroutines can behave like functions, and vice-versa
  • Object code formats: OBJ, XOBJ, GOFF
  • The program binder
  • Executables: load modules, program objects, DLLs
  • 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)
  • DLLs: creating and referencing DLL functions and variables in four languages
  • DLL support services: dlopen, dlclose, dlsym, dlerror, dllload, dllqueryfn, dllqueryvar
  • Enterprise PL/I: Packages

Exercises

There are ten hands-on exercises, one of which is optional.

 

Platforms Supported

The exercises are designed to be solved using COBOL, PL/I, Assembler, or C; there are starter programs supplied in all four languages, along with necessary JCL.

Special Note

The DLL portions of this course are extracted into the one day course Creating and Using DLLs in z/OS.

LE curriculum
Complete topics list
Home
this page last updated: 09 February, 2008

View course objectives and topical outline

Copyright © 2008  by Steven H. Comstock