×

用于验证编译器的线性一阶函数中间语言。 (英语) Zbl 1465.68042号

Urban,Christian(ed.)等人,《交互式定理证明》。第六届国际会议,2015年ITP,中国南京,2015年8月24日至27日。诉讼程序。查姆:斯普林格。莱克特。票据计算。科学。9236, 344-358 (2015).
摘要:我们提出了用于验证编译器的线性一阶中间语言IL。IL是一种函数式语言,可以调用非确定性环境。我们对IL术语进行了第二次命令式语义解释,并获得了一种寄存器转移语言。对于命令式解释,我们建立了活变量的概念。基于活变量,我们制定了一个称为一致性的可判定属性,以确保术语的函数解释和命令解释一致。我们给出了IL的寄存器分配算法,并证明了其正确性。该算法将功能性IL程序转换为等效的命令性IL程序。正确性来源于这样一个事实,即算法在一致重命名局部变量后达到一致的程序。我们证明了初始程序中活变量的最大数目限制了最终相干程序中不同变量的数目。整个开发过程在Coq中正式化。
有关整个系列,请参见[Zbl 1319.68013号].

MSC公司:

68N20型 编译与解释理论
68甲18 函数编程和lambda演算

软件:

维尔文Coq公司
PDF格式BibTeX公司 XML格式引用

参考文献:

[1] Appel,AW,《继续编译》(1992),剑桥:剑桥大学出版社,剑桥
[2] Appel,A.W.:SSA是函数式编程。收录于:SIGPLAN通告,第33卷,第4期(1998年)
[3] 巴特,G。;Demange,D。;Pichardie,D。;Seidl,H.,《基于SSA的正式验证的中端编程语言和系统》,47-66(2012),海德堡:施普林格·doi:10.1007/978-3642-28869-23
[4] Beringer,L.,MacKenzie,K.,Stark,I.:圣杯:命令式移动代码的函数形式。In:ENTCS,第85卷,第1期(2003年)·Zbl 1270.68065号
[5] 布拉齐,S。;罗比拉德,B。;阿佩尔,AW;Gordon,AD,《合并图形-颜色寄存器分配的形式验证》,《编程语言与系统》,145-164(2010),海德堡:施普林格出版社·Zbl 1260.68227号 ·doi:10.1007/978-3-642-11957-69
[6] Chakravarty,M.M.T.,Keller,G.,Zadarnowski,P.:SSA优化算法的功能观点。In:ENTCS,第82卷,第2期(2003年)
[7] Chlipala,A.:一个经过验证的非纯函数语言编译器。In:POPL(2010)·Zbl 1312.68044号
[8] Cytron,R.,Ferrante,J.,Rosen,B.K.,Wegman,M.N.,Zadeck,F.K.:高效计算静态单一赋值形式和控制依赖图。收录于:TOPLAS,第13卷,第4期(1991年)
[9] Hack,S.、Grund,D.、Goos,G.:SSA-Form中程序的注册分配。in:CC(2006)·Zbl 1187.68336号
[10] Kelsey,R.A.:连续传球风格与静态单一赋值形式之间的对应关系。摘自:SIGPLAN通知,第30卷,第3期(1995年)
[11] Landin,P.J.:ALGOL 60与Church’s Lambda-notation之间的通信:第一部分。In:CACM,第8卷,第2期(1965年)·Zbl 0134.33403号
[12] Lattner,C.,Adve,V.S.:LLVM:终身程序分析和转换的编译框架。In:CGO(2004)
[13] Leroy,X.:真实编译器的形式化验证。收录于:CACM,第52卷,第7期(2009年)
[14] Nipkow,T。;Klein,G.,《具体语义:与Isabelle/HOL(2014)》,瑞士:Springer Publishing Company,Incorporated,Switzerland·兹比尔1410.68004 ·doi:10.1007/978-3-319-10542-0
[15] 雷诺兹,JC,《延续的发现》,LSC,6,3-4,23-247(1993)
[16] Sabry,A.和Felleisen,M.:关于连续通过式程序的推理。在:LSC,第6卷,编号(3-4)(1993)
[17] Zhao,J.、Nagarakatte,S.、Martin,M.M.K.、Zdancewic,S.:LLVM基于SSA的优化的形式验证。输入:PLDI(2013)
[18] Zhao,J.,Nagarakatte,S.,Martin,M.M.K.,Zdancewic,S.:验证程序转换的LLVM中间表示形式化。输入:POPL(2012)·Zbl 1321.68207号
[19] Schneider,S.、Smolka,G.、Hack,S.:一种用于验证编译器的一阶函数中间语言。CoRR(2015)。1503.08665年·Zbl 1465.68042号
此参考列表基于出版商或数字数学图书馆提供的信息。其项与zbMATH标识符进行启发式匹配,可能包含数据转换错误。在某些情况下,zbMATH Open的数据对这些数据进行了补充/增强。这试图尽可能准确地反映原始论文中列出的参考文献,而不要求完整或完全匹配。