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 条
  • [21] An Extensible and Lightweight Modular Ontology for Programming Education
    Grevisse, Christian
    Botev, Jean
    Rothkugel, Steffen
    ADVANCES IN COMPUTING, CCC 2017, 2017, 735 : 358 - 371
  • [22] ALEC - USER EXTENSIBLE SCIENTIFIC PROGRAMMING LANGUAGE
    NAPPER, RBE
    FISHER, RN
    COMPUTER JOURNAL, 1976, 19 (01): : 25 - 31
  • [23] Reactive Programming with Reactive Variables
    Schuster, Christopher
    Flanagan, Cormac
    COMPANION PROCEEDINGS OF THE 15TH INTERNATIONAL CONFERENCE ON MODULARITY (MODULARITY COMPANION'16), 2016, : 29 - 33
  • [24] Kart-ON: An Extensible Paper Programming Strategy for Affordable Early Programming Education
    Sabuncuoglu A.
    Sezgin T.M.
    Proceedings of the ACM on Human-Computer Interaction, 2022, 6 (EICS)
  • [25] An extensible, plugin-based tool for modeling flow and reactive transport in water systems
    Massoudieh, Arash
    Nguyen, Khiem
    Murthy, Sudhir
    ENVIRONMENTAL MODELLING & SOFTWARE, 2023, 164
  • [26] Extensible Polyglot Programming Support in Existing Component Frameworks
    Keznikl, Jaroslav
    Malohlava, Michal
    Bures, Tomas
    Hnetynka, Petr
    2011 37TH EUROMICRO CONFERENCE ON SOFTWARE ENGINEERING AND ADVANCED APPLICATIONS (SEAA 2011), 2011, : 107 - 115
  • [27] Oto, a generic and extensible tool for marking programming assignments
    Tremblay, G.
    Guerin, F.
    Pons, A.
    Salah, A.
    SOFTWARE-PRACTICE & EXPERIENCE, 2008, 38 (03): : 307 - 333
  • [28] BabeLO-An Extensible Converter of Programming Exercises Formats
    Queiros, Ricardo
    Leal, Jose Paulo
    IEEE TRANSACTIONS ON LEARNING TECHNOLOGIES, 2013, 6 (01): : 38 - 45
  • [29] A deliberative and reactive diagnosis agent based on logic programming
    Schroeder, Michael
    Mora, Iara De Almeida
    Pereira, Luis Moniz
    Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics), 2015, 1193 : 293 - 307
  • [30] Visual Programming of Subsumption-Based Reactive Behaviour
    Banyasad, Omid
    Cox, Philip T.
    INTERNATIONAL JOURNAL OF ADVANCED ROBOTIC SYSTEMS, 2008, 5 (04) : 361 - 378