跳到主要内容
文章
免费访问

一个认证编译器的设计与实现

出版:1998年5月1日 出版历史
  • 获取引文提醒
  • 摘要

    本文介绍了一种编译器的设计和实现,该编译器将用C编程语言的类型安全子集编写的程序转换为高度优化的DEC Alpha汇编语言程序,并使用证明人它自动检查编译器生成的任何汇编语言程序的类型安全和内存安全。证明程序的结果要么是类型安全的正式证明,要么是指向目标程序可能违反类型系统的反例。编译器和证明程序的组合称为认证编译器可以说,与以前的方法相比,认证编译有几个优点。验证编译器的概念比正式的编译器验证更容易使用,部分原因是验证计算结果的正确性通常比证明计算本身的正确性更容易。此外,这种方法甚至可以应用于高度优化的编译器,正如我们的编译器为一系列实际的C程序生成目标代码的事实所证明的那样,这与启用了所有优化的cc和gcc编译器都有竞争力。证明程序还大大提高了编译器测试的有效性,因为对于每个测试用例,它静态地发出编译错误的信号,否则可能需要多次执行才能检测到这些错误。最后,该方法是一种实用的方法,可以为防携带码系统生成安全证明,因此在安全移动码系统中可能有用。

    工具书类

    [1]
    Boyer,R.和J.S.Moore(1979年)。计算逻辑。学术出版社。
    [2]
    Cimatti,A.等人(1997年6月)。在计算机辅助验证中,用于安全关键软件认证的可证明正确的嵌入式验证器。第九届国际会议。会议记录,第202-213页。施普林格-弗拉格。
    [3]
    D.C.Luckham,e.(1979年3月)。斯坦福帕斯卡验证器用户手册。斯坦福大学计算机科学系STAN-CS-79-731技术报告。
    [4]
    Detlefs,D.(1996)。扩展静态检查系统概述。在软件实践研讨会的第一个形式化方法会议记录中。
    [5]
    Dybjer,P.(1986年)。使用域代数证明编译器的正确性。计算机科学课堂讲稿(182)。
    [6]
    Gordon,M.(1985年7月)。HOL:一种面向机器的高阶逻辑公式。技术报告85,剑桥大学计算机实验室。
    [7]
    Gosling,J.、B.Joy和G.L.Steele(1996年)。Java语言规范。Java系列。美国马萨诸塞州雷丁:Addison-Wesley。
    [8]
    Guttman,J.D.、J.D.Ramsdell和M.Wand(1995年)。VLISP:方案的验证实现。Lisp和符号计算(8),5-32。
    [9]
    Harper,R.、F.Honsell和G.Plotkin(1993年1月)。定义逻辑的框架。计算机协会杂志~0(1),143-184。
    [10]
    Lindholm,T.和F.Yellin(1997年1月)。Java虚拟机规范。Java系列。美国马萨诸塞州雷丁:Addison-Wesley。
    [11]
    McCarthy,J.(1963年)。走向计算的数学理论。C.M.Popplewell(Ed.),《信息处理国际会议记录》,第21-28页。霍兰德北部。
    [12]
    Moore,J.S.(1989)。经过机械验证的语言实现。自动推理杂志(5),461-492。
    [13]
    Morris,F.L.(1973)。关于构造编译器并证明其正确性的建议。《第一届CM原则/编程语言研讨会论文集》,第144-152页。
    [14]
    Morrisett,G.、D.Walker和K.Crary(1998年1月)。从系统F到类型化汇编语言。在第五届关于编程语言原理的CM年会上。ACM公司。出现。
    [15]
    Necula,G.C.(1997年1月)。防卡代码。在第~届CM年度编程语言原理研讨会上,第106-119页。ACM公司。
    [16]
    Necula,G.C.和P.Lee(1996年10月)。无需运行时检查的安全内核扩展。在第二届操作系统设计与实现研讨会上。第229-243页。乌塞尼克斯。
    [17]
    Necula,G.C.和P.Lee(1997年10月)。逻辑证明的有效表示和验证。技术报告CMU-CS-97-172,卡内基梅隆大学计算机科学系。
    [18]
    Nelson,G.和D.Oppen(1979年10月)。通过合作决策程序简化。编程语言和系统CM汇刊I(2),245-257。
    [19]
    Oliva,D.P.、J.D.Ramsdell和M.Wand(1995年)。VLISP验证的PreScheme编译器。Lisp和符号计算(8),111-182。
    [20]
    Owre,S.、J.M.Rushby和N.Shankar(1992年6月)。PVS:原型验证系统。D.Kapur(编辑),第11届自动演绎国际会议(CADE),《人工智能课堂讲稿》第607卷,纽约州萨拉托加,第748-752页。斯普林格·弗拉格。
    [21]
    Shostak,R.(1981年10月)。通过计算循环剩余判定线性不等式。美国医学会杂志~8(4),769-779。
    [22]
    Tarditi,D.,J.G.Morrisett,P.Cheng,C.Stone,R.Harper,mad P.Lee(1996年5月)。TIL:ML的一种类型定向优化编译器。PLDI’96《编程语言设计与实现的概念》,第181-192页。
    [23]
    撒切尔、J.W.、E.G.Wagner和J.B.Wright(1980年)。关于构造编译器并证明其正确性的更多建议。LNCS’94:面向语义的编译器生成研讨会论文集(94),165-188。
    [24]
    Young,W.D.(1989)。经过机械验证的代码生成器。自动推理杂志(5),493-518。

    引用人

    查看全部
    • (2023)编译程序中的缺陷分类:一篇多地区文献综述倒排索引综述10.1145/362631356:4(1-42)在线发布日期:2023年11月10日
    • (2023)FuzzyFlow:利用数据流查找并清除程序优化错误高性能计算、网络、存储和分析国际会议论文集10.1145/3581784.3613214(1-15)在线发布日期:2023年11月12日
    • (2018)使用代码和结构化数据停止注入攻击网络安全:权力与技术10.1007/978-3-319-75307-2_13(219-231)在线发布日期:2018年5月5日
    • 显示更多引用者

    建议

    评论

    信息和贡献者

    问询处

    发布于

    封面图片ACM SIGPLAN注意事项
    ACM SIGPLAN通知 第33卷第5期
    1998年5月
    358页
    ISSN公司:0362-1340
    EISSN公司:1558-1160
    内政部:10.1145/277652
    期刊目录
    • 封面图片ACM会议
      PLDI’98:1998年ACM SIGPLAN编程语言设计和实现会议记录
      1998年5月
      357页
      国际标准图书编号:0897919874
      内政部:10.1145/277650
    如果复制品不是为了盈利或商业利益而制作或分发的,并且复制品的第一页载有本通知和完整引文,则允许免费制作本作品的全部或部分数字或硬拷贝以供个人或课堂使用。必须尊重ACM以外的其他人对本作品组成部分的版权。允许用信用证进行摘要。要以其他方式复制或重新发布,在服务器上发布或重新发布到列表,需要事先获得特定许可和/或付费。从请求权限[电子邮件保护]

    出版商

    计算机协会

    美国纽约州纽约市

    出版历史

    出版:1998年5月1日
    在SIGPLAN中发布体积33,问题5

    检查更新

    限定符

    • 第条

    贡献者

    其他指标

    文献计量学和引文

    文献计量学

    文章指标

    • 下载量(最近12个月)162
    • 下载次数(最近6周)15

    其他指标

    引文

    引用人

    查看全部
    • (2023)编译程序中的缺陷分类:一篇多地区文献综述倒排索引综述10.1145/362631356:4(1-42)在线发布日期:2023年11月10日
    • (2023)FuzzyFlow:利用数据流查找并清除程序优化错误高性能计算、网络、存储和分析国际会议论文集10.1145/3581784.3613214(1-15)在线发布日期:2023年11月12日
    • (2018)使用代码和结构化数据停止注入攻击网络安全:权力与技术10.1007/978-3-319-75307-2_13(219-231)在线发布日期:2018年5月5日
    • (2017)ASLR:随机性有多强?2017 IEEE网络安全发展(SecDev)10.1109/SecDev.2017.19(34-41)在线发布日期:2017年9月
    • (2017)Intersert:对分布式进程交互会话的断言2017 IEEE软件质量、可靠性和安全国际会议(QRS)10.1109/QRS.2017.32(216-223)在线发布日期:2017年7月
    • (2015)Isabelle中不变图的验证和代码生成程序设计中的逻辑和代数方法杂志2016年10月10日/j.jlap.2013.09.00184:1(19-36)在线发布日期:2015年1月
    • (2014)参考文献信任扩展作为商品计算机上安全代码执行的机制10.1145/2611399.2611408在线发布日期:2014年6月5日
    • (2014)针对恶意软件和漏洞攻击的防御框架国际信息安全杂志2007年10月10日/10207-014-0233-113:5(439-452)在线发布日期:2014年10月1日
    • (2012)自动生成航空航天软件的正式安全认证[已邀请]Infotech@航空航天10.2514/6.2005-6913在线发布日期:2012年6月15日
    • (2012)有限域上的一个认证约束求解器FM 2012:形式方法10.1007/978-3-642-32759-9_12(116-131)网上发布日期:2012年
    • 显示更多引用者

    视图选项

    查看选项

    PDF格式

    以PDF文件查看或下载。

    PDF格式

    电子阅读器

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

    电子阅读器

    获取访问权限

    登录选项

    完全访问权限

    媒体

    数字

    其他

    桌子

    分享

    分享

    共享此出版物链接

    在社交媒体上分享