ACM Home Page
Please provide us with feedback. Feedback
The case for analysis preserving language transformation
Full text PdfPdf (223 KB)
Source International Symposium on Software Testing and Analysis archive
Proceedings of the 2006 international symposium on Software testing and analysis table of contents
Portland, Maine, USA
SESSION: Session 5: test execution table of contents
Pages: 191 - 202  
Year of Publication: 2006
ISBN:1-59593-263-1
Authors
Xiaolan Zhang  IBM T. J. Watson Research Center, Hawthorne, NY
Larry Koved  IBM T. J. Watson Research Center, Hawthorne, NY
Marco Pistoia  IBM T. J. Watson Research Center, Hawthorne, NY
Sam Weber  IBM T. J. Watson Research Center, Hawthorne, NY
Trent Jaeger  IBM T. J. Watson Research Center, Hawthorne, NY
Guillaume Marceau  Brown University, Providence, RI
Liangzhao Zeng  IBM T. J. Watson Research Center, Hawthorne, NY
Sponsors
SIGSOFT: ACM Special Interest Group on Software Engineering
ACM: Association for Computing Machinery
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 50,   Citation Count: 1
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/1146238.1146260
What is a DOI?

ABSTRACT

Static analysis has gained much attention over the past few years in applications such as bug finding and program verification. As software becomes more complex and componentized, it is common for software systems and applications to be implemented in multiple languages. There is thus a strong need for developing analysis tools for multi-language software. We introduce a technique called Analysis Preserving Language Transformation (aplt) that enables the analysis of multi-language software, and also allows analysis tools for one language to be applied to programs written in another. aplt preserves data and control flow information needed to perform static analyses, but allows the translation to deviate from the original program's semantics in ways that are not pertinent to the particular analysis. We discuss major technical difficulties in building such a translator, using a C-to-Java translator as an example. We demonstrate the feasibility and effectiveness of aplt using two usage cases: analysis of the Java runtime native methods and reuse of Java analysis tools for C. Our preliminary results show that a control- and data-flow equivalent model for native methods can eliminate unsoundness and produce reliable results, and that aplt enables seamless reuse of analysis tools for checking high-level program properties.


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
Security Focus Bugtraq Posting. http://cert.unistuttgart.de/archive/bugtraq/2001/03/msg00420.html.
 
2
The SUIF 2 Compiler System. Available at http://suif.stanford.edu/suif/suif2/index.html.
 
3
The vortex project. Available at http://www.cs.washington.edu/research/projects/cecil/www/vortex.html.
 
4
 
5
American National Standards Institute, 1430 Broadway, New York, NY 10018, USA. ANSI Fortran X3.9-1978, 1978. Approved April 3, 1978 (also known as Fortran 77).
 
6
7
 
8
 
9
 
10
M. Bishop and M. Dilger. Checking for race conditions in file accesses. Computing Systems, 9(2):131--152, 1996.
 
11
H. Chen, D. Dean, and D. Wagner. Model Checking One Million Lines of C Code. In Proceedings of the 11th Annual Network and Distributed System Security Symposium, San Diego, CA, Feb. 4-6, 2004.
12
 
13
14
15
 
16
 
17
 
18
D. Engler, B. Chelf, A. Chou, and S. Hallem. Checking system rules using system-specific, programmer-written compiler extensions. In Proceedings of the Fourth Symposium on Operation System Design and Implementation (OSDI), October 2000.
 
19
A. M. Erosa and L. J. Hendren. Taming Control Flow:A Structured Approach to Eliminating Goto Statements. In Proceedings of the 1994 InternationalConference on Computer Languages, pages 229--240, May 16-19, 1994. Toulouse, France.
 
20
J. Field, D. Goyal, G. Ramalingam, and E. Yahav. Typestate verification: Abstraction techniques and complexity results, 2003.
21
22
23
24
 
25
IBM. The toronto portable optimizer.
 
26
S. K. Jain, G. Marceau, X. Zhang, L. Koved, and T. Jaeger. INTELLECT: INTErmediate-Language LEvel C Translator. Technical Report 23907, IBM, 2006. Available at http://domino.research.ibm.com/library/cyberdig.nsf/index.html.
 
27
Jazillian, Inc. How to convert c to java. Available at http://jazillian.com/how.html.
 
28
T. Jensen, D. Metayer, and T. Thorn. Verification of control flow based security properties. In Proceedings of the 1999 IEEE Symposium on Security and Privacy, May 1999.
 
29
R. Johnson and D. Wagner. Finding user/kernel pointer bugs with type inference. In Proceedings of the USENIX Security Symposium, Aug. 2004.
30
 
31
D. Larochelle and D. Evans. Statically detecting likely buffer overflow vulnerabilities. In Proceedings of the Tenth USENIX Security Symposium, pages 177--190, 2001.
 
32
 
33
 
34
 
35
N. Nethercote and J. Seward. Valgrind: A program supervision framework. In Proceedings of the Third Workshop on Runtime Verification (RV'03), Boulder, Colorado, USA, July 2003.
 
36
Novosoft. C to java converter. Available at http://in.tech.yahoo.com/020513/94/1nxuw.html.
 
37
R. W. O'Callahan. The shrike toolkit. Available at http://org.eclipse.cme/contributions/shrike/.
 
38
M. Pistoia, R. J. Flynn, L. Koved, and V. C. Sreedhar. Interprocedural analysis for privileged code placement and tainted variable detection. In ECOOP 2005 - Object-Oriented Programming: 19th European Conference, Glasgow, UK, July 25-29, 2005. Proceedings, volume 3586 of Lecture Notes in Computer Science, pages 362-386. Springer, Aug. 2005.
39
 
40
B. G. Ryder. Dimensions of Precision in Reference Analysis of Object-Oriented Languages. In Proceedings of the 12th International Conference on Compiler Construction, pages 126--137, Warsaw, Poland, April 2003. Invited Paper.
 
41
J. H. Saltzer and M. D. Schroeder. The Protection of Information in Computer Systems. In Proceedings of the IEEE, volume 63, pages 1278--1308, Sept. 1975.
 
42
U. Shankar, K. Talwar, J. S. Foster, and D. Wagner. Detecting format string vulnerabilities with type qualifiers. In Proceedings of the Tenth USENIX Security Symposium, pages 201--216, 2001.
 
43
 
44
45
 
46
 
47
48
 
49
 
50
X. Zhang, T. Jaegert, and L. Koved. Applying Static Analysis to Verifying Security Properties. In Proceedings of the 2004 Grace Hopper Celebration of Women in Computing Conference, Chicago, IL, 2004. Also available as IBM technical report RC23246 at http://domino.research.ibm.com/library/cyberdig.nsf/index.html.


Collaborative Colleagues:
Xiaolan Zhang: colleagues
Larry Koved: colleagues
Marco Pistoia: colleagues
Sam Weber: colleagues
Trent Jaeger: colleagues
Guillaume Marceau: colleagues
Liangzhao Zeng: colleagues