Язык Фикус - ML и обработка массивов
На лекции от Факультета Компилятороварения Дмитрий Соломенников, специалист с более чем 10 летным опытом в создании языков и компиляторов, погружает зрителей в мир высокопроизводительных вычислений с языком Фикус из семейства Meta Languag. Вы узнаете, как простой скрипт на Python можно ускорить в 80 раз благодаря удачному дизайну языка. В лекции подробно разбираются синтаксис и философия Фикуса: работа с неизменяемыми значениями, мощные примитивы для обработки массивов и кортежей, а также безопасное управление памятью. Лекция будет полезна всем, кто интересуется компиляторами, системами типов и численными методами. Организовано сообществом "Ворчалки о программировании" (https://t.me/vorchalki_o_prog) Ссылка на презентацию: https://ontonet.org/lenta/stream/item/4564 Если вы хотите получить больше информации об исследованиях в области языков программирования, специально для вас - "Факультет компилятороварения", разработанный сообществом "Ворчалки о программировании" https://compiler-potion-faculty.sourcecraft.site/ 00:03 - Введение. Представление темы и спикера. 00:59 - Введение в численные задачи. Производительность Python. 01:59 - История доклада. Статья на Хабре про множество Мандельброта. 02:46 - Сравнение языков. Fortran, Java и первые замеры Фикуса. 04:13 - Дополнительные улучшения. OpenMP и ускорение в 80 раз. 05:14 - Примитивы языка Фикус. Неизменяемые значения (val). 07:22 - Переменные и числовые типы. Разница val/var, типы чисел. 09:14 - Суффиксы числовых литералов. 10:24 - Типы данных и строки. char, обычные и f-строки. 12:15 - R-строки. Неинтерполируемые многострочные строки. 13:09 - Составные типы. Списки, кортежи, записи. 14:59 - Циклы и методы работы со списками. 16:47 - Кортежи. Объединение разнородных данных. 18:59 - Поэлементная работа с кортежами. Специальный синтаксис. 19:54 - Союзные типы и паттерн-матчинг. 22:10 - Опциональные типы. some/none и работа с ними. 22:56 - Записи. Именованные поля. 24:40 - Модифицируемые записи. 25:35 - Классы и интерфейсы (кратко). 26:19 - Переход к обсуждению массивов. 26:35 - Управление памятью и параметры функций. Подсчет ссылок. 27:50 - Функции высшего порядка и лямбда-функции. 29:43 - Массивы и их создание. Три способа. 32:01 - Синтаксис для работы с массивами. Срезы и индексы. 35:43 - Дополнительные возможности массивов. Индексация с конца. 37:36 - Математические операции с массивами. 38:36 - Циклы и операции над массивами (fold). 40:12 - Безопасная работа с массивами. Функции zero, mod, clip. 42:50 - Заключение по функциям безопасности. 43:39 - Поэлементные операции с массивами кортежей. 44:55 - Векторы и паттерн-матчинг в деталях. 48:33 - Особенности паттерн-матчинга для списков. 51:11 - Вопросы и ответы. Название языка и многомерные массивы. 56:14 - Типовая система и кортежи произвольной длины. 57:46 - Применение типовой системы для обработки изображений. 59:22 - Работа с кортежами. Итерация и zip. 01:00:18 - Полиморфизм и производительность паттерн-матчинга. 01:00:52 - Юникод-идентификаторы. 01:01:41 - Происхождение паттерн-матчинга. 01:02:41 - Частичные конструкторы записей. 01:03:13 - Анонс будущих встреч.
На лекции от Факультета Компилятороварения Дмитрий Соломенников, специалист с более чем 10 летным опытом в создании языков и компиляторов, погружает зрителей в мир высокопроизводительных вычислений с языком Фикус из семейства Meta Languag. Вы узнаете, как простой скрипт на Python можно ускорить в 80 раз благодаря удачному дизайну языка. В лекции подробно разбираются синтаксис и философия Фикуса: работа с неизменяемыми значениями, мощные примитивы для обработки массивов и кортежей, а также безопасное управление памятью. Лекция будет полезна всем, кто интересуется компиляторами, системами типов и численными методами. Организовано сообществом "Ворчалки о программировании" (https://t.me/vorchalki_o_prog) Ссылка на презентацию: https://ontonet.org/lenta/stream/item/4564 Если вы хотите получить больше информации об исследованиях в области языков программирования, специально для вас - "Факультет компилятороварения", разработанный сообществом "Ворчалки о программировании" https://compiler-potion-faculty.sourcecraft.site/ 00:03 - Введение. Представление темы и спикера. 00:59 - Введение в численные задачи. Производительность Python. 01:59 - История доклада. Статья на Хабре про множество Мандельброта. 02:46 - Сравнение языков. Fortran, Java и первые замеры Фикуса. 04:13 - Дополнительные улучшения. OpenMP и ускорение в 80 раз. 05:14 - Примитивы языка Фикус. Неизменяемые значения (val). 07:22 - Переменные и числовые типы. Разница val/var, типы чисел. 09:14 - Суффиксы числовых литералов. 10:24 - Типы данных и строки. char, обычные и f-строки. 12:15 - R-строки. Неинтерполируемые многострочные строки. 13:09 - Составные типы. Списки, кортежи, записи. 14:59 - Циклы и методы работы со списками. 16:47 - Кортежи. Объединение разнородных данных. 18:59 - Поэлементная работа с кортежами. Специальный синтаксис. 19:54 - Союзные типы и паттерн-матчинг. 22:10 - Опциональные типы. some/none и работа с ними. 22:56 - Записи. Именованные поля. 24:40 - Модифицируемые записи. 25:35 - Классы и интерфейсы (кратко). 26:19 - Переход к обсуждению массивов. 26:35 - Управление памятью и параметры функций. Подсчет ссылок. 27:50 - Функции высшего порядка и лямбда-функции. 29:43 - Массивы и их создание. Три способа. 32:01 - Синтаксис для работы с массивами. Срезы и индексы. 35:43 - Дополнительные возможности массивов. Индексация с конца. 37:36 - Математические операции с массивами. 38:36 - Циклы и операции над массивами (fold). 40:12 - Безопасная работа с массивами. Функции zero, mod, clip. 42:50 - Заключение по функциям безопасности. 43:39 - Поэлементные операции с массивами кортежей. 44:55 - Векторы и паттерн-матчинг в деталях. 48:33 - Особенности паттерн-матчинга для списков. 51:11 - Вопросы и ответы. Название языка и многомерные массивы. 56:14 - Типовая система и кортежи произвольной длины. 57:46 - Применение типовой системы для обработки изображений. 59:22 - Работа с кортежами. Итерация и zip. 01:00:18 - Полиморфизм и производительность паттерн-матчинга. 01:00:52 - Юникод-идентификаторы. 01:01:41 - Происхождение паттерн-матчинга. 01:02:41 - Частичные конструкторы записей. 01:03:13 - Анонс будущих встреч.