Clear distinction between value semantics and reference semantics. Modular programming with information hiding and type checking. Efficient 32-bit code with extensive optimisations including inline expansion of procedure calls. Run-time error checking of array subscripts and the use of NIL references to prevent accidental corruption of data. Redundant error checks are removed by extensive compile-time analysis.
Production code can remove the checks or provide a replacement error handler.
Fast storage allocation and fast garbage collection means the heap can be used freely. The heap can be monitored during the program to allow action to be taken before available storage is exhausted. The compilation tool also provides housekeeping facilities such as cross-referencing. Controlled interface to libraries from other, type insecure, languages. Tool to convert C header files to modules wrapping a C library.