LitterBox: A Linter for Scratch Programs
This addresses code quality issues for Scratch learners and researchers, but it is incremental as it applies existing linting concepts to a specific domain.
The paper tackles the problem of bugs and code smells in Scratch programs by introducing LitterBox, a linter that checks programs against known patterns and provides explanations, accessible via a web interface for learners and an open-source framework for researchers.
Creating programs with block-based programming languages like Scratch is easy and fun. Block-based programs can nevertheless contain bugs, in particular when learners have misconceptions about programming. Even when they do not, Scratch code is often of low quality and contains code smells, further inhibiting understanding, reuse, and fun. To address this problem, in this paper we introduce LitterBox, a linter for Scratch programs. Given a program or its public project ID, LitterBox checks the program against patterns of known bugs and code smells. For each issue identified, LitterBox provides not only the location in the code, but also a helpful explanation of the underlying reason and possible misconceptions. Learners can access LitterBox through an easy to use web interface with visual information about the errors in the block-code, while for researchers LitterBox provides a general, open source, and extensible framework for static analysis of Scratch programs.