An efficient, parametric fixpoint algorithm forincremental analysis of java bytecode

作者: Mario Méndez-Lojo , J. Navas , Manuel V. Hermenegildo

DOI:

关键词:

摘要: Abstract interpretation has been widely used for the analysis of object-oriented languages and, more precisely, Java source and bytecode. However, while most existing work deals with problem finding expressive abstract domains that track accurately characteristics a particular concrete property, underlying fixpoint algorithms have received comparatively less attention. In fact, many (abstract based) fixpoint algorithms rely on relatively inefficient techniques to solve inter-procedural call graphs or are specific tied analyses. We argue design an efficient algorithm is pivotal support large programs. this paper we introduce novel bytecode which includes number optimizations in order reduce iterations. Also, parametric sense it independent domain can be applied different as "plug-ins". It also incremental that, if desired, data saved so only reduced amount reanalysis needed after small program change, instrumental The multivariant flowsensitive. Finally, another interesting characteristic based transformation, prior analysis, results highly uniform representation all features language therefore simplifies analysis. Detailed descriptions decompilation solutions provided discussed example.

参考文章(30)
Bill Joy, James Gosling, Guy Steele, Gilad Bracha, Java(TM) Language Specification, The (3rd Edition) (Java (Addison-Wesley)) Addison-Wesley Professional. ,(2005)
Raja Vallee-Rai, Patrick Lam, Vijay Sundaresan, Laurie Hendren, Phong Co, Etienne M. Gagnon, Soot---a java optimization framework conference of the centre for advanced studies on collaborative research. ,(1999)
Frank Yellin, Tim Lindholm, The Java Virtual Machine Specification ,(1996)
Baudouin Charlier, Olivier Degimbe, Laurent Michel, Pascal Hentenryck, Optimization Techniques for General Purpose Fixpoint Algorithms - Practical Efficiency for the Abstract Interpretation of Prolog WSA '93 Proceedings of the Third International Workshop on Static Analysis. pp. 15- 26 ,(1993) , 10.1007/3-540-57264-3_26
Jerome Miecznikowski, Laurie Hendren, Decompiling Java Bytecode: Problems, Traps and Pitfalls compiler construction. pp. 111- 127 ,(2002) , 10.1007/3-540-45937-5_10
Suzanne Wagner Dietrich, None, EXTENSION TABLES: MEMO RELATIONS IN LOGIC PROGRAMMING. SLP. pp. 264- 272 ,(1987)
Xavier Leroy, Java Bytecode Verification: An Overview computer aided verification. pp. 265- 285 ,(2001) , 10.1007/3-540-44585-4_26
Samir Genaim, Fausto Spoto, Information Flow Analysis for Java Bytecode Lecture Notes in Computer Science. ,vol. 3385, pp. 346- 362 ,(2005) , 10.1007/978-3-540-30579-8_23
Isabelle Pollet, Baudouin Le Charlier, Agostino Cortesi, Distinctness and Sharing Domains for Static Analysis of Java Programs ECOOP 2001 — Object-Oriented Programming. ,vol. 2072, pp. 77- 98 ,(2001) , 10.1007/3-540-45337-7_5
Tal Lev-Ami, Mooly Sagiv, TVLA: A System for Implementing Static Analyses static analysis symposium. pp. 280- 301 ,(2000) , 10.1007/978-3-540-45099-3_15