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.
Centre pour la Communication Scientifique Directe (CCSD)
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...
People Systematically Update Moral Judgments of Blame
People Systematically Update Moral Judgments of Blame
Six experiments examine people's updating of blame judgments and test predictions developed from a socially-regulated blame perspective. According to this perspective, blame emerge...
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...
Does language familiarity affect typing speed?
Does language familiarity affect typing speed?
Typed responses have been used as a way to assess an individual’s thinking skills and creativity in the field of cognitive psychology. However, there is very little prior research ...
Pragmatics of Political Blame in British and Iraqi Parliaments
Pragmatics of Political Blame in British and Iraqi Parliaments
This research is a pragmatic study of political blame in British and Iraqi Parliaments. It aims to unfold the similarities and/or differences in terms of the pragmatic and pragma-r...
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...

Back to Top