RacketLogger: Logging and Visualising Changes in DrRacket

Turgut Reis Kursun, Jens Van der Plas, Quentin Stiévenart, Coen De Roover

Research output: Chapter in Book/Report/Conference proceedingConference paper

Abstract

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 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.
Original languageEnglish
Title of host publicationProceedings of the 15th European Lisp Symposium
PublisherELSAA
Number of pages8
ISBN (Electronic)2677-3465
DOIs
Publication statusPublished - 21 Mar 2022
Event15th European Lisp Symposium - Porto, Portugal
Duration: 21 Mar 202222 Mar 2022

Conference

Conference15th European Lisp Symposium
Abbreviated titleELS 2022
Country/TerritoryPortugal
CityPorto
Period21/03/2222/03/22

Keywords

  • Racket
  • change logging
  • IDEs

Fingerprint

Dive into the research topics of 'RacketLogger: Logging and Visualising Changes in DrRacket'. Together they form a unique fingerprint.

Cite this