doc: add book,internal,reference,builtins sections

This commit is contained in:
samsonium
2026-10-19 11:11:43 +03:00
parent 306be6b82d
commit 81d07aa6e5
14 changed files with 420 additions and 2 deletions
+24
View File
@@ -0,0 +1,24 @@
# Стеки виртуальной машины
ВМ использует три фиксированных стека по 256 элементов.
## Стек данных
`dstack` хранит значения `fzl_value_t`: числа, строки, булевы значения, ссылки на объекты и null.
`PUSHNUM`, `PUSHBOOL` и `LOADCONST` помещают значения на стек.
Арифметические и логические операции снимают операнды и кладут результат обратно.
## Стек вызовов
`cstack` хранит адреса возврата.
`CALL` сохраняет текущий адрес и переходит к функции,
`RET` снимает последний адрес.
Рекурсивные вызовы используют отдельные записи.
## Стек окружений
`estack` хранит таблицы имён и владельцев объектов.
`MK_ENVTABLE` создаёт окружение, `RM_ENVTABLE` уничтожает его, `STORE` добавляет имя, `LOOKUP_ENV` ищет значение, `WRITE` изменяет переменную.
`ESCAPE_OBJECT` переносит возвращаемый объект перед закрытием окружения.
Запуск `fz -d program.fzb` печатает декодированную последовательность опкодов и аргументов.