期刊文献+

流敏感按需指针别名分析算法 被引量:2

Research on Flow Sensitive Demand Driven Alias Analysis
下载PDF
导出
摘要 为了提高交互环境下指针别名查询的响应效率,近期研究提出通过只分析与目标相关指针的按需分析策略来降低浪费在与目标无关的指针分析的额外开销.典型的代表是基于上下文无关文法的按需别名分析算法.但是,该算法的精度只局限于控制流不敏感.控制流不敏感的别名关系将约束上层分析的精度.针对该不足,提出了具有流敏感精度的按需别名分析算法.首先采用不完全静态单赋值语句形式来区分指针变量赋值实例,然后通过层次线性化编码方法来表达控制流图中的流敏感信息以构建赋值流图,最后将别名关系查询问题转换为在赋值流图上搜索目标结点间在控制流可达条件下赋值路径的可达性问题,进而实现流敏感的按需别名分析.实验表明,与流不敏感的按需别名分析相比,该方法可以在保证查询效率的前提下,有效提高按需别名分析的精度. In order to improve the response efficiency of pointer alias queries in the interactive environment,researches are interested in the demand driven strategy to reduce the cost for analyzing the unrelated pointer variables with respect to the objectives.The demand driven alias analysis based on the context free grammar has been proposed.However,its precision is only limited to the flowinsensitivity.The flow-insensitivity pointer alias restricts the precision of overlying analysis,so the bug detection results in more false alarms than the one with flow-sensitive alias analysis.In this paper,we propose a demand driven pointer alias analysis based on the graph reachability and the context free grammar to provide the flow sensitive precision,which has tolerable additional overhead comparing with the flow-insensitive alias analysis.First the updates of pointer variables are discriminated by the partial single static assignment to filter out the unrelated pointer variables as early as possible.Then the sequence of control flow along these assignments is expressed in the form of level linearization code,which is used to construct the assignment flow graph.Finally,the query of alias in demand driven is formalized as the search of reachability of target nodes in the assignment flow graph to achieve the precision of flow sensitivity.The experiments demonstrate that this presented method can improve the flow sensitivity the precision of alias analysis in demand driven with overhead tolerable.
出处 《计算机研究与发展》 EI CSCD 北大核心 2015年第7期1620-1630,共11页 Journal of Computer Research and Development
基金 国家自然科学基金项目(61173021)
关键词 别名分析 流敏感精度 按需查询 上下文无关语言 图可达性 alias analysis flow sensitivity demand driven search context free language graph reachability
  • 相关文献

参考文献26

  • 1Zheng X, Rugina R. Demand-driven alias analysis for C [C] //Proc of the 35th Annual ACM SIGPLAN-SIGACT Symp on Principles of Programming Languages (POPL 2008). New York: ACM, 2008: 197-208.
  • 2韩伟,贺也平.类Unix文件系统中TOCTTOU缺陷的静态分析方法[J].计算机研究与发展,2011,48(8):1430-1437. 被引量:2
  • 3Alpuente M, Felifl M A, Joubert C, et al. DATALOG_ SOLVE: A datalog-based demand-driven program analyzer [J]. Electronic Notes in Theoretical Computer Science, 2009, 248:57-66.
  • 4陈聪明,霍玮,于洪涛,冯晓兵.基于包含的指针分析优化技术综述[J].计算机学报,2011,34(7):1224-1238. 被引量:10
  • 5Rebecca H, Susan H. Using static single assignment form to improve flow-insensitive pointer analysis [C] //Proc of the ACM SIGPLAN 1997 Conf on Programming Language Design and Implementation(PLDI 1997). New York: ACM, 1997:97-105.
  • 6Hardekopf B, Lin C. Flow-sensitive pointer analysis for millions of lines of code [C] //Proc of the 9th Annual IEEE/ ACM Int Symp on Code Generation and Optimization (CGO 2011). Los Alamitos, CA: IEEE Computer Society, 2011: 289-298.
  • 7Yu H, XueJ, Huo W, et al. Level by level.. Making flow- and context-sensitive pointer analysis scalable for millions of lines of code [C] //Proc of the 8th Annual IEEE/ACM Int Symp on Code Generation and Optimization (CGO 2010). New York: ACM, 2010:218-229.
  • 8Lam M S, Sethi R, Ullman J D. Compilers: Principles, Techniques, & Tools [M]. Boston, MA: Addison Wesley Longman, 2007.
  • 9Lattner C, Adve V. LLVM: A compilation framework for lifelong program analysis & transformation [C] //Proc of the 2nd Anuual IEEE/ACM Int Syrup on Code Generation and Optimization ( CGO 2004 ). Los Alamitos, CA: IEEE Computer Society, 2004:75-86.
  • 10Bienia C, Kumar S, Singh J P, et al. The PARSEC benchmark suite : Characterization and architectural implications [C] //Proc of the 17th Int Conf on Parallel Architectures and Compilation Techniques. New York: ACM, 2008:72-81.

二级参考文献116

  • 1张明军,罗军.缓冲区溢出静态分析中的指针分析算法[J].计算机工程,2005,31(18):41-43. 被引量:4
  • 2吴萍,陈意云,张健.多线程程序数据竞争的静态检测[J].计算机研究与发展,2006,43(2):329-335. 被引量:21
  • 3张威,卢庆龄,李梅,宫云战.基于指针分析的内存泄露故障测试方法研究[J].计算机应用研究,2006,23(10):22-24. 被引量:7
  • 4戚晓芳,徐宝文,周晓宇.一种基于程序可达图的并发程序依赖性分析方法[J].电子学报,2007,35(2):287-291. 被引量:13
  • 5David J Pearce,Paul H J Kelly,PChris Hankin.Efficient fieldsensitive pointer analysis of C[J].ACM Transactions on Programming Languages and Systems,2007,30(1):4:1-4:42.
  • 6Maryam Emami,et al.Context-sensitive interprocedural pointsto analysis in the presence of function pointers[A].Proceedings of the ACM SIGPLAN 1994 Conference on Programming Language Design and Implementation[C].Florida:ACM Press,1994.242-256.
  • 7Metzger R,Wen Z.Automatic Algorithm Recognition:A New Approach to Program Optimization[M].London:MIT Press,2000.87-116.
  • 8S Xu,Y S Chee.Transformation-based diagnosis of student programs for programming tutoring systems[J].IEEE Transactions on Software Engineering,2003,29(4):360-384.
  • 9Hattori N,Ishii N.A method to remove variations in source codes[J].Information and Software Technology,1996,38(1):25-36.
  • 10Wang T.T,et al.Semantic similarity-based grading of student programs[J].Information and Software Technology,2007(2),49:99-107.

共引文献27

同被引文献5

引证文献2

二级引证文献10

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部