C++ and other lectures
8.48K subscribers
39 photos
2 files
210 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Выступил на конференции Аскон. Конференция была внутренняя (только для сотрудников компании), а я был приглашённым спикером. Слот выдали небольшой, но в пленарной части, что уважительно само по себе. Плюс моё выступление мне разрешили выложить у себя, за что особенное спасибо.

Что можно успеть за 20 минут? Я попробовал успеть небольшой спидран по тому, что каждый программист должен знать про то, почему компиляторы могут оптимизировать вообще и какие оптимизации лучше держать включёнными. Материал частично пересекается с выступлением на SnowOne, но там я много говорил о сравнении с динамическими языками, подробно и академично, а здесь своего рода выжимка. Мне кажется -- довольно полезная.

Судя по всему, остальные доклады с конференции никуда вовне не выложат, что жаль, там были интересные.

https://youtu.be/YfgwPY5FulY

P. S. SnowOne тоже скоро будет, возможно уже вот-вот.

#conference
👍111🔥3914😱2
Выложили мой доклад на конференции SnowOne. Кажется он получился довольно удачным. Я подробно обсудил чем статически компилируемые языки такие как C++ отличаются от динамически компилируемых, таких как Java. Отдельно остановился на разгадке того факта почему в Java нет UB и привёл пример из C++ где по той же логике в C++ нет UB.

https://www.youtube.com/watch?v=fAZSIAsKarc

00:00 Введение.
08:18 Абстрактная машина языка и as-if rule.
16:44 Трансляционная семантика и виды поведения программ.
25:10 Борьба против UB это борьба против производительности.
35:20 Смешение трансляции и исполнения.
43:10 Резюме, выводы и ответы на вопросы.

#conference
👍94🔥289👏41👀1🦄1
Выложили самый важный мой доклад этого года про модули в C++.

Он оформлен в виде сказки про кашу из топора. Вы все знаете эту сказку, но я расскажу её по новому.

https://www.youtube.com/watch?v=LvRQH8Gkl1E

00:00 Начало
03:30 Дисциплина для меньшей сложности
07:30 Компонентный подход
11:50 Появление топора: precompiled headers
17:30 Кусочек мяса: контроль экспорта и модули
27:05 Немного крупы: транзитивный импорт
32:54 Кусочек масла: глобальный фрагмент
42:40 Финальный рецепт и ответы на вопросы

Давайте приложим силы к тому, чтобы модули стали былью.

Альтернативная ссылка: https://vkvideo.ru/video-77278886_456239996

Презентация: https://jrg.su/3bcqzV

#conference
🔥157👍28223
Провёл гостевую лекцию в Йошкар Оле в институте iSpring. Было довольно много народа (и невероятно огромный зал, прикладываю отдельно фотку левой и правой частей). Как обычно, очень порадовали студенты как отличными ответами на мои вопросы так и своими вопросами мне.

Организаторы делали довольно профессиональную видеозапись. Возможно, скоро выложу.

После лекции ещё больше часа общались, довольно неплохо. Надеюсь всем тоже понравилось.

Огромное спасибо iSpring и лично Алексею Малову за приглашение и за то, что был также организован доступ студентам местного ПГТУ (поволжского государственного). Алексей на одной из фоток. К слову он, кроме основной работы, также преподаёт информатику в местном универе и у него есть ютуб канал с лекциями: https://youtube.com/@vividbw

Следующий в планах Великий Новгород 7-го июня, гостевая лекция в Школе 21. Более подробно ближе к дате.

#author_event
93👍51🔥20
Выкладываю запись своего выступления в институте iSpring 17 мая 2025 года. Огромная благодарность организаторам за приглашение и за разрешение выложить запись на моём канале.

https://youtu.be/A9B2_rAPCmw

В этой лекции мы поднимемся от самого нижнего уровня -- отдельных транзисторов до высокоуровневых языков программирования и проследим совместное развитие механизмов абстракции и инструментов разработки.

00:00 Начало: бинарные цифровые компьютеры
06:00 Мнемоническое представление и проблемы двоичного кода
14:10 Релокации и изобретение линкера
17:25 Язык ассемблера, секции и ассемблер как программа
24:30 Дизассемблер.
30:25 ABI и соглашения о вызове
35:35 Библиотеки
40:55 Проблемы ассемблера
48:10 Алгоритмические языки и компиляторы
54:45 Компилятор и его ограничения
01:03:40 Оптимизации в бэкенеде: inline и LTO
01:15:00 Гарантии по именам и механизмы абстракции
01:19:55 Завершение: абстракции не случайны

P. S.

Также есть несколько фанатский контент: та же лекция в ННГУ. Там несколько хуже монтаж, но она создаёт представление о том как я читаю одну и ту же лекцию для двух разных аудиторий: https://youtu.be/S-qSU6jau2M

#toolchain
64🔥37👍16🏆4🤓2😢1
Выложили наш с Настей Черниковой доклад на Positive Hack Days "Опен-сорс от кристалла до программного стека".

