en
Conference proceedings
English

Functional Block Programming and Debugging

Publication date2020
Abstract

Recent years have seen the inclusion of introductory programming courses as early as in elementary schools, as an answer to the onminpresence of computer technology. While some curriculums rely on traditional text-based languages, such as Java or Python, others advocate for more accessible visual programming environments, such as Scratch or Microsoft MakeCode. Most of these tools adopt an imperative paradigm in which programs are expressed using pre-defined instruction blocks. This setup is particularily well suited to interactive debugging environments, using the common stepping model to control execution. However, as they focus on control rather than data, they often lack appropriate mechanisms to manipulate non-trivial data structures. In an effort to provide an alternative approach, we are developing FunBlocks, a hybrid programming environment based on algebraic data types and term rewriting. Rewriting systems emphasis on data rather than control, enabling students and novices to create a better understanding of data structures, while letting them define elaborate transformation strategies without the need to get familiar with the ad-hoc semantics of pre-defined control-flow statements. Instead, terms describe the program's state syntactically, while rewriting rules describe its semantics. Furthermore, terms and rewriting rules also provide a simple way to adopt the traditional watch expressions and step-by-step execution, respectively, whereas such techniques are often difficult to apply on declarative programs. This paper gives an overview of the design principles of FunBlocks, with a particular focus on its visual editor and debugger.

Keywords
  • Visual programming
  • Functional block programming
  • Funblock
Citation (ISO format)
RACORDON, Dimitri et al. Functional Block Programming and Debugging. [s.l.] : [s.n.], 2020.
Main files (1)
Proceedings (Published version)
accessLevelRestricted
Identifiers
  • PID : unige:150868
205views
5downloads

Technical informations

Creation03/30/2021 2:03:00 PM
First validation03/30/2021 2:03:00 PM
Update time03/16/2023 12:22:51 AM
Status update03/16/2023 12:22:51 AM
Last indexation05/22/2024 3:38:04 PM
All rights reserved by Archive ouverte UNIGE and the University of GenevaunigeBlack