What is IMLPlus?

The IMLPlus language has been available to SAS customers since 2002, but there are still many people who have never heard of it. What is IMLPlus? The documentation SAS/IML Studio for SAS/STAT Users says this about IMLPlus:

The programming language in SAS/IML Studio, which is called IMLPlus, is an enhanced version of the SAS/IML programming language. The “Plus” part of the name refers to new features that extend the SAS/IML language, including the ability to create and manipulate statistical graphs, to call SAS procedures, and to call functions in the R programming language.

From this we can deduce the following:

IMLPlus is part of SAS/IML Studio. If you want to program in IMLPlus, you need to use SAS/IML Studio. The SAS Display Manager and SAS Enterprise Guide do not know how to interpret IMLPlus programs.

IMLPlus supports PROC IML statements. If a program or module runs in PROC IML, it should also run in SAS/IML Studio. (A few minor exceptions to this rule are documented in the SAS/IML Studio online Help.)

IMLPlus contains new features that are not found in PROC IML. The IMLPlus program contains features that help statistical programmers write, debug, and run programs. This includes:

a program editor that color-codes SAS/IML keywords

error handling that enables you to jump to the exact location of a parse-time or run-time error

multiple program windows, so that you can develop and run multiple programs simultaneously

IMLPlus enables you to create statistical graphs. For example, if x is a SAS/IML vector, you can plot a Histogram of x with a single statement:

Histogram.Create("My Distribution", x);

Similar commands are available for other common statistical graphs such as scatter plots, bar chart, box plots, and so on. There are many examples in SAS/IML Studio for SAS/STAT Users.

IMLPlus enables you to call SAS procedures from within your IMLPlus program. If you need a statistical computation in the middle of your IMLPlus program, you can use the SUBMIT statement to call a SAS procedure as if it were a SAS/IML subroutine. You can even pass parameters to the procedure.

IMLPlus enables you to call R functions from within your IMLPlus program. If you want to call functions in R, you can do so from IMLPlus. You can also transfer data back and forth between SAS software and R.

[Editor's Note 13AUG2011: You can call SAS procedures and R functions from PROC IML in SAS 9.22 and beyond.]