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
+31
View File
@@ -0,0 +1,31 @@
# Философия языка
Язык FZLang преследует две цели при разработке: "быть удобным, как инструмент, но всегда оставаться предсказуемым".
Вот, какими путями язык пытается достичь этой философии:
## В отношении к памяти и ресурсам
В средах с GC программист точно не знает, в какой момент сборщик мусора решит произвести очистку:
объект может висеть секундами после завершения метода.
А в момент очистки рантайм может устроить микропаузу, что критично для аудио, игр, сети или встроенных систем.
В модели scope-based RAII, которая используется в том числе в FZLang, память детерминирована.
Любой объект имеет область, которая им владеет, а как только область уничтожается - объект уничтожается вместе с ней.
Время отклика таком подходе равное и предсказуемое.
Ещё один плюс, который предоставляет модель scope-based RAII - это работа с ресурсами (сокеты, файлы).
Проблема освобождения ресурсов решается чистой семантикой области видимости: умирает скоуп - очищается всё, что к нему привязано.
И последним аргументом в сторону scope-based RAII стало отстутствие оверхеда на рантайм.
Полноценному GC для работы нужны карты памяти, фоновые потоки, барьеры чтения и записи.
В FZLang виртуальная машина весит очень мало, а вся память освобождается по ходу чтения инструкций.
## В отношении синтаксиса
Язык FZLang намеренно не упрощается некоторые детали синтаксиса.
Например, при обращении к экземпляру класса в его методах, использование `this` является обязательным, как и указание типов при декларациях, - это строгая часть.
Однако, объявление функции без возвращаемого типа позволяет опускать тип, так как писать на месте типа постоянно `void` было бы избыточно.
Таким образом, FZLang старается балансировать между синтаксисом, позволяющим оставаться языку детерминированным и упрощениями, которые действительно уместны.