Особенности преобразования хвостовой рекурсии в функционально-потоковом языке параллельного программирования

Перевод названия: Features of tail recursion transformation in a functional dataflow language for parallel programming

Тип публикации: статья из журнала

Год издания: 2013

Ключевые слова: tail recursion, Code optimization, functional programming, Dataflow programming, information graph, destructive assignment, delayed list, хвостовая рекурсия, оптимизация программы, функциональное программирование, программирование потоков данных, информационный граф, разрушающее присваивание, задержанный список

Аннотация: В работе рассматриваются вопросы выявления хвостовой рекурсии и ее преобразования в цикл для языка функционально-потокового параллельного программирования Пифагор. Данный язык ориентирован на реализацию не только последовательных, но и параллельных рекурсивных вызовов. Вместе с тем, применение в нем хвостовой рекурсии также допустимо и позволяет реализовывать конвейерный параллелизм при использовании асинхронных списков. Среди возможных вариантов исследуется случай, когда рекурсивный вызов является последней операцией внутри задержанного списка, раскрываемой перед возвратом из функции. При этом предполагается что аргумент, поступающий на вход функции, является списком данных или скаляром. Данная ситуация является одной из простейших, но при этом широко применяется в различных программах. Реализация метода ее преобразования в итерацию позволяет в дальнейшем перейти к оптимизации программ, в которых хвостовая рекурсия сочетается с другими операциями, используемыми при функционально-потоковом параллельном программировании. Приведенный пример демонстрирует особенности замены хвостовой рекурсии специальной операцией повторения, позволяющей перенаправить выходной поток данных на вход, используемый для поступления аргумента функции. Для рассматриваемого случая предложен алгоритм преобразования хвостовой рекурсии в итерацию. Описаны действия, выполняемые оператором повторения функции при передаче данных на вход аргумента. Выполняемые алгоритмом преобразования осуществляются на реверсивном информационном графе, формируемом в процессе трансляции исходных текстов анализируемой функции

Ссылки на полный текст

Издание

Журнал: Системы. Методы. Технологии

Выпуск журнала: 3

Номера страниц: 106-111

ISSN журнала: 20775415

Место издания: Братск

Издатель: Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Братский государственный университет"

Авторы

Вхождение в базы данных

Информация о публикациях загружается с сайта службы поддержки публикационной активности СФУ. Сообщите, если заметили неточности.

Вы можете отметить интересные фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.