RacketLogger: Logging and Visualising Changes in DrRacket

Turgut Reis Kursun, Jens Van der Plas, Quentin Stiévenart, Coen De Roover
2022 Zenodo  
Developers frequently make code changes while programming, such as deleting a line of code and renaming or introducing a variable. These changes can be detected and logged, for example by the IDE used by the developer. Logging changes is possible at two levels: at the textual level or at the level of the abstract syntax tree (AST) of the program. The logged changes, in both forms, are useful because they can be used to build new software engineering tools, such as static code analysers. Plugins
more » ... that log changes have already been developed for some IDEs. However, so far, no change-logging plugin has been developed for the DrRacket IDE, which supports the development of programs written in Scheme-like languages such as R5RS Scheme and Racket. To fill this gap, we have developed RacketLogger, a change-logging plugin for DrRacket. RacketLogger logs changes both at the textual level and at the AST level. To determine changes at the level of the AST, we have adapted Negara et al.'s algorithm to support Scheme syntax. We have evaluated our plugin by creating a visualisation for the logged changes to measure how well RacketLogger can be used as a building block, and conducted a small-scale user study to measure its usability.
doi:10.5281/zenodo.6326893 fatcat:eap7vi3c5fgi5jwhisgaulr3ka