Профиль навыка

AST и IR Manipulation

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.

Сообщество

👁 Следить ✏️ Предложить изменение Войдите, чтобы предлагать изменения
📋 Предложения
Пока нет предложений для AST и IR Manipulation
Загрузка комментариев...