C++ and other lectures
8.46K subscribers
39 photos
2 files
209 links
Учебный канал в Телеграм: тут будут анонсы и ссылки на лекции и стримы. Написать автору: @Tilir
Download Telegram
Приближается сентябрь, начало учебного года.

Каждый год я делаю подзамочные стримы со своего магистерского и бакалаврского курсов в дискорде, этот год не станет исключением.

Ссылки на стрим постятся до начала лекции в каналы с соответствующими названиями (магистратура-2024-25 и бакалавриат-2024-25), так что вы можете участвовать онлайн в реальном времени. Вопросы по теме лекции из чата стрима зачитываются в аудитории. В основном канале дискорд-сервера обычно помещается организационная информация. Есть также канал для оффтопик общения. Как вы понимаете я нигде не размещаю рекламу, ничего не монетизирую и не собираю донаты.

Стримы в этом году будут вестись на rutube, технология опробована и сюрпризов не ожидается. Стримы отличаются от выложенных на youtube курсов некоторыми обновлениями материала, отсутствием видео и традиционно плохим звуком (с обработкой звука и съёмкой видео я заморачиваюсь только для официальной выкладки), на стримах у меня обычно только экран -- слайды и код. Записи стримов сохраняются и доступны после стрима.

https://discord.gg/w73eVVraKg

#official
👍135🔥3618👏2🤩2
Вместо того, чтобы:
* готовиться к выступлению на ШМУ в Сириусе 20-го сентября.
* готовиться к выступлению на конференции "Стачка" в Питере 28-го сентября
* готовится к первой бакалаврской лекции в понедельник
* прочее

Я вчера весь вечер писал вот этот сомнительный длиннопост про разум, вычислимость, тезис Тьюринга и, главное, недооценённую многими людьми гениальность так называемого "теста Тьюринга", очерчивающего границы нашей возможности к распознаванию разума.

https://telegra.ph/Tezis-Tyuringa-09-06

Внутри много философии, вы предупреждены.

P. S. книгу сверстали, результат в целом ок, но там разъехались листинги, я отправил правки, их сейчас вносят и далее нас ждёт ещё один круг. Ориентировочная дата выхода -- середина октября.

#computability #conference #publications
114🔥57👍41🦄43👏3🆒3
Пятница, вечер, самое время для свежепридуманного этюда по C++. Придумал утром, сегодня опробовал на коллегах и остался доволен.

https://godbolt.org/z/8EaEbPz9x — это не работает
https://godbolt.org/z/6b3977Pac — то же, но без инстанцирования структуры отлично работает

Вам нужно обосновать со ссылкой на стандарт в чём причина. И предложить некую починку неработающего варианта. Вариантов починки, кстати, заведомо больше одного.

Увы, призов, кроме зрительских симпатий, не обещаю.

#questions #cpp_postgraduate
👍36🤯1910
Всем привет. 28 сентября в субботу выступаю на IT-конференции Стачка в СПб.

С 11:40 до 12:45 со мной можно будет пообщаться в "экспертной зоне". Это для владельцев VIP-билетов. Подразумевается неспешный разговор серьёзных людей и лакшери времяпрепровождение. Презентация мне дорогих напитков приветствуется, но остаётся на ваше усмотрение.

В 13:40 мы с очаровательной содоклачицей Настей расскажем про инструмент автоматического бенчмаркинга llvm-exegesis. И конечно про его бэкенд для открытой и расширяемой архитектуры RISC-V, сделанный нашей командой. И даже немного про LLVM-based ORC JIT. Это уже в основном треке и для всех.

P. S. книга всё ближе. Вчера отослал последние мелкие правки по вёрстке. Уже готовится печатный файл, середина октября выглядит реалистично. Скоро начну выкладку курса на youtube/rutube, информация будет на этом канале.

#conference
95🔥50👍28💅13🦄32😁2🤔1
Всем привет. Типография поставила дату 22.10, соответственно выкладку курса начну в субботу 19-го.

UPDATE: Типография справилась быстрее. Попробую начать выкладку пораньше ))

А сейчас у меня будет для всех важный вопрос. Хочется сделать встречу с читателями, издательство поможет организовать. Допустим я сделаю встречу с читателями в Москве в выходной. Мне надо знать сколько людей придёт. Опрос сейчас сделаю, но пожалуйста, голосуйте только если придёте с высокой вероятностью. И то же самое в Питере.

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

#official
🔥60👍233❤‍🔥2😢1
Придёте на встречу с читателями?
Anonymous Poll
20%
Москва
12%
Питер
24%
Другой город
44%
Результаты
👍23❤‍🔥5🔥2
Итак, книга приехала из типографии чуть раньше, чем должна была.

Поэтому также чуть раньше выкладываю первое видео курса по этой книге. Можно читать книгу и смотреть курс ))

Видео будут появляться каждую субботу с утра где-то до конца декабря.

https://youtu.be/shvOI7SQ3q4

https://rutube.ru/video/3702d41e19ad5fd3b653820b530023dd/

Первая лекция очень простая и ознакомительная — на ней мы поговорим о тех задачах, которые решает компилятор, о синтаксисе и семантике программ, рассмотрим разные оптимизации и в конце введём HIR — High Level IR, которым будем пользоваться при дальнейшем изложении.

#toolchain #compilers
143🔥96👍21🤩3🐳2💅1
Всем привет.

Как многие заметили в предзаказе книга пришла странная. Она фактически отпечатана с раннего драфта и там есть уже ставшая знаменитой страница 22, оставшаяся от той книги, какой она должна была быть. Также проблемы есть со страницами 167, 169 и 173.

Издательство отзывает бракованный тираж и останавливает продажи. Всем кто уже купил по предзаказу будет некая компенсация, например в виде бесплатной электронной копии. Ну и кроме того, если смотреть на вещи позитивно, у вас остаётся уникальный авторский экземпляр с авторской пунктуацией. При этом по смыслу книга вполне полноценная. Там есть все смысловые блоки, только не закончена корректура.

Подробности будут позже.

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

UPD: развитие истории в https://t.me/cpp_lects_rus/221

#official
👍119🔥20🙏10😭8😁7😱5🙈3👎2🤡2💅2👏1
Загадка недостающих страниц (конкурс с призом)

Участники процесса: редактор Алиса и наборщик Боб (имена не настоящие, взяты сами понимаете откуда).

На этапе предзаказа Алиса посылает Бобу некий драфт, который Боб адаптирует для листалки на сайте и сохраняет у себя.

Далее перед печатью в типографии Алиса посылает Бобу финальный печатный файл.

Но в ночь перед печатью, Алиса замечает на четырёх страницах, а именно на страницах 22, 167, 169 и 173 некую проблему, которая не очевидна на этих страницах, но после печати в типографии станет очевидной и неприятной. Поэтому она пишет Бобу просьбу заменить эти четыре страницы на те, которые она прислала.

Боб заменяет, но случайно делает это не в финальном файле, а в драфте и отправляет на печать драфт с заменёнными четырьмя страницами.

Чему нас учит эта история? Не надо коммитить без CI в ночь перед релизом.

В общем в истории с моей книгой все события -- как будто бы из нашей жизни.

А теперь конкурс. Он требует много телепатии. Я прикладываю четыре страницы, выбранные под замену. Тот, кто первым догадается что именно на них общего и что смутило Алису, бесплатно получит мою книгу из числа авторских экземпляров (когда их напечатают и выдадут мне) с моим автографом.

#questions
👍62😁32🔥85💯5🌭3👎1
Вторая лекция это начало погружения в компиляторную теорию. Я сознательно сделал её короче, так как она довольно плотная, далее мы вернёмся к часовому формату.

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

https://youtu.be/0DQOmHfPErA

https://rutube.ru/video/8efdba83efac337400af15a8c81e7dbb/

Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.

#compilers
🔥97👍94🏆2🤓1
Не так давно мои МФТИ-шные контесты по C для первого курса (которые больше недоступны через ejudge) были добавлены на Яндекс контест, о чём я писал вот тут: https://t.me/cpp_lects_rus/187

Сейчас случилось ещё более радостное событие: задачи были добавлены на stepik.

https://stepik.org/209865

Громадное спасибо Артёму Ершову https://t.me/iam28th за эту замечательную работу!

#c_graduate
🔥193👍357👌4❤‍🔥1🤓1👨‍💻1
На третьей лекции мы познакомимся с анализом потока данных и построим фреймворк для такого рода анализа. Мы рассмотрим три базовых аналитических алгоритма: достигающие определения, доступные выражения и активные переменные. В конце мы заметим удивительную общность этих задач и сделаем выводы. В процессе мы погрузимся в невычислимые задачи и историю компиляторной теории.

https://youtu.be/fLUnJGwEmYY

https://rutube.ru/video/6753137f2fe26ea94101956c5ac2f4e4/

Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.

#compilers
🔥65👍1211👏4🎉1🏆1🤓1
Всем привет. Очередная лекция по компиляторам завтра в 9 утра, а сегодня вечер пятницы и небольшой брейн-тизер по C++.

template<typename T = void>
int foo(int x) { return 1; }

int foo(...) { return 2; }

template<typename T = void>
int bar() { return 1; }

int bar(...) { return 2; }

int main() {
std::cout << foo(2) << std::endl; // ?
std::cout << bar() << std::endl; // ???
}


https://godbolt.org/z/qfsEvxh4E

Громадное спасибо за него Владиславу Белову https://t.me/you_are_RTshnik наткнувшемуся на эту красоту во время выполнения одного из моих заданий.

Задача довольно обычная — объяснить в чём разница с детальными ссылками на C++23. Призов не будет, кроме зрительских симпатий.

P. S. книгу обещают перепечатать к 15 ноября.

UPD: Уважаемый подписчик Артём Колпаков @ddvamp развил и усилил пример до https://godbolt.org/z/ab31ah199

#questions #cpp_postgraduate
🔥50🤪10👍8🤔2🥴1🌚1🫡1💘1
Выложил четвёртую лекцию курса по компиляторам.

На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями как доминаторы, фронт доминирования и дерево доминаторов.

https://youtu.be/diSnBssZ1dQ

https://rutube.ru/video/00ea76b6e9c1406fdc7814ab16ce1c8d/

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

#compilers
🔥6415👍9🙏3