Ориентировочная книга по языку программирования QLISP — компилируемому Лиспу для машинного обучения и AI.
QLISP — это диалект Лиспа, который компилируется в нативный машинный код через LLVM, со встроенной тензорной системой (F16-поддержка с v2.2.0), автоградиентом, HLO-компиляцией с AOT-инференсом и нейросимвольным движком (rule engine, унификация, NS-IF/NS-GRAD! с v2.2.0+) — всё в стандартной библиотеке, без единого pip install. Серия v2.3.x принесла: гомоиконность (EVAL/READ-FROM-STRING/FUNCTION-BODY/SYMBOL-NAME), QSRD v2 для бинарной сериализации, модуль string, частичный импорт IMPORT-FROM, переписанный dl со слоями-как-данными, переживающий границы форм gradient tape, in-process LLD для HLO-компиляции, производительность уровня PyTorch на ключевых операциях (SIMD-редукции, тайловый transpose, векторизованный softmax, memcpy-im2col conv), нейросимвольное RL-ядро (SAMPLE, макро-слоты, EVAL-SANDBOXED, REINFORCE), маршрутизацию внутри HLO-графа (ROUTE-нода, HLO-ROUTE-GRAD! без ленты), граф-как-данные (GRAPH-DATA/GRAPH-FROM-DATA/GRAPH-RUN-PASSES), полноценный LSP-сервер (диагностики, навигация по воркспейсу, folding, форматирование) и нейросимвольный RL-движок susuwatari (агент-кодер, слоты, песочница).
Книга написана для инженеров с Python-бэкграундом: каждая глава содержит аналогии с Python, NumPy, PyTorch и scikit-learn.
| Глава | Тема | Python-аналог |
|---|---|---|
| 01. Введение | Зачем нужен QLISP, философия, пайплайн | «Почему не Python?» |
| 02. Начало работы | Установка, REPL, первая программа, компиляция | python, pip |
| 03. Основы языка | S-выражения, функции, гомоиконность (EVAL, FUNCTION-BODY) |
синтаксис, def, lambda, ast |
| 04. Система типов | Постепенная типизация, линейные типы тензоров | type hints, mypy |
| 05. Модель памяти | HibLin: scratch/stable, пулы, Scope, defvar, reset_scratch |
GC, numpy views |
| 06. Тензоры | N-мерные массивы, F16/F32, broadcasting, matmul | NumPy / torch |
| 07. Автоградиент | Лента градиентов, !-операции, SGD/Adam, контракт tape между формами |
torch.autograd |
| 08. Глубокое обучение | Модуль DL v2: слои-как-данные, net-forward/train-step/train-epochs |
torch.nn |
| 09. Классический ML | KNN, деревья, ансамбли, метрики, CV, grid search | scikit-learn |
| 10. HLO-компиляция | In-process AOT: LLVM emit → object → lldELF → dlopen | torch.compile, XLA |
| 11. GPU | Устройства, статус CUDA-бэкенда | .to('cuda') |
| 12. Макросы | Код-как-данные, backquote, compiler macros, EVAL/READ-FROM-STRING |
декораторы, метаклассы |
| 13. ООП | defstruct, defclass, дженерики (CLOS) | class, @dataclass |
| 14. Символьное программирование | match, unify, rule engine, amb, NS-IF/NS-GRAD!, движок susuwatari (NS-RL) |
match-case, Prolog |
| 15. Стандартная библиотека | IO, Regex, Audio, Datetime, Errors, Visual, String | re, open, datetime |
| 16. Пакеты и FFI | qvalent, pkg-install, FFI: dlopen+FFI-CALL/IMPORT | pip, ctypes |
| 17. Разбор примеров | Линейная регрессия и XOR-MLP с Python-эквивалентами | end-to-end туториалы |
| 18. Шпаргалка | QLISP ↔ Python/NumPy/PyTorch/sklearn | справочник |
| 19. Устройство компилятора | Reader, интерпретатор, HibLin, codegen, LSP, NS-router | CPython internals |
# Скачать бинарник (Linux x86_64, релиз v2.3.8)
curl -L https://github.com/FQingLars/Qlisp-Project/releases/latest/download/qlisp-linux-x86_64 -o qlisp
chmod +x qlisp && mv qlisp ~/.local/bin/
# Windows: qlisp-windows-x86_64.zip со страницы релизов (qlisp.exe, qlispc.exe, qlisp-lsp.exe, qvalent.exe)
# Компилятор (AOT): qlispc — см. гл. 2
# REPL
qlispqlisp> (+ 1 2 3 4 5)
=> 15
qlisp> (defun square (x: Float) -> Float (* x x))
=> square
qlisp> (square 4.0)
=> 16.0
qlisp> (import ML)- ML-инженеры на Python, которым нужен компилируемый язык без GIL, без GC-пауз и с нативной производительностью.
- Лисперы, которым нужен современный инструментарий ML: тензоры, автоград, HLO-AOT, нейросимвольный движок.
- Исследователи нейросимвольного AI: QLISP уникально сочетает гомоиконный символьный движок (правила, унификация, паттерн-матчинг,
NS-IF/NS-GRAD!с guilt detector) с нейросетевым бэктендом (автоград, HLO, GPU).
Книга сопровождает QLISP v2.3.8. Относительно v2.3.0 в книге отражены: фикс времени жизни градиентов и HLO-хендлов (2.3.1), корректность rule engine и завершение S7 (SECOND-BEST, 2.3.2), производительность тензоров/автограда до паритета с PyTorch и дисциплина памяти (soak-тесты, while без роста RSS, 2.3.3), нейросимвольное RL-ядро susuwatari T1–T4: REINFORCE, макро-слоты, EVAL-SANDBOXED, кодер и маршрутизация по слотам (2.3.4), ROUTE-нода в HLO-графе (2.3.5) и HLO-ROUTE-GRAD! — обучение роутера без ленты (2.3.6), граф-как-данные + продакшен-пайплайны + умная печать тензоров (2.3.7) и полноценный qlisp-lsp (2.3.8).
Известные ограничения реализации (см. соответствующие разделы в книге):
- CUDA-бэкенд (
src/gpu/kernels.cu) присутствует, но не тестирован на GPU. - Windows: локальная кросс-компиляция
qlisp/qlispcиз Linux невозможна (SysV-ABI в host-LLVM несовместим с Win64 ABI). Используйте релизные бинарники (собираются в CI, MSYS2 MinGW64) или локальную MSYS2-сборку. - HLO-fallback (без
HLO-COMPILE) держит константы формы трассировки — кросс-форменное использование такого HLOPROG небезопасно. - Графы с
ROUTEкомпилируются в fallback-программу; LLVM-диспетчер для ROUTE отложен (roadmap 1.2). - Известные фейлы ранних 2.3.x (
ns-nested-breed-guilty,neurosym-rule-check) устранены в 2.3.1–2.3.2 (#28–#33); полный сюит к 2.3.8 зелёный в Release, ASan чист на ключевых путях.
QLISP и эта книга распространяются под лицензией MIT.