C++ and other lectures
رفتن به کانال در Telegram
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir Boosty автора: https://boosty.to/cpp_lects_rus
نمایش بیشتر9 608
مشترکین
اطلاعاتی وجود ندارد24 ساعت
+137 روز
+10330 روز
آرشیو پست ها
Вернулся из Новосибирска.
Ссылку на выступление на конференции SnowOne выложу отдельным постом, когда она появится.
Выступление, кажется, удалось, по крайней мере после выступления я почти час общался с довольно плотной толпой студентов и не только студентов, то есть многих тема заинтересовала.
Точно также удалась встреча с читателями, видеозаписи увы не было. Но тоже проговорили два с половиной часа, даже больше. Тем кто фоткал, фотографии можно выложить в комментариях к этому посту, я тоже выложу.
Небольшие путевые заметки, коротко.
1. Очень хороший уровень аудитории, вопросы интересные и жизненные. И на студенческом дне SnowOne и на встрече с читателями мне очень понравились люди. В них видно и достаточное стремление к знанию и неплохая базовая подготовка.
2. Новосибирск оказался прекрасным городом. Конференция была в академгородке, он на меня впечатления не произвёл. А вот встреча с читателями была уже в самом городе и я потом использовал все возможности чтобы максимально по нему погулять. Даже перешёл в полночь Обь по мосту (в хорошей компании разумеется). Масштаб Новосибирска это даже не Нижний (чего я ожидал), это что-то вроде Москвы: широкие проспекты, соразмерные основательные здания, выстроенные по канонам классицизма, обилие интересных мест. Умилили ностальгические ларьки а-ля девяностые, в том числе в переходах. Мне теперь хочется как-нибудь приехать на недельку-другую, может быть лучше летом.
3. Настоящая зима это замечательно. Возврат к Московской слякоти от честных -12 и похрустывающего снежка, как-то печален. Я вообще люблю Москву, но мы здесь стали забывать какой бывает зима. Ничего, я думаю в марте ещё вспомним, он только начался.
Хочется поблагодарить организаторов SnowOne за такую прекрасную возможность повидать Сибирь и за подаренные мне валенки. Также хочется поблагодарить дирекцию магазина Книжный Бункер. Очень милые и приятные люди, сделали всё чтобы моя встреча с читателями прошла идеально. Впереди Минск, детали распишу позднее.
#conference
Всем привет. Немного апдейтов по текущим моментам.
В пятницу 28-го февраля выступаю в Новосибирске на студенческом дне SnowOne, рассказываю про странные ограничения статических компиляторов.
https://snowone.ru/talks/aa356d242b8844af918d2da3a0d69629/
В субботу 1 марта в Новосибирске встреча с читателями в 16-00 в магазине "Книжный бункер", всех жду.
Кроме того приближается конференция C++ Russia где мне дали завершающий персональный слот для доклада про модули в C++. Получится так, что конференцию откроет Полухин и закрою я. Тоже очень приятно и программа тоже уже доступна https://cppconf.ru/talks/c04f2494ed2440619fcb6e9d7029f903
И разумеется sysconf: там слот не такой топовый но тоже отличный https://sysconf.pro/talks/d56e0032e52e4221a8e1fa3398e89477
Поступают вопросы почему меня нет в списке участников круглого стола по преподаванию компиляторов. Очень просто: потому что для C++Russia я считаю эту тему неподходящей, не относящейся к C++. Я с удовольствием поучаствовал бы в таком круглом столе на sysconf или любой другой конференции общего плана.
Поступают также вопросы не выдали ли мне что-то вроде промокода на билеты на C++Russia или sysconf с отличной скидкой. Конечно выдали. Детали в лс.
Также люди интересуются будут ли новые обучающие видео на канале и выкладка в телеграм. Будут, но мне надо наработать материал. Пока что не забывайте про регулярные дважды в неделю стримы у меня в дискорде. Мне кажется в этом году магистерский курс получается особенно позитивным.
Про встречу с читателями 15 марта в Минске напишу позже. Она будет, но там неожиданные приключения с местом проведения, вопрос решается.
Всех буду рад везде увидеть.
#official #conference
Запись встречи в Москве.
https://m.vk.com/video-39765083_456240979
Очень мило пообщались, было много людей и как обычно ещё два часа после завершения. Всем спасибо. Далее -- Новосибирск.
#official
Официальный пост для errata к книге "Оптимизирующие компиляторы, структура и алгоритмы".
https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667
https://www.litres.ru/book/konstantin-vladimirov/optimiziruuschie-kompilyatory-struktura-i-algoritmy-71185981/
И на курс к ней: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1
Пожалуйста сюда постите только конкретные баги, опечатки, грамматические ошибки и только с исправленного издания. Я тоже буду это делать ))
#official #compilers
Официальный пост для развёрнутых отзывов к книге "Оптимизирующие компиляторы, структура и алгоритмы".
https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667
https://www.litres.ru/book/konstantin-vladimirov/optimiziruuschie-kompilyatory-struktura-i-algoritmy-71185981/
И на курс к ней: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1
Отзывы не модерируются, комментарии к этому посту могут быть сколь угодно агрессивными и нелицеприятными (в обоих смыслах этого слова). Я буду тереть только откровенный спам и флуд либо оффтопик.
Не постите сюда конкретные баги, пост с errata будет следующим. Этот пост -- чисто поделиться впечатлениями.
#official #compilers
Всем привет. Кто завтра придёт если не сложно зарегайтесь вот тут: https://mdk-arbat.ru/events/detail/6144
Это не обязательно, но поможет сотрудникам сориенитироваться по местам, возможно притащить дополнительные стулья и т.д.
#official
Всем привет. Пост для errata к книге размещу на выходных. А пока давайте откалибруемся по дальнейшим встречам. Голосуйте только если придёте с очень высокой вероятностью.
#official
Провёл встречу с читателями в СПб. Прекрасные вопросы, отличные люди, мне всё очень понравилось. Вместо часа общение растянулось на 2.5 часа и даже небольшую фотосессию (где меньше людей т.к. многие ушли раньше).
Народу было человек 25-30. В тг в своё время проголосовали больше ста и я волновался что не поместимся. Зря волновался.
Видеозапись для гурманов: https://vkvideo.ru/video-32038_456241226
Почему то там в описании видео написано "лекция". Лекции собственно не было, не знаю зачем они так сделали ))
16 февраля -- Москва.
#official
Всем привет. Немного о ближайших публичных событиях с моим скромным участием.
* 2 февраля в 16 часов, Санкт-Петербург, "Буквоед", Невский 46, встреча с читателями.
* 16 февраля в 15 часов, Москва, Московский Дом Книги, Новый Арбат 8, встреча с читателями.
* 28 февраля, Новосибирск, выступаю на конференции SnowOne на студенческом дне, рассказываю про странные ограничения статических компиляторов.
* 1 марта в 16 часов, Новосибирск, "Книжный бункер", Геодезическая ул., 4/1, встреча с читателями.
* 20 или 21 марта, Москва, выступаю на C++Russia, рассказываю про модули в С++
* 22 марта, Москва, выступаю на SysConf Pro, рассказываю про компиляторные технологии в системной верификации.
Также подумываю где-нибудь в марте съездить на встречу с читателями в Минск, но пока не уверен в точной дате.
#official
Продолжаем разговорные жанры. Выступил на Pure Virtual Cast. Обсудили предстоящую конференцию, книгу и всякие общие вопросы.
https://www.youtube.com/live/c6eNjazhRCQ
Have fun.
#interview
Уважаемый подписчик Vadim Flyagin прислал ссылку на опен-сорсную книгу по C23 от одного из авторов нового стандарта языка C.
Я полистал, выглядит неплохим практическим пересказом стандарта. С неожиданно глубоким погружением в многопоточку,
https://gustedt.wordpress.com/2024/10/15/the-c23-edition-of-modern-c
Конкретная ссылка: https://inria.hal.science/hal-02383654v2/file/modernC.pdf
#c_graduate
В качестве, видимо, новогоднего подарка мне, на канале NDC выложили прекрасный доклад Шона Парента:
Locknote: Local Reasoning in C++ - Sean Parent - NDC TechTown 2024 https://youtu.be/bhizxAXQlWc
Ниже мой конспект этого доклада. Разумеется я также рекомендую вам посмотреть и составить собственное мнение, но может быть этот конспект поможет сделать правильные акценты, т.к. доклад сложный и насыщенный.
---
00:00 Failed software projects.
Когда проекты по разработке ПО проваливаются большинство исследователей винят менеджмент и процессы. Некоторые доходят до обвинения инструментов разработки и библиотек. Но очень часто виновато неправильное управление сложностью в разрабатываемой системе. Система может оказаться просто по своему построению слишком сложна, чтобы даже идеальная команда при идеальном менеджменте могла бы её отладить и поддерживать.
10:00 Local reasoning.
Что такое возможность рассуждать о свойствах программы локально? Это возможность убедиться в корректности части кода, независимо от контекста в котором эта часть будет использована. Ключ к такой возможности это корректное использование API на стороне client и его разумное проектирование на стороне implementor.
Также немного о предусловиях: тщательно выписываем предусловия конкретных функций, выносим общие предусловия.
15:56 Mutation
Почему мы вообще хотим использовать модифицируемые переменные? Нищета программирования с иммутабельными структурами на примере замены двигателя. Очень часто именно мутабельные переменные проще для доказательства свойств. Дуализм трансформации и действия.
void a(T& x) { x = t(x); } // a from t
T t(T x) { a(x); return x; } // t from a
Но см. ниже, этот дуализм работает не всегда.
18:38 Laws of exclusivity
std::vector a{0, 1, 1, 0};
erase(a, a[0]);
println("{}", a);
Не запуская годболт, догадайтесь что будет на экране. Потом посмотрите пример. Удивительно, но это даже не UB.
Далее Парент приводит правила исключения одновременных ссылок для Swift и Rust. Фактически то же правило есть в C++ (если вы не хотите проблем), но убедиться в его соблюдении -- задача разработчика.
29:05 Projections and Objects
Проекция это получение ссылки на часть объекта. Проекции могут быть инвалидированы как итераторы для контейнера или как отображение или как повисшая ссылка и т.д.
Оказывается дуализм между действием и трансформацией, описанный выше работает только для инкапсулированных (contained) объектов, но не для их проекций. Нам нужно чтобы выполнялся equational reasoning -- свободная замена равных подвыражений в выражениях.
Главное при проектировании типа для объектов это отношение часть/целое. Это отношение обладает свойствами связанности, ацикличности, сепарабельности и владения.
Если бы у нас были только отношения части и целого, то проблема, поставленная в начале, была бы решена. Увы, мир сложнее.
45:20 Extrinsic relashionships
Внешними называются все отношения, которые не часть/целое: хранение невладеющего указателя, хранение ключа или индекса на внешний массив, ссылка на глобальную переменную, использование примитивов синхронизации.
Важнейшая лемма, которой суммируется доклад: для возможности рассуждать о программе локально, внешние отношения между классами должны быть инкапсулированы в класс-владелец, хранящий их корректность в качестве своего инварианта.
54:40 Structural complexity
Проблема трёх тел как пример внешних взаимосвязей, приводящих к непредсказуемости системы. Виды структурной зависимости: деревья, полидеревья, DAG, полные графы. Фактически только структурная зависимость в форме деревьев решает поставленную проблему.
01:05:24 Summary
---
От себя добавлю что именно такого рода разматывание внешних связей между сущностями и то, как это привело к гораздо лучшему проектированию генератора llvm-snippy, я показывал на Zero-cost conf прошлого года. Но там от меня это был конкретный пример проектирования, к тому же изрядно перемешанный с деталями предметной области. Здесь же Шон Парент даёт очищенную эссенцию такого подхода, практически с математической точностью формулировок.
#talksПост итогов 2024-го года.
Новый год уже стучится в двери. В этом посте я подведу свои итоги. Призываю всех в комментариях либо делиться своими ощущениями от года и нашего канала, либо просто поздравлять меня и друг друга. Особенно круто поздравлять непосредственно в новогоднюю ночь. Но, поскольку у всех она наступает по разному, я выложил этот пост чуточку заранее.
Главный итог для меня -- вышла моя книга по компиляторам и я выложил сопутствующий ей видео-курс.
Книга: https://www.chitai-gorod.ru/product/optimiziruyushchie-kompilyatory-struktura-i-algoritmy-3059667
Курс: https://www.youtube.com/playlist?list=PL3BR09unfgcjBG1H9xRUesaQX6nCsobs1
Я также записал до конца практический курс по языку C: https://www.youtube.com/playlist?list=PL3BR09unfgchRxdDws74aY4mlSk9eYGEs
Особое спасибо Юлию Тарасову, Владиславу Белову и Марку Гончарову без которых ничего бы не было.
Я также опубликовал ряд эссе. Хочется подсветить два:
1. Про поведение на моём канале https://telegra.ph/Styortye-kommentarii-moih-zabanennyh-podpischikov-04-13
2. Про тезис и тест Тьюринга https://telegra.ph/Tezis-Tyuringa-09-06
Для меня этот год снова был годом активного участия в конференциях. Пожалуй даже с элементами оверкоммитмента. Самые важные:
Yadro meetup про цену абстракции: https://youtu.be/cK4cMdx9QeQ
МТС про RISC-V: https://youtu.be/qoNjayusCX4
C++ Russia про разрешение имён: https://youtu.be/kJ6RvI9A1bU
На некоторых конференциях я выступал не один и вообще начал выводить в свет своих учеников.
Сбер Гига Конф про LLVM с Настей Черниковой: https://youtu.be/5HKSeLSIya4
RISC-V meetup про SLEEF с Марком Гончаровым: https://youtu.be/9hG9pFS-O7w
Лекция про вычислимость с Тимуром Голубовичем: https://youtu.be/skhIRK3cUBM
Ну и всякие разговорные жанры во множестве: интервью, круглые столы, прочее.
Также я со своей командой заопенсорсил генератор тестов для системной верификации llvm-snippy и ходил всюду его докладывал. И продолжу делать это.
Heisenbug про snippy: https://youtu.be/ceAK85rAkfY&t=146s
Zero cost conf про snippy: https://youtu.be/A8FSh8eFj1w
Мой телеграм-канал вырос до более чем 6.5к человек и мой youtube-канал до более чем 24к. Фактически это делает мой youtube-канал более популярным чем большинство крупных русскоязычных конференций (С++ Russia 15к, Heizenbug 19.5к, Истовый Инженер 11.5к, True Tech 2.7к, SaluteTech 2.2к). Хорошо, что есть YfD с его 67к, так что мне ещё есть куда расти. Это ставит передо мной интересную диллему: а надо ли мне вообще куда-то ездить? Может наоборот пора звать к себе гостей? Пока что я решил, что поезжу и уже записался на три конференции, посмотрим как пойдёт.
В целом, в конце года можно констатировать, что у меня есть некоторая проблема с планами на следующий год. В прошлом году у меня была масса всего недоделанного. В этом году, по большому счёту, я доделал всё, что мог из того, что хотел. Это не значит, что всё сворачивается и все расходятся, это значит, что мне надо понять куда дальше развиваться. Продолжается моя работа в Syntacore, возможно мы сделаем и заопенсорсим ещё что-нибудь интересное. Я пока что познакомил вас не со всеми моими учениками и коллегами. У меня в голове также есть идеи для больших образовательных проектов, но пока на ранней стадии.
Ещё я хочу поездить в этом году по городам России и дружественных безвизовых государств, провести встречи с читателями. Как минимум Москва, Питер, Нижний и Новосибирск, с высокой вероятностью Екатеринбург и Минск, в идеале -- в каждый город собравший 10+ лайков под вот этим постом (и под предшествующим ему): https://t.me/cpp_lects_rus/197
Я хотел бы пожелать всем моим уважаемым друзьям на этом канале (всем более чем шести с половиной тысячам) чтобы в наступающем году у вас было много амбициозных планов, много мотивации и сил для их претворения, и чтобы не было проблем с внешними обстоятельствами.
Всех с наступающим Новым Годом!
#official #happynewyear
Пришло время для особой рождественской лекции.
Эта лекция продолжает серию посвящённую логике, языкам и автоматам и является в этой серии третьей (вторая была записана в 2021-м году). На этот раз она посвящена клеточным автоматам.
Я её готовил не один, с материалом мне помогал мой студент Тимур, который также выступил моим со-докладчиком. Его, точно также как Марка и Настю, вы ещё тут увидите.
https://youtu.be/skhIRK3cUBM
https://rutube.ru/video/f89fa9c9fc11a3cd4c66aa387e767f41
Новогодний пост подведения итогов будет 31-го.
#computability
Очередной гордости за учеников пост и немного ворчания.
Анастасия Черникова, которую многие из вас уже видели на моём канале, когда мы с ней выступали на конференции Сбера, была принята в апстрим LLVM с её патчем на добавление RISC-V бэкенда для утилиты llvm-exegesis.
Ссылка на патч:
https://github.com/llvm/llvm-project/pull/89047
Доклад с Настей (увы про экзегезис там немного, но есть):
https://www.youtube.com/watch?v=5HKSeLSIya4
Это гигантское изменение, одно только ревью которого заняло более полугода. Настя работала не одна, в качестве постоянного ментора у неё выступал Дмитрий Бушев (с ним вы пока не знакомы, но я постараюсь его тоже вывести в свет), не оставались в стороне и другие ребята из моей команды.
И вот я бы очень хотел к этому посту прикрепить видео нашего с Настей выступления на конференции Стачка в Питере, где мы с ней этот самый llvm-exegesis докладывали.
Увы... и это первый раз в моей практике, когда организаторы продолбали запись выступления. Собственно они потеряли не только нас с Настей.
Я должен был догадаться чем всё закончится ещё когда только пришёл на конференцию Стачка и увидел там следующее:
* Отсутствие монитора для предпросмотра слайдов (слайды светятся за спиной, хочешь их увидеть -- крути головой).
* Проектор стоящий просто на столе (хочешь походить по сцене -- будешь перекрывать собой его луч).
* Отсутствие петлички, один микрофон который мы друг другу передавали.
И многое другое.
Тем не менее несмотря на всё это я бы не стал об этом даже писать (мало ли какие бывают накладки) если бы не история с видео, что, конечно, уже просто край. Я удержусь от предложения организаторам переименовать конференцию, использовав вместо "Стачки" какой-нибудь другой советский термин, например "Колхоз".
Давайте лучше сконцентрируемся на позитиве и поздравим Настю с прекрасным достижением, а лучший и более расширенный доклад про llvm-exegesis мы имеем высокие шансы услышать на более серьёзной конференции https://sysconf.pro куда Настя уже подала заявку. На этот раз выступать она будет уже одна и от себя и очень надеюсь, что её там утвердят.
#conference
Меня очень редко зовут на интервью (и почему-то обычно перед Новым Годом).
На этот раз меня позвали на довольно крупный и популярный канал, за что уважаемому автору канала огромное спасибо.
https://youtu.be/u3uuGrptpBs
В этом интервью я:
* Ностальгирую по токсичным форумам нулевых
* Защищаю Windows
* Критикую free software
* Высказываюсь решительно за IDE
* Положительно отзываюсь о JavaScript и 1C разработке
* Объясняю почему системное программирование неполноценно
* Даю интервьюеру советы по использованию email
* Рекомендую Алгол-68 как первый язык программирования
В какой-то момент интервьюер начинает кричать "Ну это же сарказм, правда? Ну это же не серьёзно". Но деда в тот момент могли спасти только таблетки, а их-то он как раз и забыл выпить.
#interview
В этой лекции я рассматриваю компилятор и инструменты разработки RISC-V. Начнём с тулчейна в целом и далее, после обязательного блока про RISC-V, погрузимся в цикловые оптимизации, межпроцедурные оптимизации и даже в релаксации, производимые линкером. Весь материал основан на работе моей команды в Syntacore.
https://youtu.be/L2aPTxzLFUQ
https://rutube.ru/video/f4d9c2056c7daf05cff5a14ce4cc628a/
Я знал, что вы соскучились по открытой и расширяемой, ведь так? Я думаю введу для неё специальный тег riscv.
#toolchain #conference #riscv
Небольшой пятничный чиллаут. Ребята из альянса RISC-V сделали неожиданную и странную штуку -- из довольно большой панельной дискуссии в Сириусе они вырезали только моё выступление и далее только мои ответы на вопросы уважаемой аудитории. Как я понимаю, это случилось потому, что никто кроме меня их не попросил это выложить. Очень жаль, кроме меня там были и другие очень интересные спикеры.
Тут я предстаю в необычной роли -- я рассказываю свой взгляд на преподавание и даже делаю это со слайдами где изложена предлагаемая мной образовательная траектория для студентов, методический план семинаров в лаборатории RISC-V и многое другое. В конце сессии ответов на вопросы я рассуждаю о том как школьники делают выбор будущего.
Утром я также выложу на свой канал более серьёзную лекцию, прочитанную мной в том же Сириусе и имеющую нечто общее с недавно выложенным компиляторным курсом.
https://rutube.ru/video/7195e749cee30a138e3950d871251ea9/
#conference #riscv
Выложил десятую и последнюю в этом курсе лекцию по оптимизирующим компиляторам.
Пришла пора разрушить то, что мы так тщательно строили и чем так долго пользовались. Это будет не так просто и процесс будет иметь некоторые нюансы. И, конечно же, после разрушения SSA представления, нам всё ещё будет чем заняться. Например распределением регистров, рематериализацией значений, планированием инструкций и разрывание антизависимостей. Мы увидим как отлично зарекомендовавший себя в выборе инструкций подход через квадратичное булево программирование поможет нам с иррегулярными архитектурами. В конце нас ждут последние задания и последняя литература.
На этом с вами прощается курс, но, конечно не компиляторная теория. Она гораздо глубже, богаче и интересней, чем это поверхностное введение и ей легко можно посвятить много лет или даже всю жизнь. Теперь, когда вы в общих чертах понимаете что именно делает оптимизирующий компилятор, вы готовы к этому путешествию. Возьмите с собой в эту дорогу этот курс и написанную автором курса книгу.
И я надеюсь вам понравилось.
https://youtu.be/RK8HfK6giL8
https://rutube.ru/video/7396f97feffd6f971570fe1bc38de413/
Когда я выложил примерно половину этого курса, я увидел, что у лекций почти нет просмотров. Меня это как-то деморализовало, я ожидал всплеск интереса. Но мой студент Владик меня утешил. Он сказал, что даже когда все прочие мои курсы перестанут смотреть, этот продолжит набирать аудиторию. Будем надеяться.
P. S. У меня также предусмотрены пара интересных конкурсов с призами в виде книги (издательство обещало оплатить доставку по РФ). Скоро начнём.
P. P. S. Далее на канале нас ждёт прикладная лекция по цикловым и межпроцедурным оптимизациям в RISC-V, прочитанная мной в Сириусе (Сочи) и, бонусная рождественская лекция с ещё одним интересным содокладчиком. Не отключайтесь.
#compilers
В продолжение https://t.me/cpp_lects_rus/199
Новости книги.
Наконец-то чистовой тираж был отпечатан и разъехался по магазинам, ищите во всех книжных.
Читатели, купившие книгу первого (бракованного) тиража, могут:
1. Либо сделать бесплатную замену в любом магазине.
2. Либо оставить себе книгу из первого тиража и для выдачи бесплатной электронной версии прислать на адрес dostuplitres@gmail.com почту, к которой привязан аккаунт литрес, а также подтверждение покупки книги (чек/скрин + фото книги). В течение недели редакция соберёт письма, после запросит промокоды и, когда их сформируют, вышлет на указанные адреса
P. S. и завтра с утра последняя лекция курса будет на youtube.
#official
اکنون در دسترس! پژوهش تلگرام ۲۰۲۵ — مهمترین بینشهای سال 
