软件学报
軟件學報
연건학보
JOURNAL OF SOFTWARE
2010年
12期
3056-3067
,共12页
董渊%王生原%张丽伟%朱允敏%杨萍
董淵%王生原%張麗偉%硃允敏%楊萍
동연%왕생원%장려위%주윤민%양평
程序模块化验证%字节码%类Hoare逻辑系统
程序模塊化驗證%字節碼%類Hoare邏輯繫統
정서모괴화험증%자절마%류Hoare라집계통
字节码既是运行于虚拟机的解释指令,也是定义良好的中间表示,是当今网络软件和计算设备中广泛使用的重要技术.字节码验证可以提高相关软件的可信程度,同时为构造证明保持编译器提供中间表示支持,具有重要的实用价值和理论价值.虽然近年提出了一些用于字节码程序的逻辑系统,但由于字节码本身的特点,造成了抽象控制栈复杂、控制流结构信息不足,因而字节码程序的"模块化验证"依然是一个巨大的挑战,并没有得到有效解决.将FPCC(foundational proof-carrying code)方法引入中间表示字节码,借鉴汇编程序的验证方法,设计出一种逻辑系统,给出字节码程序运行环境BCM(ByteCode machine)的逻辑系统CBP (certifying bytecode program)定义,完成系统的合理性证明和一组代表性实例程序的模块化证明,并实现机器自动检查.该工作为字节码验证提供一种良好的解决方案,同时也向着构造证明保持编译器环境迈出了坚实的一步,还可以为广泛使用的基于虚拟机复杂网络应用程序的深刻理解和深入分析提供理论帮助.
字節碼既是運行于虛擬機的解釋指令,也是定義良好的中間錶示,是噹今網絡軟件和計算設備中廣汎使用的重要技術.字節碼驗證可以提高相關軟件的可信程度,同時為構造證明保持編譯器提供中間錶示支持,具有重要的實用價值和理論價值.雖然近年提齣瞭一些用于字節碼程序的邏輯繫統,但由于字節碼本身的特點,造成瞭抽象控製棧複雜、控製流結構信息不足,因而字節碼程序的"模塊化驗證"依然是一箇巨大的挑戰,併沒有得到有效解決.將FPCC(foundational proof-carrying code)方法引入中間錶示字節碼,藉鑒彙編程序的驗證方法,設計齣一種邏輯繫統,給齣字節碼程序運行環境BCM(ByteCode machine)的邏輯繫統CBP (certifying bytecode program)定義,完成繫統的閤理性證明和一組代錶性實例程序的模塊化證明,併實現機器自動檢查.該工作為字節碼驗證提供一種良好的解決方案,同時也嚮著構造證明保持編譯器環境邁齣瞭堅實的一步,還可以為廣汎使用的基于虛擬機複雜網絡應用程序的深刻理解和深入分析提供理論幫助.
자절마기시운행우허의궤적해석지령,야시정의량호적중간표시,시당금망락연건화계산설비중엄범사용적중요기술.자절마험증가이제고상관연건적가신정도,동시위구조증명보지편역기제공중간표시지지,구유중요적실용개치화이론개치.수연근년제출료일사용우자절마정서적라집계통,단유우자절마본신적특점,조성료추상공제잔복잡、공제류결구신식불족,인이자절마정서적"모괴화험증"의연시일개거대적도전,병몰유득도유효해결.장FPCC(foundational proof-carrying code)방법인입중간표시자절마,차감회편정서적험증방법,설계출일충라집계통,급출자절마정서운행배경BCM(ByteCode machine)적라집계통CBP (certifying bytecode program)정의,완성계통적합이성증명화일조대표성실례정서적모괴화증명,병실현궤기자동검사.해공작위자절마험증제공일충량호적해결방안,동시야향착구조증명보지편역기배경매출료견실적일보,환가이위엄범사용적기우허의궤복잡망락응용정서적심각리해화심입분석제공이론방조.