Всем привет. 28 сентября в субботу выступаю на IT-конференции Стачка в СПб.
С 11:40 до 12:45 со мной можно будет пообщаться в "экспертной зоне". Это для владельцев VIP-билетов. Подразумевается неспешный разговор серьёзных людей и лакшери времяпрепровождение. Презентация мне дорогих напитков приветствуется, но остаётся на ваше усмотрение.
В 13:40 мы с очаровательной содоклачицей Настей расскажем про инструмент автоматического бенчмаркинга llvm-exegesis. И конечно про его бэкенд для открытой и расширяемой архитектуры RISC-V, сделанный нашей командой. И даже немного про LLVM-based ORC JIT. Это уже в основном треке и для всех.
P. S. книга всё ближе. Вчера отослал последние мелкие правки по вёрстке. Уже готовится печатный файл, середина октября выглядит реалистично. Скоро начну выкладку курса на youtube/rutube, информация будет на этом канале.
#conference
С 11:40 до 12:45 со мной можно будет пообщаться в "экспертной зоне". Это для владельцев VIP-билетов. Подразумевается неспешный разговор серьёзных людей и лакшери времяпрепровождение. Презентация мне дорогих напитков приветствуется, но остаётся на ваше усмотрение.
В 13:40 мы с очаровательной содоклачицей Настей расскажем про инструмент автоматического бенчмаркинга llvm-exegesis. И конечно про его бэкенд для открытой и расширяемой архитектуры RISC-V, сделанный нашей командой. И даже немного про LLVM-based ORC JIT. Это уже в основном треке и для всех.
P. S. книга всё ближе. Вчера отослал последние мелкие правки по вёрстке. Уже готовится печатный файл, середина октября выглядит реалистично. Скоро начну выкладку курса на youtube/rutube, информация будет на этом канале.
#conference
❤95🔥50👍28💅13🦄3⚡2😁2🤔1
Всем привет. Типография поставила дату 22.10, соответственно выкладку курса начну в субботу 19-го.
UPDATE: Типография справилась быстрее. Попробую начать выкладку пораньше ))
А сейчас у меня будет для всех важный вопрос. Хочется сделать встречу с читателями, издательство поможет организовать. Допустим я сделаю встречу с читателями в Москве в выходной. Мне надо знать сколько людей придёт. Опрос сейчас сделаю, но пожалуйста, голосуйте только если придёте с высокой вероятностью. И то же самое в Питере.
В комментарии к этому посту, если вдруг вы в другом городе и хотели бы меня там видеть для встречи с читателями, пишите название города. Если название вашего города уже написали, ставьте лайки в виде поднятого вверх пальца.
#official
UPDATE: Типография справилась быстрее. Попробую начать выкладку пораньше ))
А сейчас у меня будет для всех важный вопрос. Хочется сделать встречу с читателями, издательство поможет организовать. Допустим я сделаю встречу с читателями в Москве в выходной. Мне надо знать сколько людей придёт. Опрос сейчас сделаю, но пожалуйста, голосуйте только если придёте с высокой вероятностью. И то же самое в Питере.
В комментарии к этому посту, если вдруг вы в другом городе и хотели бы меня там видеть для встречи с читателями, пишите название города. Если название вашего города уже написали, ставьте лайки в виде поднятого вверх пальца.
#official
🔥60👍23❤3❤🔥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
Поэтому также чуть раньше выкладываю первое видео курса по этой книге. Можно читать книгу и смотреть курс ))
Видео будут появляться каждую субботу с утра где-то до конца декабря.
https://youtu.be/shvOI7SQ3q4
https://rutube.ru/video/3702d41e19ad5fd3b653820b530023dd/
Первая лекция очень простая и ознакомительная — на ней мы поговорим о тех задачах, которые решает компилятор, о синтаксисе и семантике программ, рассмотрим разные оптимизации и в конце введём HIR — High Level IR, которым будем пользоваться при дальнейшем изложении.
#toolchain #compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 1. Тулчейны.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
Первый семинар посвящён задаче компиляции и основам тулчейнов. Мы поговорим про то, что именно делают компиляторы и про место разнообразных оптимизаций в общем конвейере.
Лектор: Константин…
Первый семинар посвящён задаче компиляции и основам тулчейнов. Мы поговорим про то, что именно делают компиляторы и про место разнообразных оптимизаций в общем конвейере.
Лектор: Константин…
❤143🔥96👍21🤩3🐳2💅1
Всем привет.
Как многие заметили в предзаказе книга пришла странная. Она фактически отпечатана с раннего драфта и там есть уже ставшая знаменитой страница 22, оставшаяся от той книги, какой она должна была быть. Также проблемы есть со страницами 167, 169 и 173.
Издательство отзывает бракованный тираж и останавливает продажи. Всем кто уже купил по предзаказу будет некая компенсация, например в виде бесплатной электронной копии. Ну и кроме того, если смотреть на вещи позитивно, у вас остаётся уникальный авторский экземпляр с авторской пунктуацией. При этом по смыслу книга вполне полноценная. Там есть все смысловые блоки, только не закончена корректура.
Подробности будут позже.
Пока что я, чтобы облегчить чтение тем, кому такой предзаказ пришёл, выкладываю страницы из того же черновика с которого он был напечатан.
UPD: развитие истории в https://t.me/cpp_lects_rus/221
#official
Как многие заметили в предзаказе книга пришла странная. Она фактически отпечатана с раннего драфта и там есть уже ставшая знаменитой страница 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
Участники процесса: редактор Алиса и наборщик Боб (имена не настоящие, взяты сами понимаете откуда).
На этапе предзаказа Алиса посылает Бобу некий драфт, который Боб адаптирует для листалки на сайте и сохраняет у себя.
Далее перед печатью в типографии Алиса посылает Бобу финальный печатный файл.
Но в ночь перед печатью, Алиса замечает на четырёх страницах, а именно на страницах 22, 167, 169 и 173 некую проблему, которая не очевидна на этих страницах, но после печати в типографии станет очевидной и неприятной. Поэтому она пишет Бобу просьбу заменить эти четыре страницы на те, которые она прислала.
Боб заменяет, но случайно делает это не в финальном файле, а в драфте и отправляет на печать драфт с заменёнными четырьмя страницами.
Чему нас учит эта история? Не надо коммитить без CI в ночь перед релизом.
В общем в истории с моей книгой все события -- как будто бы из нашей жизни.
А теперь конкурс. Он требует много телепатии. Я прикладываю четыре страницы, выбранные под замену. Тот, кто первым догадается что именно на них общего и что смутило Алису, бесплатно получит мою книгу из числа авторских экземпляров (когда их напечатают и выдадут мне) с моим автографом.
#questions
👍62😁32🔥8❤5💯5🌭3👎1
Вторая лекция это начало погружения в компиляторную теорию. Я сознательно сделал её короче, так как она довольно плотная, далее мы вернёмся к часовому формату.
Мы начинаем с построения HIR, далее ставим задачу продвижения констант, и, для того, чтобы решить эту задачу, вводим красивую математическую структуру так называемых решёток. После чего нас ждёт первый (но не последний) алгоритм в этом курсе.
https://youtu.be/0DQOmHfPErA
https://rutube.ru/video/8efdba83efac337400af15a8c81e7dbb/
Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.
#compilers
Мы начинаем с построения HIR, далее ставим задачу продвижения констант, и, для того, чтобы решить эту задачу, вводим красивую математическую структуру так называемых решёток. После чего нас ждёт первый (но не последний) алгоритм в этом курсе.
https://youtu.be/0DQOmHfPErA
https://rutube.ru/video/8efdba83efac337400af15a8c81e7dbb/
Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.
#compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 2. Поток управления и первая оптимизация.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
Второй семинар начинает математическую часть компиляторной теории. Мы начинаем с построения HIR, далее ставим задачу продвижения констант, и, для того, чтобы решить эту задачу, вводим красивую…
Второй семинар начинает математическую часть компиляторной теории. Мы начинаем с построения HIR, далее ставим задачу продвижения констант, и, для того, чтобы решить эту задачу, вводим красивую…
🔥97👍9❤4🏆2🤓1
Не так давно мои МФТИ-шные контесты по C для первого курса (которые больше недоступны через ejudge) были добавлены на Яндекс контест, о чём я писал вот тут: https://t.me/cpp_lects_rus/187
Сейчас случилось ещё более радостное событие: задачи были добавлены на stepik.
https://stepik.org/209865
Громадное спасибо Артёму Ершову https://t.me/iam28th за эту замечательную работу!
#c_graduate
Сейчас случилось ещё более радостное событие: задачи были добавлены на stepik.
https://stepik.org/209865
Громадное спасибо Артёму Ершову https://t.me/iam28th за эту замечательную работу!
#c_graduate
🔥193👍35❤7👌4❤🔥1🤓1👨💻1
На третьей лекции мы познакомимся с анализом потока данных и построим фреймворк для такого рода анализа. Мы рассмотрим три базовых аналитических алгоритма: достигающие определения, доступные выражения и активные переменные. В конце мы заметим удивительную общность этих задач и сделаем выводы. В процессе мы погрузимся в невычислимые задачи и историю компиляторной теории.
https://youtu.be/fLUnJGwEmYY
https://rutube.ru/video/6753137f2fe26ea94101956c5ac2f4e4/
Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.
#compilers
https://youtu.be/fLUnJGwEmYY
https://rutube.ru/video/6753137f2fe26ea94101956c5ac2f4e4/
Задания размещены списком в конце лекции, будет здорово если вы их сделаете и скинете скан вашего листочка с решениями сюда в комментарии.
#compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 3. Уравнения анализа данных.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
На третьей лекции мы познакомимся с анализом потока данных и построим фреймворк для такого рода анализа. Мы рассмотрим три базовых аналитических алгоритма: достигающие определения, доступные…
На третьей лекции мы познакомимся с анализом потока данных и построим фреймворк для такого рода анализа. Мы рассмотрим три базовых аналитических алгоритма: достигающие определения, доступные…
🔥65👍12❤11👏4🎉1🏆1🤓1
Всем привет. Очередная лекция по компиляторам завтра в 9 утра, а сегодня вечер пятницы и небольшой брейн-тизер по C++.
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
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
godbolt.org
Compiler Explorer - C++
// many thanks to Vlad Belov https://t.me/you_are_RTshnik
// for noticing this beauty
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; }
…
// for noticing this beauty
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; }
…
🔥50🤪10👍8🤔2🥴1🌚1🫡1💘1
Выложил четвёртую лекцию курса по компиляторам.
На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями как доминаторы, фронт доминирования и дерево доминаторов.
https://youtu.be/diSnBssZ1dQ
https://rutube.ru/video/00ea76b6e9c1406fdc7814ab16ce1c8d/
Задания размещены списком в конце лекции. На этот раз большинство этих заданий предполагает основательное программирование из области алгоритмов над графами. Вам будет предложено по произвольному входному графу построить его дерево доминаторов, DJ-граф и DF-граф. Скидывайте сюда в комментарии ссылки на ваши репозитории с решениями.
#compilers
На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями как доминаторы, фронт доминирования и дерево доминаторов.
https://youtu.be/diSnBssZ1dQ
https://rutube.ru/video/00ea76b6e9c1406fdc7814ab16ce1c8d/
Задания размещены списком в конце лекции. На этот раз большинство этих заданий предполагает основательное программирование из области алгоритмов над графами. Вам будет предложено по произвольному входному графу построить его дерево доминаторов, DJ-граф и DF-граф. Скидывайте сюда в комментарии ссылки на ваши репозитории с решениями.
#compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 4. Построение SSA.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями…
На этой лекции мы наконец-то построим SSA представление, на котором в современном мире выполняется большинство компиляторных оптимизаций. По дороге мы познакомимся с такими полезными концепциями…
🔥64❤15👍9🙏3
Выложил пятую лекцию курса по компиляторам.
Настало время познакомиться с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум основным идеям: продвижению информации вниз по графу потока управления (constant propagation, copy propagation, value range propagation) и удалению избыточности (global value numbering, partial redundancy elimination).
https://youtu.be/6yo4ofdLRfU
https://rutube.ru/video/62a76dc317939e381df018f6a61be6e0/
Я понимаю, что сложно. Держитесь, впереди самое интересное.
#compilers
Настало время познакомиться с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум основным идеям: продвижению информации вниз по графу потока управления (constant propagation, copy propagation, value range propagation) и удалению избыточности (global value numbering, partial redundancy elimination).
https://youtu.be/6yo4ofdLRfU
https://rutube.ru/video/62a76dc317939e381df018f6a61be6e0/
Я понимаю, что сложно. Держитесь, впереди самое интересное.
#compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 5. Базовые оптимизации.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
Настало время познакомится с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум базовым идеям: продвижению информации вниз по графу потока…
Настало время познакомится с базовыми оптимизациями и ввести фреймворк для работы с SSA-представлением. Эта лекция посвящена двум базовым идеям: продвижению информации вниз по графу потока…
🔥86👍14❤8🫡2🤝1
Выложил шестую лекцию курса по компиляторам.
Вы же всегда хотели узнать в чём разница между обратными и обращёнными дугами и чем цикл в компьютерной программе отличается от цикла в графе? А чем сводимый граф отличается от не сводимого? А как насчёт поиска базовых индуктивностей и скалярной эволюции? Конечно же вы всегда хотели. В этом видео вы получите всё перечисленное и немного больше. И даже немного про алгебру цепочек рекуррентностей.
https://youtu.be/V6hWKXvUQvo
https://rutube.ru/video/74991603431c25f8d08631b6a5c8e2bf/
Мне кажется лекции снова вынырнули на тот уровень, где они становятся интересны широкой аудитории. Вряд ли вы когда-либо думали о циклах в вашей программе именно таким образом.
#compilers
Вы же всегда хотели узнать в чём разница между обратными и обращёнными дугами и чем цикл в компьютерной программе отличается от цикла в графе? А чем сводимый граф отличается от не сводимого? А как насчёт поиска базовых индуктивностей и скалярной эволюции? Конечно же вы всегда хотели. В этом видео вы получите всё перечисленное и немного больше. И даже немного про алгебру цепочек рекуррентностей.
https://youtu.be/V6hWKXvUQvo
https://rutube.ru/video/74991603431c25f8d08631b6a5c8e2bf/
Мне кажется лекции снова вынырнули на тот уровень, где они становятся интересны широкой аудитории. Вряд ли вы когда-либо думали о циклах в вашей программе именно таким образом.
#compilers
YouTube
Оптимизирующие компиляторы (МФТИ, 2024). Лекция 6. Анализ циклов.
Лекции по компиляторам для свежих интернов базовой кафедры в МФТИ.
Вы же всегда хотели узнать в чём разница между обратными и обращёнными дугами и чем цикл в компьютерной программе отличается от цикла в графе? А чем сводимый граф отличается от не сводимого?…
Вы же всегда хотели узнать в чём разница между обратными и обращёнными дугами и чем цикл в компьютерной программе отличается от цикла в графе? А чем сводимый граф отличается от не сводимого?…
👍84❤26🔥16✍3😁2
Позвали недолго поговорить во время трансляции четвертьфинала ICPC. Основная тематика разговора: чего будет ждать индустрия от тех ребят, которые сейчас увлекаются спортивным программированием, когда они вырастут и постучат в её (индустрии) двери.
https://www.youtube.com/watch?v=dfl9IYa9gPU&t=10367s
Сам я к спортивному программированию отношусь настороженно. По сути это такие соревнования по экстремально плохому коду. В процессе трансляции там показывают экраны участников, местами это грустно. Впрочем, ребят можно понять. У них нечеловеческие условия -- 5 часов на 13 задач и каждая из этих задач довольно сложна.
Но я постарался говорить мягко и выделить в основном позитивные моменты, которых там тоже много.
P. S. выступил ещё на парочке мероприятий, жду пока организаторы нарежут видео, буду скидывать сюда по мере появления.
#conference #interview
https://www.youtube.com/watch?v=dfl9IYa9gPU&t=10367s
Сам я к спортивному программированию отношусь настороженно. По сути это такие соревнования по экстремально плохому коду. В процессе трансляции там показывают экраны участников, местами это грустно. Впрочем, ребят можно понять. У них нечеловеческие условия -- 5 часов на 13 задач и каждая из этих задач довольно сложна.
Но я постарался говорить мягко и выделить в основном позитивные моменты, которых там тоже много.
P. S. выступил ещё на парочке мероприятий, жду пока организаторы нарежут видео, буду скидывать сюда по мере появления.
#conference #interview
YouTube
Moscow Regional Contest 2024
ICPC Moscow Regional Contest – четвертьфинал Международного студенческого чемпионата по программированию ICPC (International Collegiate Programming Contest) сезона 2024/2025.
Организаторами Moscow Regional Contest выступают МГУ и МФТИ.
РАСПИСАНИЕ:
0:00:00…
Организаторами Moscow Regional Contest выступают МГУ и МФТИ.
РАСПИСАНИЕ:
0:00:00…
👍95❤25😁5👨💻3⚡2🔥2💯2🏆2🤓2