Preview

Modeling and Analysis of Information Systems

Advanced search

LLVM-based Static Analysis Tool Using Type and Effect Systems

Abstract

The intention of this paper is to describe a static analysis tool under development. The principal idea behind the design of this tool is to use type and effect systems for static analysis of real programs. The tool uses LLVM bitcode files as input, thus extending the set of analyzed languages to those supported by LLVM compiler infrastructure. It uses its own parser of bitcode files and a program model similar to that of LLVM. The approach taken is to research feasibility of designing instruments for static analysis by applying known type and effect system based algorithms for detecting defects to LLVM bitcode language and effectively to the original source code.

About the Authors

M. A. Belyaev
Санкт-Петербургский государственный политехнический университет
Russian Federation


V. A. Tsesko
Санкт-Петербургский государственный политехнический университет
Russian Federation


References

1. Coverity Scan Open Source Report, 2009. <http://scan.coverity.com/report/>

2. Ertl M.A., Wien TU: Domination-Based Scoping and Static Single Assignment Languages. Static Single-Assignment Form Seminar, 2009.

3. Horwitz S. Precise Flow-Insensitive May-Alias Analysis is NP-Hard. ACM Transactions on Programming Languages and Systems, 1-6. ACM Association for Computing Machinery, 1997.

4. Itsykson V., Moiseev M., Tsesko V., Zakharov A. Automatic defects detection in industrial C/C++ software. Software Engineering Conference in Russia (CEE- SECR), 2009.

5. Jim T., Palsberg J. Type inference in systems of recursive types with subtyping. Manuscript, 1999.

6. Lattner C., Haberman J., Housel P. S. LLVM Bitcode File Format. <http://llvm.org/docs/BitCodeFormat.html>

7. Lattner C. LLVM Language Reference Manual. <http://llvm.org/docs/LangRef.html>

8. llvm-parser - A haskell library for parsing LLVM binary bitcode files. <http://code.google.com/p/llvm-parser>

9. Marino D., Millstein T. A Generic Type-and-Effect System. TLDI, 2010.

10. Nielson F., Nielson H. R. Type and Effect Systems. Correct System Design, 1999. P. 114-136.

11. Nielson F., Nielson H. R., Hankin C. Principles of Program Analysis. Springer- Verlag, 2005.

12. Ross K.P.D. From System F to Typed Assembly Language. Twenty-Fifth ACM SIGPLAN Symposium on Principles of Programming Languages. 1998. P. 85-97.

13. Zadeck K. The Development of Static Single Assignment Form. Static Single- Assignment Form Seminar, 2009.


Review

For citations:


Belyaev M.A., Tsesko V.A. LLVM-based Static Analysis Tool Using Type and Effect Systems. Modeling and Analysis of Information Systems. 2011;18(4):45-55. (In Russ.)

Views: 601


Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 License.


ISSN 1818-1015 (Print)
ISSN 2313-5417 (Online)