RUS  ENG
Full version
JOURNALS // Computing, Telecommunication and Control // Archive

Computing, Telecommunication and Control, 2023 Volume 16, Issue 1, Pages 46–59 (Mi ntitu320)

Software of Computer, Telecommunications and Control Systems

Flovver: a graphical functional language with a compiler focused on recursion optimization

A. A. Zavyalova, S. M. Staroletovb

a Novosibirsk State University
b Altai State Technical University

Abstract: 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.

Keywords: programming language, graphical language, functional language, optimizing compiler, recursion.

UDC: 004.43

Received: 18.02.2023

Language: English

DOI: 10.18721/JCSTCS.16104



© Steklov Math. Inst. of RAS, 2025