The program is loaded into memory. A check is made to ensure that its structure is compatible with that expected by the version of the Program Interpreter being used. If the program name was specified from the command line and the program cannot be found, the Program Interpreter terminates.
The database is opened in the appropriate mode and the database generation is checked against the generation when the program was compiled. If they are not the same, an error is issued and execution ceases.
The user's read and write authority are checked against those required to run the program.
Where appropriate, the print device is selected in accordance with information in the program header.
The root procedure is executed (see Procedure Initialisation ).
The database is closed and PROGRUN terminates. Any uncommitted updates to the database are thrown away.