跳到主要内容
10.1145/2103656.2103709acm会议文章/章节视图摘要出版物页面波普尔会议记录会议集合
研究文章

规范化验证程序转换的LLVM中间表示

出版:2012年1月25日 出版历史记录
  • 获取引文警报
  • 摘要

    本文提出了Vellvm(verified LLVM),这是一个用于对LLVM的中间表示和对其进行操作的转换中所表示的程序进行推理的框架。Vellmm提供了LLVM中间表示、类型系统及其SSA形式属性的机械化形式语义。该框架是使用Coq交互式定理证明器构建的。它包括多种操作语义,并证明了它们之间的关系,以促进不同的推理风格和证明技术。
    为了验证Vellvm的设计,我们从Coq形式语义中提取了一个解释器,该解释器可以执行LLVM测试套件中的程序,从而与LLVM参考实现进行比较。为了证明Vellvm的实用性,我们形式化并验证了一个先前提出的转换,该转换加强了C程序对空间内存安全违规的防范。Vellvm的工具允许我们提取一个新的、经过验证的转换过程实现,该转换过程插入到实际的LLVM基础设施中;它的性能与未经验证的ad-hoc原版相比具有竞争力。

    补充材料

    MP4文件 (popl_7a_1.mp4)

    工具书类

    [1]
    E.Alkassar和M.A.Hillebrand。设备驱动程序的正式功能验证。2008年VSTTE:第二届验证软件国际会议论文集:理论、工具、实验。
    [2]
    A.W.Appel公司。基础校对代码。2001年,第16届IEEE计算机科学逻辑研讨会论文集。
    [3]
    A.W.Appel公司。已验证软件工具链。《2011年第20届欧洲编程语言和系统会议论文集》(ESOP’11:Proceedings of the 20th European Conference on Programming Languages and Systems)。
    [4]
    B.Aydemir、A.Charguéraud、B.C.Pierce、R.Pollack和S.Weirich。工程形式元理论。2008年POPL:第35届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录。
    [5]
    N.Benton和N.Tabarau。将函数类型编译为低级命令式代码的关系规范。2009年TLDI:第四届语言设计与实现类型国际研讨会论文集。
    [6]
    S.Blazy、B.Robillard和A.W.Appel。合并图形-颜色寄存器分配的形式验证。《2010年第19届欧洲编程语言和系统会议记录》(ESOP’10:Proceedings of the 19th European Conference on Programming Languages and Systems,2010)。
    [7]
    J.Chen、D.Wu、A.W.Appel和H.Fang。后端优化的可靠TAL。在PLDI’03:ACM SIGPLAN 2003年编程语言设计和实现会议记录,2003年。
    [8]
    A.Chlipala。一种用于不纯正函数语言的经过验证的编译器。2010年,第37届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。
    [9]
    A.Chlipala。从lambda演算到汇编语言的认证类型保护编译器。2007年PLDI:2007年ACM SIGPLAN编程语言设计与实现会议记录。
    [10]
    Coq Proof Assistant参考手册(8.3pl1版)。Coq开发团队,2011年。
    [11]
    K.Crary。走向一种基本的类型汇编语言。2003年POPL'03:第30届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录。
    [12]
    K.Crary和R.Harper。标准毫升(α释放)的机械化定义,2009年。http://www.cs.cmu.edu/crary/papers/2009/mldef-alpha.tar.gz。
    [13]
    R.Cytron、J.Ferrante、B.K.Rosen、M.N.Wegman和F.K.Zadeck。高效计算静态单赋值表和控制依赖图。ACM事务处理。程序。语言系统。,13: 451--490, 1991.
    [14]
    G.A.基达尔。全局程序优化的统一方法。《POPL’73:1973年第一届ACM SIGACT-SIGPLAN编程语言原理年度研讨会论文集》。
    [15]
    母鸡}KN04G。Klein、T.Nipkow和T.U.München。针对类Java语言、虚拟机和编译器的机器选择模型。ACM事务处理。程序。语言系统。,28: 619--695, 2006.
    [16]
    C.Lattner和V.Adve。LLVM:用于终身程序分析和转换的编译框架。在CGO’04:代码生成和优化国际研讨会论文集:反馈定向和运行时优化,2004年。
    [17]
    S.Lerner、T.Millstein、E.Rice和C.Chambers。通过本地规则进行数据流分析和转换的自动化稳健性证明。2005年POPL:第32届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。
    [18]
    X.勒罗伊。经过正式验证的编译器后端。《自动推理杂志》,43(4):363-4462009。
    [19]
    LLVM参考手册(2.6版)。LLVM开发团队,2010年。http://llvm.org/releases/2.6/docs/LangRef.html。
    [20]
    V.S.Menon、N.Glew、B.R.Murphy、A.McCreight、T.Shpeisman、A.-R Adl-Tabatabai和L.Petersen。用于积极编译器优化的可验证SSA程序表示。在POPL'06:2006年第33届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。
    [21]
    S.Nagarakatte、J.Zhao、M.M.K.Martin和S.Zdancewic。SoftBound:C的高度兼容和完整空间内存安全。2009年PLDI:2009年ACM SIGPLAN编程语言设计与实现会议论文集。
    [22]
    G.C.墓穴。优化编译器的翻译验证。在PLDI’00:2000年ACM SIGPLAN 2000编程语言设计与实现会议记录。
    [23]
    NIST Juliet C/C++测试套件。NIST,2010年。http://samate.nist.gov/SRD/testCases/suites/Juliet-2010--12.c.cpp.zip。
    [24]
    M.尼塔和D.格罗斯曼。位级C代码的自动转换,以支持多个等效的数据布局。2008年CC'08:第17届编译器构造国际会议论文集。
    [25]
    M.Nita、D.Grossman和C.Chambers。一种依赖于平台的底层软件理论。2008年POPL:第35届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录。
    [26]
    A.Pnueli、M.Siegel和E.Singerman。翻译验证。1998年,《TACAS’98:第四届系统构建和分析工具和算法国际会议论文集》。
    [27]
    P.Sewell、F.Zappa Nardelli、S.Owens、G.Peskine、T.Ridge、S.Sarkar和R.Strnisa。Ott:对工作语义的有效工具支持。2007年ICFP:第九届ACM SIGPLAN函数编程国际会议论文集。
    [28]
    M.Stepp、R.Tate和S.Lerner。LLVM的基于Equality的翻译验证器。2011年CAV’11:第23届计算机辅助验证国际会议记录。
    [29]
    Z.T.Sudipta Kundu和S.Lerner。使用参数化程序等效性证明优化是正确的。在PLDI’09:2009年ACM SIGPLAN编程语言设计与实现会议记录。
    [30]
    D.赛姆。用HOL中标准ML的形式定义进行推理。在第六届高阶逻辑定理证明及其应用国际研讨会上,1993年。
    [31]
    Z.Tatlock和S.Lerner。为经过验证的编译器带来可扩展性。PLDI’10:2010年ACM SIGPLAN编程语言设计与实现会议记录。
    [32]
    J.-B.特里斯坦和X.勒罗伊。翻译验证器的形式化验证:指令调度优化的案例研究。2008年POPL:第35届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录。
    [33]
    J.-B.特里斯坦和X.勒罗伊。已验证惰性代码运动的验证。在PLDI’09:2009年ACM SIGPLAN编程语言设计与实现会议记录。
    [34]
    J.B.Tristan和X.Leroy。一个简单的、经过验证的软件管道验证程序。2010年,第37届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。
    [35]
    J.-B.特里斯坦、P.戈维罗和G.莫里塞特。评估llvm的value-graph翻译验证。2011年《PLDI’11:ACM SIGPLAN 2011年编程语言设计与实现会议论文集》。
    [36]
    A.Zaks和A.Pnueli。用于编译器验证的程序分析。在PASTE’08:第八届ACM SIGPLAN-SIGSOFT软件工具和工程程序分析研讨会会议记录,2008年。
    [37]
    L.Zhao、G.Li、B.De Sutter和J.Regehr。ARMor:经过充分验证的软件故障隔离。EMSOFT’11:第九届ACM嵌入式软件国际会议论文集,2011年。

    引用人

    查看全部
    • (2024)为翻译验证建立本地内存动态(去)分配模型美国计算机学会程序设计语言会议录10.1145/36498638:OOPSLA1(1463-1492)在线发布日期:2024年4月29日
    • (2024)ARCTURUS:基于可达性引导仿真的全覆盖二进制相似性分析软件工程及方法论学报10.1145/364033733:4(1-31)在线发布日期:2024年1月11日
    • (2024)基于图神经网络的软件验证算法选择软件工程及方法论学报10.1145/363722533:3(1-36)在线发布日期:2024年3月14日
    • 显示更多引用者

    索引术语

    1. 规范化验证程序转换的LLVM中间表示

        建议

        评论

        信息和贡献者

        问询处

        发布于

        封面图片ACM会议
        POPL’12:第39届ACM SIGPLAN-SIGACT编程语言原理研讨会会议记录
        2012年1月
        602页
        国际标准图书编号:9781450310833
        内政部:10.1145/2103656
        • 封面图片ACM SIGPLAN注意事项
          ACM SIGPLAN通知 第47卷第1期
          流行'12
          2012年1月
          569页
          国际标准编号:0362-1340
          EISSN公司:1558-1160
          内政部:10.1145/2103621
          期刊目录
        如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布、在服务器上发布或重新分发到列表,需要事先获得特定许可和/或收取费用。从请求权限[电子邮件保护]

        赞助商

        合作中

        出版商

        计算机协会

        美国纽约州纽约市

        出版历史记录

        出版:2012年1月25日

        权限

        请求对此文章的权限。

        检查更新

        作者标记

        1. Coq公司
        2. 有限责任公司
        3. 存储器安全

        限定符

        • 研究文章

        会议

        流行'12
        POPL’12:第39届ACM SIGPLAN-SIGACT编程语言原理年会
        2012年1月25日至27日
        宾夕法尼亚州,美国费城

        接受率

        4130份提交文件的总体接受率为824份,20%

        即将召开的会议

        流行乐'25
        第52届ACM SIGPLAN编程语言原理年会
        2025年1月19日至25日
        丹佛,有限公司,美国

        贡献者

        其他指标

        文献计量学和引文

        文献计量学

        文章指标

        • 下载次数(过去12个月)153
        • 下载次数(最近6周)16

        其他指标

        引文

        引用人

        查看全部
        • (2024)为翻译验证建立本地内存动态(去)分配模型美国计算机学会程序设计语言会议录10.1145/36498638:OOPSLA1(1463-1492)在线发布日期:2024年4月29日
        • (2024)ARCTURUS:基于可达性引导仿真的全覆盖二进制相似性分析软件工程及方法论学报10.1145/364033733:4(1-31)在线发布日期:2024年1月11日
        • (2024)基于图神经网络的软件验证算法选择软件工程及方法论学报10.1145/363722533:3(1-36)在线发布日期:2024年3月14日
        • (2024)验证编译器中的内存模拟、安全性和优化第13届ACM SIGPLAN认证程序和证明国际会议记录10.1145/3636501.3636952(103-117)在线发布日期:2024年1月9日
        • (2024)ARS-Flow:基于主动学习的加速器富系统设计空间探索流程2024年第29届亚洲及南太平洋设计自动化会议(ASP-DAC)10.1109/ASP-DAC58780.2024.10473989(213-218)在线发布日期:2024年1月22日
        • (2023)工作形式元理论家的语法单子理论计算机科学中的电子论文集10.4204/EPTCS.397.7397(98-117)在线发布日期:2023年12月14日
        • (2023)记忆安全动态分析的智能状态监测算法软件工程及方法论学报10.1145/363722733:4(1-47)在线发布日期:2023年12月11日
        • (2023)免费口吃美国计算机学会程序设计语言会议录10.1145/36228577:OOPSLA2(1677-1704)在线发布日期:2023年10月16日
        • (2023)用块模拟形式验证优化美国计算机学会程序设计语言会议录10.1145/36227997:OOPSLA2(59-88)在线发布日期:2023年10月16日
        • (2023)使用Isabelle/HOL验证术语图优化第十二届ACM SIGPLAN认证程序和证明国际会议记录10.1145/3573105.3575673(320-333)在线发布日期:2023年1月11日
        • 显示更多引用者

        视图选项

        获取访问权限

        登录选项

        完全访问权限

        查看选项

        PDF格式

        以PDF文件查看或下载。

        PDF格式

        电子阅读器

        使用联机查看电子阅读器.

        电子阅读器

        媒体

        数字

        其他

        桌子

        分享

        分享

        共享此出版物链接

        在社交媒体上分享