REVIS: An Error Visualization Tool for Rust

09/12/2023
by   Ruochen Wang, et al.
0

Rust is a programming language that uses a concept of ownership to guarantee memory safety without the use of a garbage collector. However, some error messages related to ownership can be difficult to understand and fix, particularly those that depend on value lifetimes. To help developers fix lifetime-related errors, we developed REVIS, a VSCode extension that visualizes lifetime-related Rust compiler errors. We describe the design and implementation of the VSCode extension, along with a preliminary evaluation of its efficacy for student learners of Rust. Although the number of participants was too low to enable evaluation of the efficacy of REVIS, we gathered data regarding the prevalence and time to fix the compiler errors that the participants encountered.

READ FULL TEXT
research
06/27/2019

Enhancing Python Compiler Error Messages via Stack Overflow

Background: Compilers tend to produce cryptic and uninformative error me...
research
11/12/2020

The Usability of Ownership

Ownership is the concept of tracking aliases and mutations to data, usef...
research
09/10/2023

Debugging Trait Errors as Logic Programs

Rust uses traits to define units of shared behavior. Trait constraints b...
research
02/09/2023

COOLIO: A Language Support Extension for the Classroom Object Oriented Language

COOL is an Object-Oriented programming language used to teach compiler d...
research
07/20/2023

Addressing Compiler Errors: Stack Overflow or Large Language Models?

Compiler error messages serve as an initial resource for programmers dea...
research
03/17/2023

ChameleonIDE: Untangling Type Errors Through Interactive Visualization and Exploration

Dynamically typed programming languages are popular in education and the...
research
09/08/2023

A Grounded Conceptual Model for Ownership Types in Rust

Programmers learning Rust struggle to understand ownership types, Rust's...

Please sign up or login with your details

Forgot password? Click here to reset