Своего рода сборная солянка, многое из этого вы уже видели в других докладах на этом канале.

Но акценты смещены и добавлена новая большая часть про конвейер, интерфейсы и открытые ядра в исполнении Насти (см. с 5-й до 20-й минуты примерно), вот это стоит посмотреть.

https://youtu.be/b_YaT_o463o

00:00 Введение. Архитектура RISC-V, открытая и расширяемая (sigh).
05:38 Стадии конвейера и интерфейсы.
13:37 Открытые ядра на базе RISC-V, тестовое окружение и проблема верификации
19:14 Компиляторные технологии и LLVM
24:46 Моделирование и верификация RISC-V на разных уровнях и llvm-snippy
29:17 Задача бенчмаркинга и llvm-exegesis
34:24 Проблема высокоуровневого ПО, профили и развитие экосистемы
41:15 Ответы на вопросы

Альтернативная ссылка:

https://vkvideo.ru/video-28022322_456241183

#conference #riscv
🔥78👍1712👏1😍1
Продолжаю выводить в свет своих учеников и коллег. На этот раз на C++ митапе Yadro я выступил вместе с Ильёй Андреевым -- старшим инженером в моей команде, работающим много над чем и в том числе над девиртуализацией в Syntacore Devtoolkit. Для Ильи это первое выступление и, мне кажется, получилось отлично.

Мы рассмотрели вопросы девиртуализации -- сначала простые случаи, разобранные, в частности, в моей книге, а дальше более интересные алгоритмы, которые способны работать в сложных случаях и давать отличный прирост производительности. Не обошлось без починки странных примеров добавлением одного символа и без далеко идущих выводов относительно вашего кода.

https://www.youtube.com/watch?v=egdhQOQsj_Q

00:00 Начало. Два полиморфизма.
05:15 Обратите внимание: мы с Ильёй отлично знаем про виртуальные деструкторы. На дальнейших слайдах их нет для экономии места.
05:44 Виртуальные функции это дорого?
09:25 Две девиртуализации.
13:15 Совместная работа оптимизаций в компиляторе, моя книжка и sc-dt, над которым мы с Ильёй работаем. Концепция VCT.
17:35 Появление Ильи. Что если убрать виртуальные функции: идеи вокруг std::variant.
22:50 Погружение в таблицы виртуальных функций.
27:30 Идея и алгоритм спекулятивной девиртуализации в компиляторе.
33:05 Один очень интересный случай когда она может не сработать
35:15 Бенчмаркинг и выводы
39:15 Вопросы из зала

Альтернативная ссылка: https://rutube.ru/video/fe56f9b56f6caa6943465b1568c490d1

P. S. В ближайшее время будет пост про предстоящие встречи с читателями, в частности про встречу в Екатеринбурге, там назначили дату и место.

#conference
🔥67👍2722
Провёл лекцию и встречу с читателями в Школе 21 в Великом Новгороде. Качество фото увы, зато солнце приятно освещало амфитеатр.

Отличный зал, замечательный город, местные ребята и девушки очень интересуются программированием. После лекции (увы записи не было) обсудили широкий круг вопросов, таких как проблемы наказания нейросетей, пределы возможностей компиляторов к алгоритмической оптимизации и необходимость для разработчика знать своё железо.

Возможно покидаю в комментарии путевых заметок.

P. S. С Екатеринбургом пока всё сложно. Там кое-что сорвалось, но надеюсь встреча 13-го всё же будет.

#author_event
64👍29🔥12👏3🤯2😢1😍1💋1
Всем привет. Я всё-таки еду на Урал. Небольшая лекция и встреча с читателями состоится 13-го июня в Екатеринбурге в 19 часов. Примерно час на лекцию и час на ответы на вопросы, как обычно по широкому кругу тем.

Площадку предоставляет Библиотечный Центр «Екатеринбург».

Обязательная регистрация (бесплатно): https://bce.timepad.ru/event/3413045/
Дата и время: 13 июня 19:00–21:00
Адрес: Библиотечный Центр «Екатеринбург», ул. Мамина-Сибиряка, 193

Обращаю внимание: купить книгу на месте будет нельзя, приносите с собой.

На Урале я после этого скорее всего буду не скоро, так что обязательно приходите.

#author_event
👍71🔥274🆒1
Провёл встречу с читателями в Екатеринбурге. Пришли люди из местного УрФУ, приехали из Челябинска и из Тагила и из других городов. Было много народа, очень хорошая аудитория. Увы, было жестко лимитированное время, так что мне показалось, что немного не договорили.

Тем не менее, был прекрасный живо реагирующий зал, интересные вопросы, мне очень понравилось. Обсудили перспективы формальной верификации компиляторов, причины будущего успеха убийцы языка Раст и управление зависимостями в C++. Ну и про компиляторы поговорили. Записи, увы, не было.

