Домен
Компиляторы и языки
Профиль навыка
Лексический и синтаксический анализ: токенизация, LL/LR/PEG парсеры, ANTLR
Ролей
3
где встречается этот навык
Грейдов
5
сформированная дорожка роста
Обязательных требований
11
ещё 4 — необязательные
Компиляторы и языки
Теория компиляторов
17.03.2026
Выберите текущий грейд и сравните ожидания. Карточки ниже покажут, что нужно закрыть для следующего уровня.
Таблица показывает, как меняется глубина владения навыком от Junior до Principal.
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Знает основы лексического анализа: токенизация исходного кода, регулярные грамматики и конечные автоматы. Умеет реализовать простой лексер вручную, понимает разницу между лексером и парсером на практике. |
| Language Tooling Engineer | Понимает основы лексеров/парсеров: токенизацию, правила грамматики и построение AST. Пишет простые лексеры с регулярными выражениями и модифицирует существующие правила парсера для языковых инструментов. | |
| Systems Programmer (C/C++) | Понимает базовые концепции лексического анализа и парсинга: токены, грамматики и деревья разбора. Читает и отслеживает существующий код лексера/парсера для понимания pipeline обработки языка. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Реализует LL(k) и LR парсеры, строит AST для языков программирования. Использует генераторы парсеров (ANTLR, yacc/bison). Обрабатывает синтаксические ошибки с error recovery стратегиями. |
| Language Tooling Engineer | Реализует парсеры рекурсивного спуска и PEG для DSL. Строит механизмы восстановления после ошибок для частичного парсинга в поддержку функций IDE. Генерирует потоки токенов с подсветкой синтаксиса из вывода лексера. | |
| Systems Programmer (C/C++) | Реализует лексеры и парсеры для системных языков с инструментами flex/bison или ручным рекурсивным спуском. Обрабатывает приоритет операторов, разрешение неоднозначностей и эффективную буферизацию токенов. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Проектирует полный frontend компилятора: лексер, recursive descent парсер, AST builder. Реализует Pratt parsing для operator precedence. Оптимизирует производительность парсинга для больших кодовых баз. |
| Language Tooling Engineer | Обязателен | Проектирует архитектуры инкрементального парсинга (в стиле tree-sitter) для обратной связи редактора в реальном времени. Реализует композицию грамматик для встроенных языков и оптимизирует производительность парсера для больших исходных файлов. |
| Systems Programmer (C/C++) | Обязателен | Проектирует архитектуры front-end компилятора с генераторами лексеров и GLR/Earley-парсерами для сложных грамматик. Реализует трансформации с сохранением source map и менторит команду по теории формальных языков. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Определяет архитектуру frontend для нового языка или диалекта, принимает решения о грамматике. Устанавливает стандарты качества парсера в команде, проводит code review с фокусом на correctness. |
| Language Tooling Engineer | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Systems Programmer (C/C++) | Обязателен | Определяет архитектуру компилятора. Формирует стандарты разработки. Координирует compiler team. |
| Роль | Обязательность | Описание |
|---|---|---|
| Compiler Engineer | Обязателен | Формирует технические стандарты языкового frontend для платформы. Исследует и внедряет передовые методы парсинга (Earley, PEG, GLL). Публикует open source решения и влияет на tooling ecosystem. |
| Language Tooling Engineer | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |
| Systems Programmer (C/C++) | Обязателен | Определяет стратегию развития компилятора/языка. Проектирует core language features. Формирует technology vision. |