Peter Flom reminded readers of his blog that you should always end a SAS procedure with a RUN statement. This is good rule. However, PROC IML is an exception to the rule.
In PROC IML, the RUN statement is used to execute a built-in subroutine or a user-defined module. You should not use RUN as the last statement in a SAS/IML program.
If you use other SAS statistical procedures, you might find this behavior strange. In other procedures—even other interactive procedures—no statements are executed until the procedure encounters a RUN statement. Not so with PROC IML. Each statement (or block of statements) is executed as soon as you submit it.
When you are finished using PROC IML, use the QUIT statement to exit the procedure.