Домен
Компиляторы и языки
Профиль навыка
Проектирование DSL: internal/external DSL, syntax design, tooling, usability
Ролей
3
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
6
ещё 9 — необязательные
Компиляторы и языки
DSL и интерпретаторы
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Знает базовые концепции dsl design skill для compiler engineer и умеет применять их в типовых задачах. Использует стандартные инструменты и следует установленным практикам команды. Понимает когда и почему применяется данный подход. | |
| Language Tooling Engineer | Понимает спецификации грамматик DSL и основы построения парсеров. Пишет простые DSL-выражения, следуя существующему синтаксису языка. Тестирует DSL-программы на соответствие ожидаемому результату под руководством наставника. | |
| Systems Programmer (C/C++) | Использует внутренние DSL для конфигурации и спецификаций систем сборки. Понимает разницу между внутренними и внешними DSL. Модифицирует простые DSL-скрипты, следуя установленным паттернам и документации. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Уверенно применяет dsl design skill для compiler engineer при решении нестандартных задач. Самостоятельно выбирает оптимальный подход и инструменты. Анализирует trade-offs и предлагает улучшения существующих решений. | |
| Language Tooling Engineer | Проектирует и реализует предметно-ориентированные языки с кастомными парсерами и семантическим анализом. Строит систему сообщений об ошибках и интеграцию с IDE для DSL-инструментов. Пишет комплексные тест-сьюты, покрывающие граничные случаи и обработку ошибок DSL. | |
| Systems Programmer (C/C++) | Реализует встроенные DSL для описания аппаратуры и задач конфигурации систем. Строит интерпретаторы DSL с правильным скоупингом, проверкой типов и отчётами об ошибках. Пишет компиляторные тесты, обеспечивающие корректность трансляции DSL в нативный код. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Экспертно применяет dsl design skill для compiler engineer для проектирования сложных систем. Оптимизирует существующие решения и предотвращает архитектурные ошибки. Проводит code review и обучает коллег лучшим практикам. | |
| Language Tooling Engineer | Обязателен | Архитектурирует экосистемы DSL с компонуемыми грамматиками, системами типов и целями компиляции. Проектирует протоколы языковых серверов для поддержки DSL в IDE. Менторит команду по принципам проектирования языков и компромиссам пользовательского опыта. |
| Systems Programmer (C/C++) | Обязателен | Проектирует DSL для критичных к производительности доменов: сетевые правила, политики управления памятью. Архитектурирует компиляцию DSL в оптимизированный нативный код с абстракциями нулевой стоимости. Менторит инженеров по проектированию языков для контекста системного программирования. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Устанавливает стандарты применения dsl design skill для compiler engineer в команде и принимает архитектурные решения. Определяет технический roadmap с учётом данного навыка. Менторит senior инженеров и влияет на практики смежных команд. | |
| Language Tooling Engineer | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Systems Programmer (C/C++) | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Формирует стратегию применения dsl design skill для compiler engineer на уровне организации. Определяет best practices и влияет на выбор технологий за пределами своей команды. Является признанным экспертом в данной области. | |
| Language Tooling Engineer | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |
| Systems Programmer (C/C++) | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |