fa
Feedback
C++ and other lectures

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
Anonymous voting

Провёл встречу с читателями в СПб. Прекрасные вопросы, отличные люди, мне всё очень понравилось. Вместо часа общение растянулось на 2.5 часа и даже небольшую фотосессию (где меньше людей т.к. многие ушли раньше). Народу было человек 25-30. В тг в своё время проголосовали больше ста и я волновался что не поместимся. Зря волновался. Видеозапись для гурманов: https://vkvideo.ru/video-32038_456241226 Почему то там в описании видео написано "лекция". Лекции собственно не было, не знаю зачем они так сделали )) 16 февраля -- Москва. #official

Всем привет. Немного о ближайших публичных событиях с моим скромным участием. * 2 февраля в 16 часов, Санкт-Петербург, "Букво
Всем привет. Немного о ближайших публичных событиях с моим скромным участием. * 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