К слову в "Библиотечном центре Екатеринбург" отличная площадка, большое спасибо за неё.

Кроме того, люди из УрФУ сказали что просто не знали, что меня можно позвать с гостевой лекцией и осенью возможно позовут.

Екатеринбург очень хорош и я по нему очень приятно погулял в отличной компании. Путевые заметки скину в комментарии.

Список из прошлого опроса исчерпан, так что скоро сделаю новый опрос по дальнейшим поездкам ))

#author_event
73🔥40👍23👌1🍓1
Please open Telegram to view this post
VIEW IN TELEGRAM
🤷18🔥52😱1
Принял вчера экзамен по C++ у магистрантов на физтехе. Из 17 человек в ведомости, 6 сдали на оценку "отлично", это прекрасный результат для группы.

Есть ли на канале те, кто весь год смотрел (немного обновлённый) магистерский курс по ссылкам в дискорде (или даже лично ходил, т.к. у меня были вольнослушатели в аудитории) и теперь хочет сдать экзамен?

По хорошей традиции (см. https://t.me/cpp_lects_rus/106 и далее) я устраиваю пиринговые экзамены для всех желающих. Это когда вы пишете задание и оно отправляется на проверку двум другим людям сдающим экзамен и вам тоже приходят два задания от других людей сдающих тот же экзамен. Вы проводите ревью и ставите две оценки. Очень важны обе фазы -- вам нужно и хорошо написать экзамен и потом качественно провести ревью (это не значит занизить оценку). Вы сами получаете за каждый вопрос среднее из двух оценок которые вам поставили другие люди.

Задание будет состоять из двух задач. Одна вида "спроектируйте класс" (нечто многопоточное или с умными указателями или с аллокаторами или всё вместе), другая вида "напишите код" (обычно что-то с корутинами или параллелизмом или всё вместе). Решения вы пишете на годболте и отлаживаете до минимальной работоспособности.

Четыре часа на выполнение, потом четыре часа на кросс-проверку. На прошлом пиринговом экзамене люди очень жаловались на нехватку времени, но мне кажется уложиться реалистично, да и современные нейросети могут очень сильно помочь. Ну и потом это же экзамен, он должен быть сложным и стрессовым. В процессе решения, как вы догадываетесь, можно подглядывать куда угодно, а также использовать любые материалы и любые инструменты.

Регистрация: https://forms.gle/fQbF9wCjcPmeeX7P7

Зарегистрироваться можно до 12 часов понедельника 16-го июня. Дата проведения: суббота, 21 июня. Будет отдельный чат для сдающих, поэтому в анкете я прошу ссылку на телеграм.

#official
88🔥28👍19😱10😢1
Всем привет. Немного о ближайшем и повседневном.

1. 5 июля в 14 часов я провожу встречу с читателями в Казани в магазине "Книга плюс" (ТРЦ Южный, Проспект Победы, 91). Никакой формы для записи организаторы не дали, так что пока записывайтесь по моей чтобы я примерно знал чего ждать по посещаемости.

https://forms.gle/fZTnAeuFTZTKwgzQA

2. Открыт набор в летний лагерь Неймарк для 9-11 классов. Участие бесплатное, но есть отбор. Я скорее всего приеду туда выступить перед подрастающим поколением где-то в июле.

https://neimark-it.ru/camp2025

3. Сделал плейлист из своих выступлений на конференциях. Если было несколько дубликатов по темам, я оставил лучшее из. Буду его пополнять.

https://www.youtube.com/playlist?list=PL3BR09unfgcgT5av9JVYlcuE84RgXkRss

4. Подал заявку на Zero Cost Conf, которая будет где-то в конце июля в Москве. Участие бесплатное, но есть отбор. Всех буду рад там увидеть, можно будет пообщаться и подписать книги кто в Москве ещё не успел.

#author_event #conference #official
🔥78👍105👏4😱2👎1
Всем привет. Включил новую телеграмную штуковину direct messages, разумеется бесплатно. Её можно и нужно использовать для предложений по каналу в целом. Например если вы очень хотите видеть какой-то пост или какую-то лекцию, напишите туда. У меня раньше был для этого пост, теперь я его удалю т.к. это стало удобнее через официальный механизм. Также обновлю закреп.

Для тех кто не может найти: заходите на канал https://t.me/cpp_lects_rus и жмёте значок сообщения внизу слева. Большая просьба не писать бессмысленных сообщений вроде "Привет", а сразу переходить к делу.

Есть ещё одна штука которую давно хотел: говорят с достижением каналом так называемого "уровня 50" можно отключить рекламу чтобы её не видел никто, а не только платные пользователи. Проблема в том что дойти до этого уровня почти нереально, нужна тонна бустов. А ничего полезного кроме этого бусты не дают кроме всяких сторисов (тех, кто постит сторисы, я лично считаю электросамокатчиками) обложечек и новых смайликов. Так что тут пока даже не знаю.

#official
🔥92👍1916😁7👾3👌2🦄2