A DLL is a load module or a program object that can be accessed from other separate load modules.
A DLL differs from a traditional load module in that it exports definitions of programs, functions, or variables to DLLs, DLL applications, or non-DLLs. Therefore, you do not need to link the target routines into the same load module as the referencing routine. When an application references a separate DLL for the first time, the system automatically loads the DLL into memory. In other words, calling a program in a DLL is similar to calling a load module with a dynamic CALL.
A DLL application is an application that references imported definitions of programs, functions, or variables.
Although some functions of z/OS DLLs overlap the functions provided by COBOL dynamic CALL statements, DLLs have several advantages over regular z/OS load modules and dynamic calls:
DLLs are supported by IBM z/OS Language Environment, based on function provided by the z/OS program management binder. DLL support is available for applications running under z/OS in batch or in TSO, CICS, UNIX, or IMS environments.
related references
PGMNAME
MVS Program Management: User's Guide and Reference (Binder support for DLLs)