
В рамках проекта "Виртуальная машина" разработчиками опубликован исходный код начальной реализации развиваемой с нуля виртуальной машины. Код проекта выполнен на русифицированном языке C и выпущен под открытой лицензией MIT.
Русификация языка выполнена через макроподстановки и реализована через подключение двух заголовочных файлов ru_stdio.h и keywords.h. Например, в коде написано вместо int — цел, вместо long — длин и так далее: for — для, if — если, return — вернуть, goto — переход и так далее.
#вставка "ru_stdio.h" #вставка <string.h> #вставка "ansicode.h" #вставка "opcode.h" #вставка "vm.h" //Внешний интерфейс виртуальной машины // Задачи проекта цел main() { пчф(ЗЕЛЕНЫЙ_ТЕКСТ "Новый проект.\n" ОБЫЧНЫЙ_ТЕКСТ); //в переменной типа ТВМ "упакована" вся внутреннее устройство ВМ: // регистры, стек, память указатели и тд. ТВМ* ВМ1 = создать_ВМ(); // программа состоящая их четырех тестовых инструкций. б64 программа[4] = {цСЛОЖ, цВЫЧ, цУМН, СТОП} ; //Программа загружается как массив байтов. загрузить_ВМ(ВМ1,(симв*) программа, (симв*)((программа)+1)); старт_ВМ(ВМ1); // освобождаем динамически выделенную память под ВМ. закрыть_ВМ (ВМ1); пчф("Виртуальная машина успешно завершила работу.\n Для завершения нажмите ВВОД"); чтз(); вернуть 0; }
Целью проекта «Виртуальная машина» является создание виртуальной машины с простой архитектурой и системой команд, которая будет легкой и понятной для изучения, а её реализация не займёт много времени. Предполагается, что преимуществом проекта будет исчерпывающая русскоязычная документация, а разработка под виртуальную машину будет полностью кириллической. В частности, кириллица будет использоваться для мнемоник инструкций, имён регистров и тому подобное.
