Исследовательская группа

Лаборатория языковых инструментов

Эффективная реализация массивов в функциональном языке SAC

February 22

Функциональные языки позволяют писать простой, понятный и легко компонуемый код. Эти возможности основаны на ключевой особенности семантики таких языков: представлении программ в виде конструкций из оперирующих неизменяемыми значениями чистых функций. Но эта же особенность существенно ограничивает производительность таких программ в задачах обработки больших массивов данных. При наивной интерпретации любое изменение некоторого массива должно создавать его изменённую копию в памяти. Это приводит к чрезмерным накладными расходами процессорного времени и памяти.
В докладе мы рассмотрим, как эта проблема решается в языке SAC: Single Assignment C. SAC — функциональный язык с акцентом на обработке массивов, с компилятором, генерирующим высокопроизводительный параллельный машинный код. Мы коснёмся основных конструкций языка и применяемого в его компиляторе метода оптимизации, позволяющего сократить количество создаваемых во время исполнения программы копий массивов.

Докладчик: Никита Вольнов, магистрант Института Математики и Механики Уральского отделения РАН

Материалы к докладу:

Single Assignment C Tutorial - Sven-Bodo Scholz, Stepan Herhut, Frank Penczek, Clement Grelck, Artem Shinkarov;
Single Assignment C - Functional Programming Using Imperative Style - Sven-Bodo Scholz;
Implicit Memory Management for SAC - Clement Grelck, Kai Trojahner;
A Compiler Backend for Generic Programming with Arrays - Dietmar Kreye;

Семинар состоится онлайн в 17:30, ссылка на встречу https://meet.google.com/myu-dhmz-gvu.

P.S.
Напоминаем, что у нас есть гугл-календарь семинаров, на который можно подписаться: https://bit.ly/3dui54N
Также записи семинаров выкладываются на youtube: https://www.youtube.com/playlist?list=PL1iwBJ9vqBRbFr..