首页> 外文会议>IEEE/ACM International Conference on Automated Software Engineering >Verified from Scratch: Program Analysis for Learners' Programs
【24h】

Verified from Scratch: Program Analysis for Learners' Programs

机译:从Scratch验证:学习者计划的计划分析

获取原文

摘要

Block-based programming languages like Scratch support learners by providing high-level constructs that hide details and by preventing syntactically incorrect programs. Questions nevertheless frequently arise: Is this program satisfying the given task? Why is my program not working? To support learners and educators, automated program analysis is needed for answering such questions. While adapting existing analyses to process blocks instead of textual statements is straightforward, the domain of programs controlled by block-based languages like Scratch is very different from traditional programs: In Scratch multiple actors, represented as highly concurrent programs, interact on a graphical stage, controlled by user inputs, and while the block-based program statements look playful, they hide complex mathematical operations that determine visual aspects and movement. Analyzing such programs is further hampered by the absence of clearly defined semantics, often resulting from ad-hoc decisions made by the implementers of the programming environment. To enable program analysis, we define the semantics of Scratch using an intermediate language. Based on this intermediate language, we implement the Bastet program analysis framework for Scratch programs, using concepts from abstract interpretation and software model checking. Like Scratch, Bastet is based on Web technologies, written in TypeScript, and can be executed using NodeJS or even directly in a browser. Evaluation on 279 programs written by children suggests that Bastet offers a practical solution for analysis of Scratch programs, thus enabling applications such as automated hint generation, automated evaluation of learner progress, or automated grading.
机译:基于块的编程语言,如刮擦支持学习者,通过提供隐藏细节的高级构造,并通过防止语法不正确的程序。仍然存在的问题经常出现:这个程序是否满足给定的任务?为什么我的程序不起作用?为了支持学习者和教育工作者,需要自动化计划分析来回答此类问题。在调整现有分析的过程块而不是文本语句中是简单的,因此由基于块的语言控制的程序域与传统程序非常不同:在划痕多个演员,表示为高度并发的程序,在图形阶段交互,由用户输入控制,而基于块的程序语句看起来很俏皮,但它们隐藏了确定视觉方面和移动的复杂数学操作。通过没有明确定义的语义,分析这些计划进一步阻碍了,通常由方案环境的实施者作出的临时决定产生。要启用程序分析,我们使用中间语言定义划痕的语义。根据这种中间语言,我们为划痕程序实施了Bastet程序分析框架,使用了抽象解释和软件模型检查的概念。像划痕一样,Bastet基于Web技术,写入TypeScript中,可以使用NodeJS或甚至直接在浏览器中执行。儿童撰写的279个计划的评估表明,Bastet提供了一种实用的解决方案,用于分析划痕程序,从而使自动提示生成,学习者进度自动评估或自动评分等应用。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号