SDF-P provides a procedure compiler. This compiler is responsible for ensuring the portability of S procedures on systems in which the SDF-P subsystem is not loaded. This means that the procedure compiler converts S procedures into an intermediate format, thus allowing these alone to be executed by means of SDF-P-BASYS.
The following points are important in this context:
The procedure compiler only converts (compiles) the SDF-P control structures. This means that while control structures are converted in the intermediate format generated by the compiler (also referred to as a compiled procedure or object procedure), other commands and statements are identical to the source procedure. They are executed in exactly the same way as in the original S procedure.
Compilation is performed with the COMPILE-PROCEDURE command, which is part of the (chargeable) SDF-P subsystem. The final product of the compilation process is the intermediate format (compiled procedure) mentioned earlier, which can be stored in a file or library element. The compiled procedure can be called like an S procedure using the command CALL-PROCEDURE, INCLUDE-PROCEDURE or ENTER-PROCEDURE. However, unlike in the first two of these commands, no element type can be specified in the command ENTER-PROCEDURE FROM-FILE=*LIBRARY-ELEMENT(..). SDF-P-BASYS in this case expects the compiled procedure to be stored as a SYSJ-type or J-type element.
Notes
Conversion using COMPILE-PROCEDURE and execution on installations without the SDF-P subsystem is also an option for S procedures which do not contain any chargeable SDF-P functions, or which only include a few such functions.
Appropriate use of compiled procedures
Compiled procedures should only be used in installations in which the chargeable part of SDF-P has not been loaded. On installations on which the chargeable part is available and has been loaded and in which S procedures are updated regularly, the use of compiled procedures is not recommended.
The fact that only the SDF-P control structures are compiled and the major part of the S procedure is not interpreted until runtime results in the following typical applications:
Procedures with chargeable SDF-P functions can be passed to a user who has not installed the chargeable part of SDF-P; e.g. an external software developer.
If a computer center with multiple BS2000 computers possesses a software licence for the chargeable part of SDF-P for one computer only:
S procedures can be developed, tested and compiled on this computer and the compiled procedures can be used on the other computers even though the chargeable part of SDF-P is not present.If a computer center only possesses a software licence for the chargeable part of SDF-P as part of a current project, e.g. only during the development of certain procedures:
the required S procedures can be developed, tested and compiled during this period and the compiled S procedures can be used even after the licence for the chargeable part of SDF-P has expired.