We are all familiar with the time-honored idea of a Virtual Machine that is neutral
with respect to computer architecture and can be used to execute a high-level
language, after its translation to the VM byte-code. This approach can be found in
several successful mono-language systems, that support popular languages such as
Java or SmallTalk. Such systems combine interpretation with dynamic translation,
including code optimization, to achieve higher performance.
Other more ambitious VMs support many languages, and the best known
example of a source-language neutral VM is the Common Language Infrastructure
(standard ECMA 335 or ISO/IEC 23271), available from the .NET proprietary
system and from free open-source projects including the most established Mono and,
more recently, ILDJIT. Let me disclaim any responsibility for this unpronounceable
acronymthat I had urged Simone to change, before the fast growing popularity of the
system made renaming inconvenient—would you imagine repainting a boat name
while she sails on a successful regatta? Yet the D for distributed reveals that thisVM
belongs to a new generation that from the very start was designed for parallel
execution.
Since the early developments at the Formal Languages and Compiler Group,
Simone shaped the software structure to be modular and extensible, so that other
team members, including graduate students, could easily contribute new plug-ins.
Two distinguishing objectives of the early ILDJIT were the emphasis on embedded
applications running on small microprocessors, motivated by the support of chip
manufacturer STMicroelectronics, and the use of C both as application and compiler
implementation language.
The long way of the project status from curiosity to recognition and to adoption
by other research labs and developers has been punctuated by visible progresses in
terms of language and test suites coverage, reduction of residual errors, and, more
than anything else, by performance improvements that rank ILDJIT at the top of
CLI-based systems in many relevant cases.