Clang internals (in Russian)

preview_player
Показать описание
Эта лекция посвящена внутреннему устройству Clang, взаимодействию его компонентов и совсем немного тому, как вы можете использовать Clang, создавая собственные инструменты и переиспользуя его возможности

Следующая лекция: TBD

Лектор: Константин Владимиров

Дата лекции: 26 июня 2021 года
Съёмка и звук: Дмитрий Рябцев

Timeline

00:00 Введение. Выкачивание и сборка
03:15 Кланг как драйвер и фронтенд
10:24 Концепция "действий" и детали работы драйвера
18:50 Детали работы фронтенда: иерархия действий
31:14 Лексер и препроцессор
43:39 Синтаксический разбор и деревья
54:40 Семантический анализ
1:00:30 Устройство AST
1:09:52 Идея "визитора" по дереву
1:19:00 Введение в инструментирование
1:26:23 Матчеры
1:35:04 Кратко про плагины и libclang
1:39:14 Домашнее задание и обзор литературы

Errata:
* Опечатка на схеме 1:25:00 должен быть Consumer вместо Customer
Рекомендации по теме
Комментарии
Автор

Супер лектор! Видно что человек горит C++: шутки про инициализацию, про C dynamic asserts. Ну знаете бывает препод преподает материал допустим квантмех и звучит это так: "скука скука формула ну в общем интересно всё таки реальный мир", а бывает препод преподает: "формула вау формула вау крутяк это же квантмех описывающий реальный мир" и ещё мысли не как набор фактов, а как следствие рассуждений во время лекции, оба подхода несомненно представляют одно и то же но 2 как-то живее и у вас 2-рой :)

anoona
Автор

Спасибо Вам большое за такие замечательные, интересные лекции!

pavelrid
Автор

Спасибо огромное. Диаграммы -- простая вещь, но гениальная. Не хватало обзора всего проекта в целом. По кусочкам собираю информацию то из исходников, то из обзоров, то из документации. Приятно посмотреть, как другой человек приходит к тому же, к чему и ты, ещё и дополнительно проясняет картину. Спасибо.

artemhevorhian
Автор

В общем, чтобы понять исходники clang'а нужен анализатор кода, а чтобы сделать анализатор кода нужно понять исходники clang'а

FeelUs
Автор

Дорогой Константин! Какие работы Вы назвали бы основополагающими (дефинитивными) по CRTP? Coplien (1995), Abrahams, Gurtovoy (2004)? На последнюю работу часто ссылаются, упоминая CRTP. Может быть Вам попадались полезные и подробные работы на эту тему.

rizla-vx
Автор

а в каком файле исходников находится main(argc, argv) ?

FeelUs
Автор

What's the best university for computer science in St. Petersburg?

MrYassine
Автор

Костя, сделай что-нибудь со светом (-:

victormustya
Автор

А не планируются лекции по rust? Или хотя бы какой-то общий обзор, Ваше мнение о языке или типа того

nikitaq
Автор

Привет, а где-то возможно найти код с лекции?

osrbkv