ChameleonIDE: Untangling Type Errors Through Interactive Visualization and Exploration

03/17/2023
by   Shuai Fu, et al.
0

Dynamically typed programming languages are popular in education and the software industry. While presenting a low barrier to entry, they suffer from run-time type errors and longer-term problems in code quality and maintainability. Statically typed languages, while showing strength in these aspects, lack in learnability and ease of use. In particular, fixing type errors poses challenges to both novice users and experts. Further, compiler-type error messages are presented in a static way that is biased toward the first occurrence of the error in the program code. To help users resolve such type errors, we introduce ChameleonIDE, a type debugging tool that presents type errors to the user in an unbiased way, allowing them to explore the full context of where the errors could occur. Programmers can interactively verify the steps of reasoning against their intention. Through three studies involving real programmers, we showed that ChameleonIDE is more effective in fixing type errors than traditional text-based error messages. This difference is more significant in harder tasks. Further, programmers actively using ChameleonIDE's interactive features are shown to be more efficient in fixing type errors than passively reading the type error output.

READ FULL TEXT

page 3

page 6

page 7

research
08/23/2023

Integrating Large Language Models into the Debugging C Compiler for generating contextual error explanations

This paper introduces a method for Large Language Models (LLM) to produc...
research
10/17/2017

EffectiveSan: Type and Memory Error Detection using Dynamically Typed C/C++

Low-level programming languages such as C and C++ are vulnerable to erro...
research
06/27/2019

Enhancing Python Compiler Error Messages via Stack Overflow

Background: Compilers tend to produce cryptic and uninformative error me...
research
04/29/2021

SYNFIX: Automatically Fixing Syntax Errors using Compiler Diagnostics

Beginning programmers struggle with the complex grammar of modern progra...
research
11/12/2020

The Usability of Ownership

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

SA4U: Practical Static Analysis for Unit Type Error Detection

Unit type errors, where values with physical unit types (e.g., meters, h...
research
09/12/2023

REVIS: An Error Visualization Tool for Rust

Rust is a programming language that uses a concept of ownership to guara...

Please sign up or login with your details

Forgot password? Click here to reset