Skip to content
efen-langPublic

Latest commit

 

History

172 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 

Repository files navigation

Efen

Efen — компилируемый язык, в котором классы, стратегии, представления данных и другие высокоуровневые механизмы могут определяться и преобразовываться кодом времени компиляции.

Репозиторий сейчас содержит проект языка и примеры. Наличие конструкции в документации не означает, что она уже реализована компилятором.

Начать чтение

Цель Маршрут
Быстро понять язык Карта документации → абстракции → классы
Разобраться в типах и памяти Типы и данные → ownership → управление памятью
Расширить поведение типа Контракты → interfaces → стратегии
Писать метапрограммирование Аспекты → Compile-time API → метафункции
Понять toolchain Режимы компиляции → диалекты → Amber
Найти определение термина Словарь Efen
Понять принципы синтаксиса Философия языка
Читать внешние исследования Исследования

Полный тематический каталог и дополнительные маршруты находятся в карте документации.

Место Efen в toolchain

Efen source
    ↓ frontend
Amber HIR
    ↓ analysis and transformations
backend profile
    ├─ MLIR / LLVM
    ├─ Cranelift
    └─ other compatible backends

Efen определяет исходную семантику. Amber задаёт общий HIR, стадии готовности, анализ и границы frontend/backend. Начальная точка для сопоставления языка с HIR — путеводитель Amber.

Источники истины

  • Текущая модель языка: docs/efen/.
  • Термины языка: docs/efen/glossary.md.
  • Принятые межрепозиторные решения и план реализации ведутся в Amber: decision log и plan.
  • Актуальная очередь ещё не решённых вопросов поверхности Efen ведётся в dev/language-design-questions.md; пометка «решено» у Q01–Q55 закрывает сформулированные решения; следующая очередь содержит ещё не оформленные темы аудита.

Историческое обсуждение и review не переопределяют текущие языковые документы.