Language environments

IBM® Language Environment® provides the strategic execution environment for running your application programs written in one or more high level languages.

It provides not only language-specific run-time support, but also cross-language run-time services for your applications, such as support for initialization, termination, message handling, condition handling, storage management, and National Language Support. Many of Language Environment's services are accessible explicitly through a set of Language Environment interfaces that are common across programming languages; these services are accessible from any Language Environment-conforming program.

Language Environment-conforming programs can be compiled with the following compilers:

The CEETDLI interface to IMS

The language-independent CEETDLI interface to IMS™ is provided by Language Environment. It is the only IMS interface that supports the advanced error handling capabilities provided by Language Environment. The CEETDLI interface supports the same functionality as the other IMS application interfaces, and it has the following characteristics:

  • The parmcount variable is optional.
  • Length fields are 2 bytes long.
  • Direct pointers are used.

Related reading: For more information about Language Environment, see z/OS Language Environment Programming Guide.

LANG= option on PSBGEN for PL/I compatibility

For IMS PL/I applications running in a compatibility mode that uses the PLICALLA entry point, you must specify LANG=PLI on the PSBGEN. Your other option is to change the entry point and add SYSTEM(IMS) to the EXEC PARM of the compile step so that you can specify LANG=blank or LANG=PLI on the PSBGEN. The following table summarizes when you can use LANG=blank and LANG=PLI.

Table 1. Using LANG= option in a Language Environment for PL/I compatibility
Compile exec statement is PARM=(...,SYSTEM(IMS)... Entry point name is PLICALLA Valid LANG= value
Yes Yes LANG=PLI
Yes No LANG=blank or LANG=PLI
No No Note: Not valid for IMS PL/I applications
No Yes LANG=PLI

PLICALLA is only valid for PL/I compatibility with Language Environment. If a PL/I application using PLICALLA entry at bind time is bound using Language Environment with the PLICALLA entry, the bind will work; however, you must specify LANG=PLI in the PSB. If the application is re-compiled using PL/I for z/OS® & VM Version 1 Release 1 or later, and then bound using Language Environment Version 1 Release 2 or later, the bind will fail. You must remove the PLICALLA entry statement from the bind.