2002 · 377 citations · 28 references
ComputingComputer ScienceCompilersOperating SystemsProgramming LanguagesAbstract Syntax TreesControl-flow AnalysisData TypesData-flow AnalysisType CheckingType SystemsAlias StructureConstraint-based Type CheckingFlow SensitivityLinear Type SystemsRuntime Type SystemsSoftware UpdatesType ConstraintsType Inference
We present a system for extending standard type systems with flow-sensitive type qualifiers. Users annotate their programs with type qualifiers, and inference checks that the annotations are correct. In our system only the type qualifiers are modeled flow-sensitively---the underlying standard types are unchanged, which allows us to obtain an efficient constraint-based inference algorithm that integrates flow-insensitive alias analysis, effect inference, and ideas from linear type systems to support strong updates. We demonstrate the usefulness of flow-sensitive type qualifiers by finding a number of new locking bugs in the Linux kernel.
28
Extended static checking for Java
Cormac Flanagan, K. Rustan M. Leino, Mark Lillibridge et al. · 2002 · 1.3K citations
Dawson Engler, David Yu Chen, Seth Hallem et al. · 2001 · 747 citations
Manuvir Das, Sorin Lerner, Mark Seigle · 2002 · 554 citations