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)

Audience
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.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.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)