The EXTPGM keyword indicates that the prototype represents a dynamic call to a program.
The parameter specifies the external name of the program whose prototype is being defined. The name can be a character constant or a character variable.
DCL-PR qcmdExc EXTPGM;
...
If neither EXTPGM or EXTPROC is specified for a prototype, then the compiler assumes that you are defining a prototype for a procedure, and assigns the external procedure name to be the upper-case form of the prototype name.
Any parameters defined by a prototype or procedure interface with EXTPGM must be passed by reference. In addition, you cannot define a return value.