Incremental data flow analysis is a crucial technique aimed at efficiently updating analysis results when modifications are made to a program, reducing the need for a complete reanalysis. In this study, we conducted an in-depth evaluation of various static analysis tools to assess their capabilities for incremental data flow analysis. The tools explored include Soot and SootUp, known for their flexibility in static analysis; Heros, a framework for interprocedural data flow analysis based on the IFDS/IDE framework; and Boomerang, SparseBoomerang, and SPDS, which focus on demand-driven approaches. Additionally, we examined Vasco and Reviser, tools specifically tailored for incremental analysis. While Reviser appeared promising for its dedicated focus on incremental analysis, its non-functional state, as confirmed by its creators, rendered it impractical for use. This paper offers a comparative assessment of these tools, highlighting their theoretical support, practical limitations, and potential for enabling incremental data flow analysis in future tool development. Furthermore, we implemented a program using SootUp that, while not achieving true incremental analysis, efficiently analyzes only the modified portions of code across different program versions, significantly reducing analysis time. Our findings offer a critical perspective on the current capabilities of analysis tools and suggest directions for future research and tool development.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Experimental Study of Statis Analysis Frameworks for Incremental Data Flow Analysis

  • Smakshi Alhat,
  • Aayushee Gujarathi,
  • Bhakti Chougule,
  • Shreya Mokalikar,
  • Chhaya Gosavi

摘要

Incremental data flow analysis is a crucial technique aimed at efficiently updating analysis results when modifications are made to a program, reducing the need for a complete reanalysis. In this study, we conducted an in-depth evaluation of various static analysis tools to assess their capabilities for incremental data flow analysis. The tools explored include Soot and SootUp, known for their flexibility in static analysis; Heros, a framework for interprocedural data flow analysis based on the IFDS/IDE framework; and Boomerang, SparseBoomerang, and SPDS, which focus on demand-driven approaches. Additionally, we examined Vasco and Reviser, tools specifically tailored for incremental analysis. While Reviser appeared promising for its dedicated focus on incremental analysis, its non-functional state, as confirmed by its creators, rendered it impractical for use. This paper offers a comparative assessment of these tools, highlighting their theoretical support, practical limitations, and potential for enabling incremental data flow analysis in future tool development. Furthermore, we implemented a program using SootUp that, while not achieving true incremental analysis, efficiently analyzes only the modified portions of code across different program versions, significantly reducing analysis time. Our findings offer a critical perspective on the current capabilities of analysis tools and suggest directions for future research and tool development.