ASG (Abstract Syntax Graph) — современный язык программирования, построенный на основе абстрактного синтаксического графа.
- ASG-based — код представляется как граф, а не дерево
- S-Expression синтаксис — простой и единообразный
- Функциональное программирование — первоклассные функции, замыкания
- Множественные бэкенды — интерпретатор, LLVM, WASM
- LSP поддержка — полноценная IDE интеграция
- Менеджер пакетов — asg-pkg для управления зависимостями
# Установка
cargo install asg-lang
# Запуск REPL
asg
# Выполнение файла
asg examples/demo.asg
# LSP сервер для IDE
cargo install asg-lsp
# Пакетный менеджер
cargo install asg-pkg; Привет, мир!
(print "Hello, World!")
; Функция
(fn factorial (n)
(if (<= n 1)
1
(* n (factorial (- n 1)))))
(print (factorial 5)) ; => 120
; Массивы и функциональный стиль
(let numbers (array 1 2 3 4 5))
(let doubled (map (lambda (x) (* x 2)) numbers))
(print doubled) ; => [2, 4, 6, 8, 10]| Компонент | Описание |
|---|---|
asg |
Интерпретатор и компилятор |
asg-lsp |
Language Server Protocol |
asg-pkg |
Менеджер пакетов |
| VSCode Extension | Расширение для VSCode |
git clone https://github.com/Xzdes/asg.git
cd asg
cargo build --releaseMIT License — см. LICENSE