期刊文献+

基于扩展逻辑变换系统_μTS证明循环优化正确性 被引量:2

Verifying the Correctness of Loop Optimization Based on Extended Logic Transformation System _μTS
在线阅读 下载PDF
导出
摘要 循环优化对于提高Cache性能、发掘程序的并行性以及减少执行循环的开销都有着重要的作用,证明带循环优化功能的现代编译器的正确性已成为可信编译的一个挑战性的问题.形式化证明一个羽翼丰满的优化编译器本质上是不可行的,可以使用替代的方法,即不是证明优化编译器本身,而是形式化证明每一次循环变换前后编译对象的正确性.提出一种新颖的基于扩展逻辑变换系统μTS来证明循环优化正确性的方法.系统μTS在逻辑变换系统TS的基础上扩展了若干条派生规则,经谓词抽象将源程序与目标程序转换为形式化Radl语言后,使用μTS的派生规则能证明常见循环变换的正确性,如循环融合、循环分配、循环交换、循环反转、循环分裂、循环脱皮、循环调整、循环展开、循环铺盖、循环判断外提、循环不变代码外提等.循环优化可以看作一系列循环变换的组合,从而系统μTS能证明循环优化的正确性.为了支持自动化证明循环优化的正确性并出示证据,进一步提出了一个辅助证明算法.最后通过一个典型实例对这一方法进行了详细的阐述,实际效果表明了该方法的有效性.该方法对设计高可信优化编译器具有重要的指导意义. Loop optimization plays an important role in improving cache performance, making effective use of parallel processing capabilities, and reducing overheads associated with executing loops. Verifying the correctness of modern compilers with loop optimization is a challenge of trustworthy compiling. Formally verifying a full-fledged optimizing compiler is not feasible in nature. Rather than verifying the compiler itself, after every run of the loop transformation, formally verifing the target code produced is a correct translation of the source program. A novel approach is proposed to verify the correctness of loop optimization based on extended logic transformation system ~TS, which extends a number of derived rules from logic transformation TS. After converting source program and target code into formal language Radl by predicate abstracting, one can verify the correctness of common loop transformations using the derived rules of I^TS, such as loop fusion,loop distribution, loop interchange, loop reversal, loop splitting, loop peeling, loop alignment, loop unrolling, loop tiling, loop unswitching, loop-invariant code motion, etc. Loop optimization can be regarded as a series of loop transformation composition so that/zTS can verify the correctness of loop optimization. Furthermore, an aided certified algorithm is put forward in order to automatic verify the correctness of loop optimization and show its proof. Finally this approach is elaborated using one typical example. Practical effects manifest its effectiveness. This approach has important instructive significance in designing high-trusted optimization compiler.
作者 王昌晶
出处 《计算机研究与发展》 EI CSCD 北大核心 2012年第9期1863-1873,共11页 Journal of Computer Research and Development
基金 江西省教育厅青年科学基金项目(GJJ09461)
关键词 循环优化 可信编译 扩展逻辑变换系统 循环变换 辅助证明算法 loop optimization trustworthy compiling extended logic transformation system looptransformation aided certified algorithm
  • 相关文献

参考文献16

  • 1Randy A, Ken K. Optimizing Compilers for Modern Architectures [M]. San Fransisco: Morgan Kaufmann, 2002.
  • 2何炎祥,吴伟,刘陶,李清安,陈勇,胡明昊,刘健博,石谦.可信编译理论及其核心实现技术:研究综述[J].计算机科学与探索,2011,5(1):1-22. 被引量:12
  • 3何炎祥,刘陶,吴伟.可信编译器关键技术研究[J].计算机工程与科学,2010,32(8):1-6. 被引量:7
  • 4Xue Jinyun. A practicable approach for formal development of algorithmic programs [C]//Proc of the Int Symp on Future Software Technology. Tokyo: Software Engineers Association, 1999:158-160.
  • 5Xue Jinyun. PAR method and its supporting platform [C]// Proc of the 1st Int Workshop on Asian Working Conf on Verified Software. Macao, International Institute for Software Technology, United Nations University, 2006: 10-20.
  • 6石海鹤,薛锦云.基于PAR的算法形式化开发[J].计算机学报,2009,32(5):982-991. 被引量:29
  • 7陶秋铭,赵琛,郭亮.基于时序逻辑证明编译优化程序变换的保义性[J].软件学报,2009,20(8):2074-2086. 被引量:3
  • 8Goldberg B, Zuck L D, Barrett C W. Into the loops: Practical issues in translation validation for optimizing compilers [J]. Electronic Notes Theory Computer Science, 2005, 132(1):53-71.
  • 9Necula G. Translation validation of an optimizing compiler [C] //Proc of the ACM SIGPLAN Conf on Principles of Programming Languages Design and Implementation (PLDI'2000). New York: ACM, 2000:83-95.
  • 10Rinard M, Marinov D. Credible compilation with pointers [C/OL]//Proc of the Run-Time Result Verification Workshop.2000 [2011-12-01]. http://citeseerx, ist. psu. edu/viewdoc/ summary?doi= 10.1.1. 126. 2671.

二级参考文献35

  • 1陈火旺,王戟,董威.高可信软件工程技术[J].电子学报,2003,31(z1):1933-1938. 被引量:116
  • 2张焕国,罗捷,金刚,朱智强,余发江,严飞.可信计算研究进展[J].武汉大学学报(理学版),2006,52(5):513-518. 被引量:119
  • 3Wheeler D A. Countering Trusting Trust Through Diverse Double-Compiling[M]. Tucson, AZ: IEEE Computer Society, 2005.
  • 4Boujarwah A S, Saleh K. Compiler Test Case Generation Methods:A Survey and Assessment[J]. Information and Software Technology, 1997,39(9):617-625.
  • 5Yoshikawa T,Shimura K, Ozawa T. Random Program Generator for Java JIT Compiler Test System[C]//Proc of the 3rd Int'l Conf on Quality Software, 2003:20.
  • 6Miller S P, Anderson E A, Wagner L G, et al. Formal Verification of Flight Critical Software[C]//Proc of the AIAA Guidance Navigation and Control Conf and Exhibit,2005.
  • 7Heitmeyer C L, Archer M, Leonard E, et al. Applying Formal Methods to a Certifiably Secure Software System[J]. IEEE Trans on Software Engineering, 2008,34 ( 1 ) : 82-98.
  • 8Feinerer I, Salzer G. A Comparison of Tools for Teaching Formal Software Verification[J]. Formal Aspects of Computing, 2009,21(3) :293-301.
  • 9Yoo J Jee E, Cha S.Formal Modeling and Verification of Safety- Critical Software[J]. IEEE Software, 2009,26(3) :42-49.
  • 10Cowan C,Pu C, Maier D, et al. StackGuard: Automatic Adaptive Detection and Prevention of Buffer-Overflow Attacks[C] //Proc of the 7th USENIX Security Symp, 1998.

共引文献46

同被引文献14

引证文献2

二级引证文献3

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

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