SITER (Simple IR TransformER)
Русский
Что такое SITER?
SITER — это простой семантический IR (Intermediate Representation) и транспайлер кода.
Он принимает IR на базе JSON и генерирует код на разных языках программирования.
документация: https://docs.rs/simple_ir_transformer/0.0.4
человеко-читаемая документация: https://mxcoderr.github.io/SITER
статус разработки: Alpha / В разработке
Цель проекта
Сам я,mxcoder(создатель siter),создаю разные DSL/Языки програмированния,и решил создать инструмент который принимает читаемый ir и генерирует исходный код на разных языках
Поддерживаемые языки (планируются)
- Python
- Rust
- JavaScript
- TypeScript
- Ruby
- Lua
- Go
- Dart
- и другие...
Особенности
Семантический IR
IR описывает смысл программы, а не синтаксис конкретного языка.
Простота
И IR, и API максимально простые.
Мульти-языковая генерация
Один IR можно преобразовать в код для разных языков.
JSON-based
IR основан на JSON, поэтому его легко читать, писать и генерировать.
Почему SITER?
| LLVM | Babel | SITER | |
|---|---|---|---|
| Простота | ❌ Сложный | ✅ Простой | ✅ Простой |
| Языки | ✅ Много | ❌ Только JS/TS | ✅ Много |
| IR формат | ❌ Бинарный/сложный | ❌ JS AST | ✅ Читаемый JSON |
| Порог входа | ❌ Высокий | ⚠️ Средний | ✅ Низкий |
| Назначение | Компиляторы | JS трансформации | DSL / кодогенерация |
LLVM слишком тяжёлый. Babel заточен под JS-экосистему. SITER — золотая середина: лёгкий, читаемый IR и генерация кода на любой язык.
English
What is SITER?
SITER is a simple semantic IR (Intermediate Representation) and code transpiler.
It accepts JSON-based IR and generates code in various programming languages.
Documentation: https://docs.rs/simple_ir_transformer/0.0.2
Human-readable documentation: https://mxcoderr.github.io/SITER
Development status: Alpha / In development
Project Goal
I, mxcoder (the creator of Siter), create various DSLs/programming languages, and decided to create a tool that accepts human-readable IR and generates source code in various languages.
Supported languages (planned)
- Python
- Rust
- JavaScript
- TypeScript
- Ruby
- Lua
- Go
- Dart
- and others...
Features
Semantic IR
IR describes the meaning of a program, not the syntax of a specific language.
Simplicity
Both IR and API are extremely simple.
Multi-language generation
A single IR can be converted into code for different languages.
JSON-based
IR is based on JSON, making it easy to read, write, and generate.
Why SITER?
| LLVM | Babel | SITER | |
|---|---|---|---|
| Simplicity | ❌ Complex | ✅ Simple | ✅ Simple |
| Languages | ✅ Many | ❌ JS/TS Only | ✅ Many |
| IR Format | ❌ Binary/Complex | ❌ JS AST | ✅ Readable JSON |
| Entry Barrier | ❌ High | ⚠️ Medium | ✅ Low |
| Purpose | Compilers | JS Transformations | DSL / Code Generation |
LLVM is too heavy. Babel is tailored for the JS ecosystem. SITER is the golden mean: lightweight, readable IR and code generation for any language.