HWW Portfolio

Software and Hardware Developer

Что уже работает в SOOT

Это снимок состояния проекта на момент коммита fix: virtual method dispatch for basic-derived types. Здесь только то, что работает и проверено в REPL или в тестах. Планов и обещаний нет.

Цель документа: честно показать, что уже можно брать и использовать, а что ещё нет.


Язык и интерпретатор (Script)

Интерпретатор работает поверх чтения S-выражений.

Интерпретатор используется в REPL (--interpret-only, (sc-eval ...)), и на нём же построен компилятор.


Компилятор (Sootc)

Компилятор переводит формы SOOT в байткод виртуальной машины Carbon.


Виртуальная машина (Carbon)


Бинарный формат (.bin)


REPL (Sootc)


Что пока не работает или работает частично

Этот раздел так же важен, как предыдущие: без него список выше превращается в рекламу.


Итог

SOOT умеет читать S-выражения, интерпретировать их и компилировать в байткод. Он загружает байткод в виртуальную машину и выполняет функции, работает со структурами и перечислениями, вызывает методы статически и полиморфно, собирает и загружает StateScript с состояниями и треками, запускает процессы и планирует их выполнение, собирает мусор, сохраняет и загружает .bin с релокациями.

SOOT пока не умеет проверять, что объявленный метод реализован, и проверять контракт при переопределении методов. Он не работает с StateScript от начала до конца и не проверяет типы между модулями.

Это молодой проект. Список выше — точка отсчёта.