[论文解读] Low-Code Programming Models
本文通过分析可视化编程、基于演示的编程和基于自然语言的编程,统一了低代码编程模型的研究,识别出领域特定语言和模型-视图-控制器模式作为基础性统一原则。该文提出一个连贯的框架以构建低代码工具,强调可重用组件、元工具和终端用户软件工程,从而赋能公民开发者与专业开发者。
Traditionally, computer programming has been the prerogative of professional developers using textual programming languages such as C, Java, or Python. Low-code programming promises an alternative: letting citizen developers create programs using visual abstractions, demonstrations, or natural language. While low-code programming is currently getting a lot of attention in industry, the relevant research literature is scattered, and in fact, rarely uses the term "low-code". This article brings together low-code literature from various research fields, explaining how techniques work while providing a unified point of view. Low-code has the potential to empower more people to automate tasks by creating computer programs, making them more productive and less dependent on scarce professional software developers.
研究动机与目标
- 整合跨不同领域和方法的低代码编程研究碎片化成果。
- 厘清低代码、无代码与终端用户编程之间的区别,将低代码定位为更广泛、更具包容性的范式。
- 识别出统一低代码技术的共同编程模型抽象——尤其是领域特定语言和MVC模式。
- 提出可重用的构建模块和元工具,以加速低代码工具的开发并提升互操作性。
- 倡导在低代码环境中引入终端用户软件工程实践,以确保长期可维护性和质量。
提出的方法
- 分析三种核心低代码技术:可视化编程语言(VPLs)、基于演示的编程(PBD)和基于自然语言的编程(PBNL),聚焦其基本构建单元。
- 提出以领域特定语言(DSLs)和模型-视图-控制器(MVC)模式为基础的统一框架,作为低代码系统的骨干。
- 建议使用元工具(如用于VPLs的Blockly、用于PBD的DreamCoder、用于PBNL的Overnight)来自动化低代码工具的创建。
- 引入元循环工具——即用于构建其他低代码工具的低代码工具——以增强开发者共情能力并实现工具创建的民主化。
- 推荐复用通用UI组件(如代码画布、调色板、配置面板)和共享AI组件(如语义解析器、语言模型),以实现低代码开发的标准化和加速。
- 倡导将终端用户软件工程(EUSE)实践——如版本控制、断言和测试覆盖率——整合到低代码环境中,以支持长期的程序维护。
实验结果
研究问题
- RQ1在多样化的低代码编程模型之间,其共同的抽象和统一原则是什么?
- RQ2元工具和元循环设计在多大程度上能加速新低代码平台的开发?
- RQ3当可视化编程、基于演示的编程和基于自然语言的编程相结合时,它们在哪些方面能够互补?
- RQ4领域特定语言和模型-视图-控制器模式在实现一致、可组合的低代码系统中扮演什么角色?
- RQ5如何将终端用户软件工程实践整合到低代码环境中,以确保程序质量与长期可维护性?
主要发现
- 模型-视图-控制器(MVC)模式和领域特定语言(DSLs)作为统一基础,贯穿于可视化编程、基于演示的编程和基于自然语言的编程技术之中。
- 结合低代码技术——例如使用PBD来解决PBNL中的歧义——可弥补单一技术的缺陷,从而提升程序准确性。
- 元工具如Blockly、DreamCoder和Overnight通过自动化重复性实现任务,实现了低代码平台开发的更快、更一致。
- 元循环低代码工具(如VisPRO和Racket)使开发者能够构建和优化自己的低代码工具,从而增强用户共情能力并推动创新。
- 在低代码系统之间复用通用UI组件和AI模块(如语义解析器、语言模型)可提升一致性,缩短开发时间,并改善互操作性。
- 将终端用户软件工程实践(如版本控制、断言和测试覆盖率)整合到低代码环境中,对于确保程序长期可靠性与演进至关重要。
更好的研究,从现在开始
从阅读论文到最终审阅,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。