Details

Title: Flovver: a graphical functional language with a compiler focused on recursion optimization // Информатика, телекоммуникации и управление. – 2023. – С. 46-59
Creators: Zavyalov A. A.; Staroletov S. M.
Imprint: 2023
Collection: Общая коллекция
Subjects: Вычислительная техника; Языки программирования; functional programming languages; graphical functional languages; compilers; compiler recursion; optimizing compilers; lambda-calculus; graphical programming languages; функциональные языки программирования; графические функциональные языки; компиляторы; рекурсия компиляторов; оптимизирующие компиляторы; лямбда-исчисления; графические языки программирования
UDC: 004.43
LBC: 32.973-018.1
Document type: Article, report
File type: PDF
Language: English
DOI: 10.18721/JCSTCS.16104
Rights: Свободный доступ из сети Интернет (чтение, печать, копирование)
Record key: RU\SPSTU\edoc\71278

Allowed Actions: Read Download (1.0 Mb)

Group: Anonymous

Network: Internet

Annotation

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-подобный код. Подход демонстрируется на известных рекурсивных программах вычисления факториала и последовательности Фибоначчи.

Document access rights

Network User group Action
ILC SPbPU Local Network All Read Print Download
-> Internet All Read Print Download

Usage statistics

stat Access count: 48
Last 30 days: 3
Detailed usage statistics