Extensible Tooling for Reactive Programming Based on

被引:0
|
作者
Ramson, Stefan [1 ]
Brand, Markus [1 ]
Lincke, Jens [1 ]
Hirschfeld, Robert [1 ]
机构
[1] Univ Potsdam, Hasso Plattner Inst, Potsdam, Germany
来源
JOURNAL OF OBJECT TECHNOLOGY | 2024年 / 23卷 / 01期
关键词
Programming Tools; Development Environments; Reactive Programming; Active Expressions; Lively Kernel; FUTURE; BACK;
D O I
10.5381/jot.2024.23.1.a4
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Reactive programming uses dedicated language concepts such as signals, data bindings, and constraints, so developers can better express behavior that is triggered by data changes and user interactions. As applications also contain aspects that cannot be easily expressed through reactive programming, reactive concepts are often integrated into more generally applicable imperative programming languages. Although such language integrations are readily available, working on reactive code with tools designed for imperative code is hard, because without dedicated tool support implementation details may leak unintentionally. There are special tools for reactive programming available, however, they are expensive to make. Further, a tool typically supports only a single language concept and cannot be applied to others even though they build on similar ideas. Consequently, control flow or data flow cannot be followed between concepts. We propose to leverage the commonalities found in reactive programming concepts to create reusable tool components for data gathering and visualization. To do so we create a toolset working on a generalization of reactive programming concepts, Active Expressions. By building upon the generic tool components, tool developers can create tool support for specific reactive concepts. Furthermore, multiple reactive concepts and their potentially complex interaction can be explored in one shared environment. We implemented the approach in the Lively4 Web-based JavaScript development environment using its Active Expression framework. Our toolset gathers relevant data about the reactive system and visualizes it using code annotations, an overview tree, an event timeline, and a dependency graph. We evaluate the reusability of this toolset by adapting it to two more concepts: signals, and implicit layer activation, known from context-oriented programming. We found that most of the functionality provided by the toolset can be reused, thus, reducing the implementation effort. Further, we show that multiple reactive concepts can be supported by the same common toolset. Programmers can use and debug multiple different reactive concepts simultaneously, without requiring new tools for each one. For future work, we believe our common toolset provides a starting point for researching the interplay between multiple reactive programming concepts.
引用
收藏
页数:32
相关论文
共 50 条
  • [1] RHEA: A Reactive, Heterogeneous, Extensible, and Abstract Framework for Dataflow Programming
    Melkonian, Orestis
    Charalambidis, Angelos
    PROCEEDINGS OF THE 5TH ACM SIGPLAN INTERNATIONAL WORKSHOP ON REACTIVE AND EVENT-BASED LANGUAGES AND SYSTEMS (REBLS'18), 2018, : 11 - 20
  • [2] PROGRAMMING AND SOFTWARE TOOLING
    WAKS, DJ
    INSTRUMENTATION TECHNOLOGY, 1972, 19 (08): : 32 - &
  • [3] PROGRAMMING AND SOFTWARE TOOLING.
    Waks, D.J.
    1600, (19):
  • [4] AEPL - EXTENSIBLE PROGRAMMING LANGUAGE
    KATZENELSON, J
    MILGROM, E
    INTERNATIONAL JOURNAL OF COMPUTER MATHEMATICS, 1975, 5 (01) : 3 - 35
  • [5] CREATION OF EXTENSIBLE PROGRAMMING TOOLS
    TODOROI, DN
    GORBATIKOV, VG
    KRETSU, SA
    PERETYATKOV, SM
    ROMANCHUK, LI
    PROGRAMMING AND COMPUTER SOFTWARE, 1989, 15 (05) : 234 - 242
  • [6] GraalSqueak Toward a Smalltalk-Based Tooling Platform for Polyglot Programming
    Niephaus, Fabio
    Felgentreff, Tim
    Hirschfeld, Robert
    PROCEEDINGS OF THE 16TH ACM SIGPLAN INTERNATIONAL CONFERENCE ON MANAGED PROGRAMMING LANGUAGES AND RUNTIMES (MPLR '19), 2019, : 14 - 26
  • [7] Extensible robot off-line programming system based on Qt
    School of Automation, Ministry of Education, Southeast University, Nanjing
    210096, China
    不详
    210096, China
    Huazhong Ligong Daxue Xuebao, (513-516):
  • [8] EXTENSIBLE PROGRAMMING - BEYOND REUSABLE OBJECTS
    ANDERSON, DE
    BEHAVIOR RESEARCH METHODS INSTRUMENTS & COMPUTERS, 1995, 27 (02): : 131 - 133
  • [9] PROGRAMMING GRAPHICS PROCESSORS WITH EXTENSIBLE LANGUAGES
    Adinetz, A. V.
    BULLETIN OF THE SOUTH URAL STATE UNIVERSITY SERIES-MATHEMATICAL MODELLING PROGRAMMING & COMPUTER SOFTWARE, 2011, (09): : 52 - 63
  • [10] Generic Programming with Extensible Data Types
    Hubers, Alex
    Morris, J. Garrett
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2023, 7 (ICFP):