ACM Home Page
Please provide us with feedback. Feedback
Semantic type qualifiers
Full text PdfPdf (141 KB)
Source Conference on Programming Language Design and Implementation archive
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation table of contents
Chicago, IL, USA
SESSION: Types table of contents
Pages: 85 - 95  
Year of Publication: 2005
ISBN:1-59593-056-6
Also published in ...
Authors
Brian Chin  University of California, Los Angeles, CA
Shane Markstrum  University of California, Los Angeles, CA
Todd Millstein  University of California, Los Angeles, CA
Sponsors
SIGPLAN: ACM Special Interest Group on Programming Languages
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 5,   Downloads (12 Months): 42,   Citation Count: 13
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1065010.1065022
What is a DOI?

ABSTRACT

We present a new approach for supporting user-defined type refinements, which augment existing types to specify and check additional invariants of interest to programmers. We provide an expressive language in which users define new refinements and associated type rules. These rules are automatically incorporated by an extensible typechecker during static typechecking of programs. Separately, a soundness checkerautomatically proves that each refinement's type rules ensure the intended invariant, for all possible programs. We have formalized our approach and have instantiated it as a framework for adding new type qualifiers to C programs. We have used this framework to define and automatically prove sound a host of type qualifiers of different sorts, including pos and neg for integers, tainted and untainted for strings, and nonnull and unique for pointers, and we have applied our qualifiers to ensure important invariants on open-source C programs.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
 
3
C. Bailleux. More security problems in bftpd-1.0.12. bugtraq mailing list post of December 8, 2000. http://www.securityfocus.com/archive/1/149977.
4
 
5
 
6
C# Language Specification, Second Edition. ECMA International, Standard ECMA-334, Dec. 2002.
 
7
B. Chin, S. Markstrum, and T. Millstein. Semantic type qualifiers. Technical Report CSD-TR-40045, UCLA Computer Science Department, November 2004.
8
 
9
 
10
11
12
 
13
R. DeLine and M. Fahndrich. Typestates for objects. In Proceedings of the 2004 European Conference on Object-Oriented Programming, LNCS 3086, Oslo, Norway, June 2004. Springer-Verlag.
 
14
D. Detlefs, G. Nelson, and J. B. Saxe. Simplify: A theorem prover for program checking. Technical Report HPL-2003-148, HP Labs, 2003.
15
16
17
18
19
20
 
21
 
22
23
 
24
R. Johnson and D. Wagner. Finding user/kernel pointer bugs with type inference. In Proceedings of the 13th USENIX Security Symposium, pages 119--134, 2004.
25
26
27
 
28
P. Martin-Löf. Constructive mathematics and computer programming. In Sixth International Congress for Logic, Methodology, and Philosophy of Science, pages 153--175, Amsterdam, 1982. North-Holland.
 
29
30
31
 
32
33
34
 
35
 
36
U. Shankar, K. Talwar, J. S. Foster, and D. Wagner. Detecting Format String Vulnerabilities with Type Qualifiers. In Proceedings of the 10th Usenix Security Symposium, Washington, D.C., Aug. 2001.
37
38
 
39
40
41

CITED BY  13

Collaborative Colleagues:
Brian Chin: colleagues
Shane Markstrum: colleagues
Todd Millstein: colleagues