Pull to refresh

Опубликован исходный код на русифицированном языке C начальной реализации развиваемой с нуля виртуальной машины

Reading time2 min
Views6.6K


В рамках проекта "Виртуальная машина" разработчиками опубликован исходный код начальной реализации развиваемой с нуля виртуальной машины. Код проекта выполнен на русифицированном языке 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;  
}	

Целью проекта «Виртуальная машина» является создание виртуальной машины с простой архитектурой и системой команд, которая будет легкой и понятной для изучения, а её реализация не займёт много времени. Предполагается, что преимуществом проекта будет исчерпывающая русскоязычная документация, а разработка под виртуальную машину будет полностью кириллической. В частности, кириллица будет использоваться для мнемоник инструкций, имён регистров и тому подобное.
Tags:
Hubs:
Total votes 14: ↑6 and ↓8+2
Comments25

Other news