Лекции в бакалавриате МФТИ по C++ на русском языке.
В этой лекции мы поговорим о том как устроены формальные грамматики, что такое контекстная свободность и о том какие бывают парсеры. Далее мы изучим bison в том числе в его взаимодействии с flex. Ну и под конец увидим, что проектирование компилятора это отличная возможность попрактиковаться в ООП.
Дополнительно рекомендуется лекция по автоматам: [ Ссылка ]
Лектор: Константин Владимиров
Дата лекции: 15 ноября 2021 года
Съёмка: Владислав Белов.
Звук: Дмитрий Рябцев.
Предыдущая лекция: [ Ссылка ]
Следующая лекция: [ Ссылка ]
Слайды ко всем лекциям: [ Ссылка ]
Примеры кода ко всем лекциям: [ Ссылка ]
Timeline:
00:00 Вспоминаем лексеры
11:06 Грамматики
24:24 Вывод и неоднозначность
35:00 Рекурсивный спуск LL(k)
43:30 Парсер для LL(1)
52:10 Восходящий разбор и bison
1:03:00 Взаимодействие bison и flex
1:10:00 shift/reduce конфликты и исправляем грамматику
1:20:25 Реалистичный парсер для ParaCL
1:30:55 Немного о проектировании и литература
Errata:
* Тут пока пусто
Ещё видео!