Первые шаги ОленьВМ.
DeerVM – это виртуальная машина скрипт-движка DeerScript (ОленьСкрипт).
С чего, собственно, этот пост. А вот с чего. Не далее, как сегодня был завершен набросок транслятора ассемблеро-подобного языка в байткод, который ОленьВМ смогла безошибочно выполнить. Пока что она умеет:
(ЯП – ячейка памяти)
* складывать;
* умножать;
* увеличивать;
* уменьшать;
* печатать содержимое ЯП в консоль;
* загружать число в ЯП;
* копировать содержимое одной ЯП в другую (любую: регистр, стек, куча и т.п.);
* прыгать по меткам (в т.ч. условно);
* сравнивать содержимое двух ЯПов;
* класть на вершину стека содержимое ЯПа;
* снимать с вершины стека в ЯП;
* вызывать функции;
На базе этих инструкций удалось написать программы:
* вывод числа на экран;
* манипуляции с метками;
* циклические вычисления;
* вычисление факториала;
* счет от 1 до 10 и обратно (тест стека);
3 Комментариев
подозреваю, когда оно сумеет прочитать программу вычисления факториала, можно будет с ней заканчивать и работать уже над трансляцией языка DeerScript’-а в этот ассемблер.
нет, я поспешил. не хватает много чего. главное – отсутствие поддержки комментариев.
кстати, комментарии поддежриваются. что-то зобросил я ее.. еще и не компилируется к тому же теперь