C++ лекции на русском языке - видео - все видео
Новые видео из канала RuTube на сегодня - 20 April 2026 г.
Новые видео из канала RuTube на сегодня - 20 April 2026 г.
Timeline 00:00 Введение. Инварианты классов. 07:58 Инкапсуляция и ряд смежных наблюдений. 14:23 Big-5 и безопасность исключений. Изобретаем RAII. 25:15 RAII и Value-семантика. Мотивируем std::polymorphic. 37:43 Детали std::polymorphic и делаем систему открытой. 43:20 Немного о некопируемых типах. RVO. 50:03 Некоторые советы по работе с unique pointers. 55:26 PImpl и мотивация для std::indirect. 58:32 Shared pointers и их проблемы. 01:03:25 Завершение: пара слов про интрузивные указатели, литература, первые пара вопросов.C++ bachelor: lambdasC++ bachelor LLVMC++ bachelor deductioncompilers-2025-funcoptC++ bachelor, sfinae+metaC++ bachelor, sfinaeC++ masters threads-2C++ masters threads-1OpenCL и шаблоны C++Эта лекция посвящена клеточным автоматам и рождению сложности из простоты. Лекторы: Константин Владимиров, Тимур Голубович Дата лекции: 23 декабря 2024 года Съёмка и звук: Юлий Тарасов Слайды к лекциям автора по логике и вычислимости: https://sourceforge.net/projects/cpp-lects-rus/files/logic Timeline 00:00 Введение. Представление Тимура 01:50 Проблема соответствия Поста 13:10 Булевы функции и машинки Кнута 19:20 Игра "Жизнь" 23:50 Одномерные автоматы и классификация процессов 34:03 Микрофон переходит к Тимуру: снова Машины Тьюринга 36:30 Системы тегов 42:47 Циклические системы тегов 47:17 Системы глайдеров и проблемы установления эквивалентности клеточных автоматов 51:03 Язык глайдеров и последовательности де Брёйна 59:25 Почти раскрытая тайна эфира и завершение Errata: * тут пока пустоЛекция в Школе Молодых Учёных конференция Микроэлектроника, Сириус. Лектор: Константин Владимиров Видео и звук: Альянс RISC-V Timeline 00:00 Тулчейны 06:08 RISC-V 13:48 Библиотеки 18:25 Оптимизации LLVM IR 27:28 Машинно-зависимые оптимизации 31:33 Линкеры и релаксации Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. Пришла пора разрушить то, что мы так тщательно строили и чем так долго пользовались. Это будет не так просто и процесс будет иметь некоторые нюансы. И, конечно же, после разрушения SSA представления, нам всё ещё будет чем заняться. Например распределением регистров, рематериализацией значений, планированием инструкций и разрывание антизависимостей. Мы увидим как отлично зарекомендовавший себя в выборе инструкций подход через квадратичное булево программирование поможет нам с иррегулярными архитектурами. В конце нас ждут последние задания и последняя литература. На этом с вами прощается курс, но, конечно не компиляторная теория. Она гораздо глубже, богаче и интересней, чем это поверхностное введение и ей легко можно посвятить много лет или даже всю жизнь. Теперь, когда вы в общих чертах понимаете что именно делает оптимизирующий компилятор, вы готовы к этому путешествию. Возьмите с собой в эту дорогу этот курс и написанную автором курса книгу. И я надеюсь вам понравилось. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/000c34fb9c7107f443b0caaa7a29275b/ Следующая лекция: нет, это последняя лекция Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 Семантические сети 06:50 Разрушение SSA 11:46 Распределение регистров 16:10 Спиллы и рематериализация 25:51 Линейное сканирование 29:40 Нерегулярные архитектуры и PBQP 35:05 Планирование инструкций 42:54 Антизависимости 47:35 Планирование критического пути 53:28 Задачи и литература Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. На этой лекции мы познакомимся с проблемой выбора инструкций -- перехода от высокоуровневого к низкоуровнему промежуточному представлению. Мы узнаем не менее четырёх NP-сложных задач (и некоторые более сложные) а также два вида низкоуровневого представления и несколько смелых алгоритмов. Самое красивое что нас ждёт это конструкция Пробстинга и внезапная связь выбора инструкций с проблемой вычислимости булевых формул. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/26054b88c9ae1760cfd3244a369ae7ae/ Следующая лекция: https://rutube.ru/video/private/7396f97feffd6f971570fe1bc38de413/?p=-ygBxaMcPGErpLtmzS2P6A Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 Low-level IR 06:25 Selection DAG 13:05 SDHIR и легализация 20:15 Instruction Selection в LLVM 33:30 Выбор инструкций 36:45 SAT и конструкция Пробстинга 44:10 PBQP для выбора инструкций 50:40 GLIR и Global ISel 55:00 Задания и литература Errata * пока пустоC++ bachelor, design-2Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ. На этой лекции мы выходим на вершину курса -- в смысле высокоуровневости оптимизаций. Настало время посмотреть что компиляторы делают с целыми функциями. В первую очередь это инлайн и тесно с ним связанная девиртуализация. Кроме того мы рассмотрим работу с графом вызовов, клонирование функций и межпроцедурное распространение информации. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/339ee2a715b0bceabf22cecd3db6f9fb/ Следующая лекция: https://rutube.ru/video/000c34fb9c7107f443b0caaa7a29275b/ Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 Связывание функций 08:00 Граф вызовов 13:50 Клонирование функций 20:52 Эвристики 30:50 Инлайн 39:08 Девиртуализация 51:37 Хвостовая рекурсия 58:28 Заключение Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. Здесь мы остановимся на основных оптимизациях циклов и попробуем их уложить в некую систему. Основными осями этой системы будут обработка индуктивностей и обработка инвариантов. Мы разберём LSR, раскрутку циклов, их пилинг и многое другое. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/74991603431c25f8d08631b6a5c8e2bf/ Следующая лекция: https://rutube.ru/video/26054b88c9ae1760cfd3244a369ae7ae/ Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 Loop Strength Reduction 06:41 Раскрутка циклов 14:55 Инварианты и LICM 21:53 Квазинварианты, пилинг и VDG 39:33 Fusion for Reuse 47:49 Структурные оптимизации 51:28 Прагмы, задачи и заершение Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. Вы же всегда хотели узнать в чём разница между обратными и обращёнными дугами и чем цикл в компьютерной программе отличается от цикла в графе? А чем сводимый граф отличается от не сводимого? А как насчёт поиска базовых индуктивностей и скалярной эволюции? Конечно же вы всегда хотели. В этом видео вы получите всё перечисленное и немного больше. И даже немного про алгебру цепочек рекуррентностей. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/62a76dc317939e381df018f6a61be6e0/ Следующая лекция: https://rutube.ru/video/339ee2a715b0bceabf22cecd3db6f9fb/ Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 Циклы и обратные дуги 08:45 Обходы графов и RPO 18:30 Обращённые дуги и сводимость 27:04 Каноническая форма циклов 40:25 Индуктивности 52:42 Скалярная эволюция 01:01:16 IV opts и завершение Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. Настало время познакомится с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум базовым идеям: продвижению информации вниз по графу потока управления (constant propagation, copy propagation, value range propagation) и удалению избыточности (global value numbering, partial redundancy elimination). Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/00ea76b6e9c1406fdc7814ab16ce1c8d/ Следующая лекция: https://rutube.ru/video/74991603431c25f8d08631b6a5c8e2bf/ Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 SSA Framework 10:22 Граф зависимостей и алгоритм SCP 16:22 SCCP и прочие продвижения 29:30 Глобальная нумерация значений 39:15 Более эффективное разбиение блоков 47:24 PRE: устранение (частичной) избыточности 01:01:25 Задачи и список литературы Errata * пока пустоЛекции по компиляторам для свежих интернов базовой кафедры в МФТИ. На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями как доминаторы, фронт доминирования и дерево доминаторов. Лектор: Константин Владимиров Видео и звук: Юлий Тарасов Предыдущая лекция: https://rutube.ru/video/6753137f2fe26ea94101956c5ac2f4e4/ Следующая лекция: TBD Слайды к занятиям: https://sourceforge.net/projects/cpp-lects-rus/files/compilers/ Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667 Timeline 00:00 SSA представление 09:20 Наивный способ построения 13:30 Доминаторы 19:40 Деревья доминаторов 23:20 Фронт (граница) доминирования 30:05 Построение фронта доминирования 34:30 Итерированный фронт доминирования 42:40 Построение SSA в LLVM IR 49:56 Задачи Errata * пока пусто