Abstract:
The implementation of a statistical computing system is described, consisting of a language, an optimising compiler, a virtual machine, and its run-time environment. The language is dynamically typed with lexical scope, first-class functions, and optional type declarations. The compiler operates on a high-level intermediate representation in static single assignment form, and applies several optimisations from the literature. The virtual machine is a directly threaded interpreter with specialised arithmetic instructions for unboxed scalar values. The run-time support library supplies automatic memory management of vectors, arrays and closures.