Jitter принимает в качестве входных данных высокоуровневую спецификацию инструкций, поддерживаемых виртуальной машиной, а на выходе формирует готовую реализацию виртуальной машины для выполнения заданных инструкций. Логика каждой инструкции в спецификации задаётся при помощи кода на языке Си (см. пример спецификации виртуальной машины для языка Lisp). Из дополнительных возможностей отмечается поддержка труднореализуемых на языке Си и свойственных динамическим языкам программирования операций условного ветвления, таких как проверка значений тегов и проверка переполнений.
Результирующая виртуальная машина оформляется на языке Си с небольшим числом ассемблерных вставок. Предоставляются настройки для включения различных оптимизаций и выбора механизмов диспетчеризации, что упрощает портирование виртуальной машины для разных платформ. Поддерживается использование регистровой, стековой и комбинированной архитектуры выполнения, а также возможность отражения структур данных VM в аппаратные регистры CPU и подключение сборщиков мусора. Сгенерированный код включает простой C API для динамической подстановки и выполнения кода в виртуальной машине, а также программу-драйвер для обособленного запуска в виртуальной машине кода из текстовых файлов.
Источник: http://www.opennet.ru/opennews/art.shtml?num=56378