Детальная информация

Название: Flovver: a graphical functional language with a compiler focused on recursion optimization // Информатика, телекоммуникации и управление. – 2023. – С. 46-59
Авторы: Zavyalov A. A.; Staroletov S. M.
Выходные сведения: 2023
Коллекция: Общая коллекция
Тематика: Вычислительная техника; Языки программирования; functional programming languages; graphical functional languages; compilers; compiler recursion; optimizing compilers; lambda-calculus; graphical programming languages; функциональные языки программирования; графические функциональные языки; компиляторы; рекурсия компиляторов; оптимизирующие компиляторы; лямбда-исчисления; графические языки программирования
УДК: 004.43
ББК: 32.973-018.1
Тип документа: Статья, доклад
Тип файла: PDF
Язык: Английский
DOI: 10.18721/JCSTCS.16104
Права доступа: Свободный доступ из сети Интернет (чтение, печать, копирование)
Ключ записи: RU\SPSTU\edoc\71278

Разрешенные действия: Прочитать Загрузить (1,0 Мб)

Группа: Анонимные пользователи

Сеть: Интернет

Аннотация

Visual languages reflect many parts of textual programming languages, however, the existing visual programming solutions lack higher-order functions and recursion concepts. The article introduces the design of a visual language Flovver, which implements the concepts of graphical functional programming. We propose a programming language that supports higher-order and recursive computations. The language accepts programs in a specially designed notation with semantics which we explain in this paper using the lambda calculus. The syntactic unit of such a program is a function that can be combined in a specific way with other functions. We present a fixpoint combinator that helps to specify a recursive behavior in the graphical functional language. To obtain calculate-effective programs, we design and implement a compiler for it, which is capable to optimize recursive programs. We also discuss code generation to JavaScript using the static single assignment (SSA) form. Finally, we propose a sketch of graphical integrated environment to design programs in Flovver using pre-defined blocks, and we present the generated SSA-like code in the paper. The approach is demonstrated on well-known Factorial and Fibonacci recursive programs.

Визуальные языки отражают многие черты текстовых языков программирования, однако в существующих решениях визуального программирования не хватает функций высшего порядка и рекурсии. В статье описан дизайн визуального языка Flovver, реализующего концепции графического функционального программирования. Предложен язык программирования, поддерживающий рекурсивные вычисления более высокого порядка. Язык принимает программы в специально разработанной нотации с семантикой, объясняемой с использованием лямбда-исчисления. Основной синтаксической единицей такой программы является функция, которая может определенным образом комбинироваться с другими функциями. Представлен комбинатор неподвижной точки, помогающий определить рекурсивное поведение в данном графическом функциональном языке. С целью получения вычислительно-эффективных программ разработан и реализован компилятор, способный оптимизировать рекурсивные программы. Рассмотрена генерация кода в программу на JavaScript с использованием формы статического одиночного присваивания (SSA). Предложен эскиз графической интегрированной среды для разработки программ во Flovver с использованием заранее определенных блоков и представлен сгенерированный SSA-подобный код. Подход демонстрируется на известных рекурсивных программах вычисления факториала и последовательности Фибоначчи.

Права на использование объекта хранения

Место доступа Группа пользователей Действие
Локальная сеть ИБК СПбПУ Все Прочитать Печать Загрузить
-> Интернет Все Прочитать Печать Загрузить

Статистика использования

stat Количество обращений: 57
За последние 30 дней: 9
Подробная статистика