Comments 5
Есть у этих авторов еще более классическая книга, двухтомник "Теория синтаксического анализа, перевода и компиляции"
Спасибо за статью!
Верно ли я понимаю, что для поддержки своего языка/диалекта в IDE достаточно написать один grammar файл, и, в целом, даже без LSP можно ожидать норм подсветку и автокомплит минимальный?
GCC и LLVM уже давно синтаксис в абстрактный assembler переводят. Создать очередной "убийца С/С++" можно за выходные. Но без адекватной модульной системы и сборочного конвейера "убийца" сдохнет сам.
Рекомендую посмотреть Yacc, Bison, ANTLR для нового уровня разбора файлов-конфигов ;)
Автор статьи делает распространённую ошибку: он не видит разницы между созданием языка и созданием компилятора. Об этом свидетельствуют даже заголовки типа "Создание языка в шесть шагов. Шаг 1: из текста в синтаксическое дерево". А если я пишу компилятор Си и мой первый шаг – это "из текста в синтаксическое дерево", то я создаю язык Си? Или я создаю компилятор? Если, допустим, Вася Пупкин написал компилятор Кобола, то создал ли он язык Кобол? Или его создала Грейс Хоппер?
Создание языка заканчивается описанием его синтаксиса и семантики. Описание может быть формальным (в каком-то документе), формализованным (например, в виде входного файла для генератора компиляторов) или неформальным. А компилятор — это лишь программная реализация этих описаний.
Ну... Спасибо за труд переводчика и оформления поста, но по содержанию это еле-еле уровень песочницы.
Следующий пост на перевод:
"Создание операционной системы с нуля"
КПДВ: книга Таненбаума
Текст: рассказываем про файловую систему, загрузчик, в конце создаём загрузочную флешку
Каково это, создавать язык программирования сегодня?