Домен
Компиляторы и языки
Профиль навыка
AST: построение, обход, трансформация; IR: SSA, CFG, промежуточное представление
Ролей
3
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
11
ещё 4 — необязательные
Компиляторы и языки
Теория компиляторов
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Понимает структуру Abstract Syntax Tree и умеет рекурсивно обходить дерево. Применяет visitor паттерн для простых трансформаций. Знает основные типы узлов AST для популярных языков. |
| Language Tooling Engineer | Разбирает простой код в AST-узлы с помощью библиотек парсинга. Понимает основы обхода деревьев и типы узлов. Пишет простые AST-визиторы для задач анализа кода под руководством наставника. | |
| Systems Programmer (C/C++) | Читает и навигирует по AST-структурам, сгенерированным фронтендами компиляторов. Понимает соответствие между исходным кодом и IR-представлениями. Модифицирует простые IR-трансформации по установленным паттернам. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Реализует сложные трансформации AST: constant folding, dead code elimination, inlining. Использует babel/typescript compiler API для трансформации кода. Пишет плагины для ESLint и TSC. |
| Language Tooling Engineer | Реализует AST-трансформации для инструментов рефакторинга и линтеров. Строит оптимизации на уровне IR: свёртку констант, удаление мёртвого кода. Пишет комплексные тест-сьюты для проверки корректности работы с деревьями. | |
| Systems Programmer (C/C++) | Реализует IR-проходы для оптимизации и понижения уровня в компиляторных пайплайнах. Работает с SSA-формой и графами потока управления для анализа программ. Пишет регрессионные тесты, обеспечивающие корректность трансформаций на граничных случаях. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Проектирует пайплайн AST трансформаций для оптимизирующего компилятора. Реализует type checking и name resolution на уровне AST. Строит Symbol Table с корректным scoping. |
| Language Tooling Engineer | Обязателен | Проектирует AST-фреймворки для функций IDE: автодополнение, семантическая подсветка. Архитектурирует инкрементальный парсинг и type-aware трансформации. Менторит команду по методам анализа программ на основе деревьев. |
| Systems Programmer (C/C++) | Обязателен | Проектирует кастомные IR-представления, оптимизированные под целевые архитектуры. Архитектурирует многопроходные компиляторные пайплайны с продвинутыми оптимизациями. Менторит инженеров по интеграции систем типов и доказательствам корректности IR. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Архитектурирует систему AST трансформаций для компиляторного проекта. Принимает решения об IR представлении и оптимизационных проходах. Внедряет тестирование трансформаций. |
| Language Tooling Engineer | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Systems Programmer (C/C++) | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Определяет стратегию IR design для компиляторной платформы. Исследует новые подходы к AST representation (algebraic effects, ANF, CPS transform). Влияет на roadmap компилятора. |
| Language Tooling Engineer | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |
| Systems Programmer (C/C++) | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |