Sunday, November 20, 2011

Difference between Static Call and Dynamic Call




               STATIC Call
                    DYNAMIC Call
1
Identified by Call literal.
Ex: CALL ‘PGM1’.
Identified by Call variable and the variable should be populated at run time.
01 WS-PGM PIC X(08).
Move ‘PGM1’ to WS-PGM
CALL WS-PGM
2
Default Compiler option is NODYNAM and so all the literal calls are considered as static calls. 
If you want convert the literal calls into DYNAMIC, the program should be compiled with DYNAM option.
By default, call variables and any un-resolved calls are considered as dynamic.
3.
If the subprogram undergoes change, sub program and main program need to be recompiled.
If the subprogram undergoes change, recompilation of subprogram is enough.
4
Sub modules are link edited with main module.
Sub modules are picked up during run time from the load library.
5
Size of load module will be large
Size of load module will be less.
6
Fast
Slow compared to Static call.
7
Less flexible.
More flexible.
8
Sub-program will not be in initial stage the next time it is called unless you explicitly use INITIAL or you do a CANCEL after each call.
Program will be in initial state every time it is called.

No comments:

Post a Comment