Improving Readability of Scratch Programs with Search-based Refactoring

Autor: Simon Labrenz, Nina Körber, Gordon Fraser, Stephan Lukasczyk, Eva Gründinger, Sebastian Schweikl, Felix Adler, Jonas Lerchenberger
Jazyk: angličtina
Rok vydání: 2021
Předmět:
Zdroj: SCAM
Popis: Block-based programming languages like Scratch have become increasingly popular as introductory languages for novices. These languages are intended to be used with a "tinkering" approach which allows learners and teachers to quickly assemble working programs and games, but this often leads to low code quality. Such code can be hard to comprehend, changing it is error-prone, and learners may struggle and lose interest. The general solution to improve code quality is to refactor the code. However, Scratch lacks many of the common abstraction mechanisms used when refactoring programs written in higher programming languages. In order to improve Scratch code, we therefore propose a set of atomic code transformations to optimise readability by (1) rewriting control structures and (2) simplifying scripts using the inherently concurrent nature of Scratch programs. By automating these transformations it is possible to explore the space of possible variations of Scratch programs. In this paper, we describe a multi-objective search-based approach that determines sequences of code transformations which improve the readability of a given Scratch program and therefore form refactorings. Evaluation on a random sample of 1000 Scratch programs demonstrates that the generated refactorings reduce complexity and entropy in 70.4% of the cases, and 354 projects are improved in at least one metric without making any other metric worse. The refactored programs can help both novices and their teachers to improve their code.
To be published in the Proceedings of the 21st IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM'21). This version includes an extended appendix with transformation examples
Databáze: OpenAIRE