Corpus ID: 14104097

A Type-based Framework for Automatic Debugging

  title={A Type-based Framework for Automatic Debugging},
  author={Ozan Hafızog̃ulları and C. Kreitz},
We present a system for automatic debugging in typed functional languages. The system checks program properties specified by a user and finds bugs as well as conditions necessary to avoid them. It applies type-checking techniques built on top of the existing type system of the programming language. Its type system is based on the notion of set types, extended through type constructors, polymorphism and dependent types. Subtyping is used to allow finer specification. Type checking is achieved by… Expand
1 Citations
Automated Fast-Track Reconfiguration of Group Communication Systems
These techniques are implemented by tactics and theorems of the NuPRL proof development system and have been used successfully for the reconfiguration of application systems built with the Ensemble group communication toolkit. Expand


Dead Code Elimination Through Type Inference
This work introduces a method to detect and eliminate dead code in typed functional programming languages through a careful seperation of the type system and the problem-specific assumptions, which makes it a good candidate for a general framework for program analysis. Expand
Refinement types for ML
A type system called refinement types is described, which is an example of a new way to make this tradeoff, as well as a potentially useful system in itself. Expand
A Theory of Type Polymorphism in Programming
  • R. Milner
  • Computer Science
  • J. Comput. Syst. Sci.
  • 1978
This work presents a formal type discipline for polymorphic procedures in the context of a simple programming language, and a compile time type-checking algorithm w which enforces the discipline. Expand
Abstract debugging of higher-order imperative languages
It is shown how invariant assertions and intermittent assertions, such as termination, can be used to formally debug programs and how abstract debugging can be effectively and efficiently applied to higher-order imperative programs with exceptions and jumps to non-local labels. Expand
Effective Static Debugging via Compential Set-Based Analysis
This dissertation provides a complete prooftheoretic and algorithmic characterization of the observable behavior of constraint iii systems, and establishes a close connection between the observable equivalence of constraint systems and the equivalences of regular tree grammars. Expand
The essence of ML
It is proved that the important programming features of ML cannot be added to any impredicative language, such as the Girard-Reynolds calculus, without implicitly assuming a type of all types. Expand
Eliminating array bound checking through dependent types
We present a type-based approach to eliminating array bound checking and list tag checking by conservatively extending Standard ML with a restricted form of dependent types. This enables theExpand
Set-based analysis of ML programs
This paper develops an approximate “set-based” operational semantics for the language, which formalizes the intuition of treating program variables as sets and develops an O(n3) algorithm for computing the set based approximation of a program. Expand
Implementation of an array bound checker
This paper describes a system which checks correctness of array accesses automatically without any inductive assertions or human interaction and creates logical assertions immediately before array elements such that these assertions must be true whenever the control passes the assertion in order for the access to be valid. Expand
Using dependent types to express modular structure
The goal here is to examine some of the proposed linguistic notions with respect to how they meet the pragmatic requirements of programming in the large. Expand