Search engine for discovering works of Art, research articles, and books related to Art and Culture
ShareThis
Javascript must be enabled to continue!

Static Blame for gradual typing

View through CrossRef
Abstract Gradual typing integrates static and dynamic typing by introducing a dynamic type and a consistency relation. A problem of gradual type systems is that dynamic types can easily hide erroneous data flows since consistency relations are not transitive. Therefore, a more rigorous static check is required to reveal these hidden data flows statically. However, in order to preserve the expressiveness of gradually typed languages, static checks for gradually typed languages cannot simply reject programs with potentially erroneous data flows. By contrast, a more reasonable request is to show how these data flows can affect the execution of the program. In this paper, we propose and formalize Static Blame, a framework that can reveal hidden data flows for gradually typed programs and establish the correspondence between static-time data flows and runtime behavior. With this correspondence, we build a classification of potential errors detected from hidden data flows and formally characterize the possible impact of potential errors in each category on program execution, without simply rejecting the whole program. We implemented Static Blame on Grift, an academic gradually typed language, and evaluated the effectiveness of Static Blame by mutation analysis to verify our theoretical results. Our findings revealed that Static Blame exhibits a notable level of precision and recall in detecting type-related bugs. Furthermore, we conducted a manual classification to elucidate the reasons behind instances of failure. We also evaluated the performance of Static Blame, showing a quadratic growth in run time as program size increases.
Title: Static Blame for gradual typing
Description:
Abstract Gradual typing integrates static and dynamic typing by introducing a dynamic type and a consistency relation.
A problem of gradual type systems is that dynamic types can easily hide erroneous data flows since consistency relations are not transitive.
Therefore, a more rigorous static check is required to reveal these hidden data flows statically.
However, in order to preserve the expressiveness of gradually typed languages, static checks for gradually typed languages cannot simply reject programs with potentially erroneous data flows.
By contrast, a more reasonable request is to show how these data flows can affect the execution of the program.
In this paper, we propose and formalize Static Blame, a framework that can reveal hidden data flows for gradually typed programs and establish the correspondence between static-time data flows and runtime behavior.
With this correspondence, we build a classification of potential errors detected from hidden data flows and formally characterize the possible impact of potential errors in each category on program execution, without simply rejecting the whole program.
We implemented Static Blame on Grift, an academic gradually typed language, and evaluated the effectiveness of Static Blame by mutation analysis to verify our theoretical results.
Our findings revealed that Static Blame exhibits a notable level of precision and recall in detecting type-related bugs.
Furthermore, we conducted a manual classification to elucidate the reasons behind instances of failure.
We also evaluated the performance of Static Blame, showing a quadratic growth in run time as program size increases.

Related Results

Basic Blame and Basic Praise
Basic Blame and Basic Praise
Abstract This chapter defends an account of what the blameworthy and praiseworthy are worthy of: basic blame and basic praise. Given the wide variety of responses th...
On polymorphic gradual typing
On polymorphic gradual typing
We study an extension of gradual typing—a method to integrate dynamic typing and static typing smoothly in a single language—to parametric polymorphism and its theoretical properti...
Unlock Large Potentials of Standard Mud Gas for Real-Time Fluid Typing
Unlock Large Potentials of Standard Mud Gas for Real-Time Fluid Typing
Standard mud gas data is part of the basic mudlogging service and is mainly used for safety. Although the data is available for all wells, it is not used for real-time fluid typing...
Unlock Large Potentials of Standard Mud Gas for Real-Time Fluid Typing
Unlock Large Potentials of Standard Mud Gas for Real-Time Fluid Typing
Standard mud gas data are part of the basic mud-logging service and are mainly used for safety. Although the data are available for all wells, it is not used for real-time fluid ty...
Validation of Binary Typing for Staphylococcus aureus Strains
Validation of Binary Typing for Staphylococcus aureus Strains
ABSTRACT Most of the DNA-based methods for genetic typing of Staphylococcus aureus strains generate complex banding patterns. Therefo...
Testing and Evaluating Typing Ability in Research Writing
Testing and Evaluating Typing Ability in Research Writing
Before a person can generate writing that can be deemed respectable when using a keyboard, it is usually acknowledged that they must first have exceptional typing talents. This is ...
Application and Patent of Static Mixer in Plastic Processing
Application and Patent of Static Mixer in Plastic Processing
Background:: With the improvement of the properties of plastic products, people gradually realize that the mixing capacity of extruders cannot meet the requirements of fully mixing...
Complement genetics
Complement genetics
Abstract With the advent of recombinant DNA methodology about 20 years ago, tremendous progress has been made in the definition of the genetic basis of the complemen...

Back to Top