Tools and Algorithms for the Construction and Analysis of Systems
DOI: 10.1007/978-3-540-71209-1_43
|View full text |Cite
|
Sign up to set email alerts
|

State of the Union: Type Inference Via Craig Interpolation

Abstract: Abstract. The ad-hoc use of unions to encode disjoint sum types in C programs and the inability of C's type system to check the safe use of these unions is a long standing source of subtle bugs. We present a dependent type system that rigorously captures the ad-hoc protocols that programmers use to encode disjoint sums, and introduce a novel technique for automatically inferring, via Craig Interpolation, those dependent types and thus those protocols. In addition to checking the safe use of unions, the depende… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
11
0

Publication Types

Select...
5
3

Relationship

0
8

Authors

Journals

citations
Cited by 17 publications
(11 citation statements)
references
References 21 publications
0
11
0
Order By: Relevance
“…It remains for future work to similarly consider an extension of Dminor with first-class blame as a contracts language. Some other prior work on dependent type systems has specifically targeted correct access to union types in COBOL (Komondoor et al, 2005) and in C (Jhala et al, 2007).…”
Section: Related Workmentioning
confidence: 99%
“…It remains for future work to similarly consider an extension of Dminor with first-class blame as a contracts language. Some other prior work on dependent type systems has specifically targeted correct access to union types in COBOL (Komondoor et al, 2005) and in C (Jhala et al, 2007).…”
Section: Related Workmentioning
confidence: 99%
“…The work on the C programming language [9,2] deals with a language that allows subtle pointer and address arithmetic manipulations, but already contains significant static type information. PHP is a dynamically type safe language in that the run-time system stores dynamic type information, which makes e.g.…”
Section: Related Workmentioning
confidence: 99%
“…For instance, type inference was applied to Cobol [19,20] to determine subtypes of existing types and to check for type equivalence. Static analysis and model checking have been used on Cobol to determine when a scalar type should be better regarded as a record type [21] and to determine unions the variants of which are consistently accessed through discriminators [22,23].…”
Section: Related Workmentioning
confidence: 99%