跳到主要内容
研究论文
开放式访问

面向对象语言编译器设计的代数方法

作者信息和声明
出版:2010年9月1日出版历史
跳过抽象节

摘要

摘要

本文描述了一种代数方法来构造面向对象语言的可证明正确的编译器;对于用类似于Java序列子集的语言编写的程序来说,这是一个很好的例子。它包括递归类、继承、动态绑定、递归、类型转换和测试、赋值以及基于类的可见性,但不包括复制语义。在我们的方法中,我们通过将编译任务减少到程序优化任务来解决编译器正确性问题。编译是指将源程序简化为模拟目标代码执行的正常形式。正规形式是由一系列正确的保正变换生成的,这些变换从语言的基本规律中得到了证明;因此,通过构造,它是正确的。我们的方法的主要优点是在一个统一的框架内描述编译,避免了语义之间的比较和翻译,以及生成的编译器的模块性和可扩展性。

工具书类

  1. ASU85型Aho AV公司Sethi R公司乌尔曼JD编译器:原理、技术和工具1985Inc,阅读Addison-Wesley Longman出版公司。谷歌学者谷歌学者
  2. 80摄氏度Back R(1980)《正确保存程序的改进:证明理论与应用》,《数学中心论》第131卷。阿姆斯特丹数学中心谷歌学者谷歌学者
  3. BB08公司Börger E,Batory DS(2008)软件产品线中的耦合设计和验证。In:FoIKS,第1-4页谷歌学者谷歌学者
  4. BG08a公司Blech JO,Grégoire B(2008)用Coq认证代码生成。In:编译器优化研讨会符合编译器验证(COCV 2008),ENTCS。爱思维尔谷歌学者谷歌学者
  5. BG08b公司Blech JO,Grégoire B(2008)用Coq验证代码生成:工具描述。In:研讨会编译器优化与编译器验证(COCV 2008),ENTCS。爱思维尔谷歌学者谷歌学者
  6. 弓98Bowen M(1998)Handel-C语言参考手册,2.1。嵌入式解决方案有限公司谷歌学者谷歌学者
  7. 英国标准98Börger E,Schulte W(1998)将java虚拟机定义为可证明正确的java编译平台。收录于:MFCS’98:第23届计算机科学数学基础国际研讨会论文集。施普林格,伦敦,第17-35页谷歌学者谷歌学者
  8. 英国标准C03Borba P,Sampaio A,Cornélio M(2003)面向对象编程的精化代数。收录于:ECOOP 2003:2003年欧洲面向对象编程会议,第2743卷。LNCS,Springer,第457–482页谷歌学者谷歌学者
  9. BSCC04标准Borba P公司桑帕约A卡瓦尔康蒂A科内里奥M面向对象程序设计的代数推理科学计算程序2004521-3531001091.680272016年10月10日/j.scico.2004.03.003谷歌学者谷歌学者数字图书馆数字图书馆
  10. BvW90型Back R,von Wright J(1990)精化演算,第一部分:序列非确定性程序。在:REX研讨会:分布式系统逐步精化论文集:模型、形式主义、正确性,施普林格,第42-66页谷歌学者谷歌学者
  11. BvW98型背面R冯·赖特J精化微积分:系统介绍1990纽约施普林格谷歌学者谷歌学者
  12. CCS02号机组Cornélio M,Cavalcanti A,Sampaio A(2002),《通过转型重构》。收录于:REFINE 2002年研讨会,理论计算机科学电子笔记,第70卷,Springer,第641-660页谷歌学者谷歌学者
  13. CN00元卡瓦尔康蒂A诺曼D面向对象程序精化的最弱前提语义IEEE Trans软件工程2000260871372810.1109/32.879810谷歌学者谷歌学者数字图书馆数字图书馆
  14. Cor04公司Cornélio M(2004)应用面向对象的重构和模式作为形式上的改进。伯南布哥联邦大学博士论文谷歌学者谷歌学者
  15. 数据中心02Duran A,Cavalcanti A,Sampaio A(2002)形式字节码生成的精化代数。在:ICFEM 2002-4正式工程方法国际会议(LNCS),第2495卷。上海施普林格,第347-358页谷歌学者谷歌学者
  16. DCS03公司Duran A、Cavalcanti A和Sampaio A(2003)编译类、继承和动态绑定的策略。参见:FME 2003-欧洲正式方法国际研讨会,第2805卷,第301-320页。比萨,2003年9月。LNCS,施普林格谷歌学者谷歌学者
  17. DDDCG02型Drossopoulou S公司达米亚尼FDezani-Ciancaglini M公司吉安尼尼·P更动态的对象重新分类:Fickle IIACM传输程序语言系统200224215319110.1145/514952.514955谷歌学者谷歌学者数字图书馆数字图书馆
  18. 迪克76Dijkstra电子战编程的一门学科1976恩格伍德悬崖Prentice-Hall公司368.68005谷歌学者谷歌学者数字图书馆数字图书馆
  19. 2005年7月Duran A(2005)面向对象语言编译器设计的代数方法。伯南布哥联邦大学博士论文。可在http://www.les.ufba.br/duranthesis网站/谷歌学者谷歌学者
  20. Fow99公司福勒M重构:改进现有代码的设计1999公司,阅读Addison-Wesley Longman出版公司。谷歌学者谷歌学者数字图书馆数字图书馆
  21. GJSB00型高斯林J乔伊B钢GBracha G公司第三版20002阅读出版商谷歌学者谷歌学者数字图书馆数字图书馆
  22. 1Hayes IJ(1998)实时优化中的分离计时和计算。收录:Gundy J,Schwenke M,Vickers T(eds)Pacific’98:国际精化研讨会和形式方法,离散数学和理论计算机科学,Springer,第1-16页谷歌学者谷歌学者
  23. HCW08型Harwood W、Cavalcanti ALC、Woodcock JCP(2008)UTP指针理论。收录于:Fitzgerald JS、Haxthausen AE、Yenigun H(eds)《计算的理论方面》(计算机科学讲义),第5160卷。柏林施普林格,第141-155页谷歌学者谷歌学者
  24. 盒93He J(1993)同步通信的混合并行编程和实现。收录于:MFCS’93:第18届计算机科学数学基础国际研讨会论文集,第711卷。斯普林格,伦敦,第537–546页谷歌学者谷歌学者
  25. HHS93型Hoare汽车何J桑帕约A编译器设计的范式方法Acta通知199330701739790.680232007年10月10日/BF011918091256294谷歌学者谷歌学者数字图书馆数字图书馆
  26. HJ98型Hoare汽车何继峰统一编程理论1998恩格尔伍德克利夫斯Prentice-Hall公司谷歌学者谷歌学者
  27. HU98型Hayes IJ,Utting M(1998)截止日期终止。收录:Gries D,de Roever W-P(eds)PROCOMET’98:IFIP编程概念和方法国际会议。查普曼和霍尔,第186-204页谷歌学者谷歌学者
  28. KN06号Klein G,Nipkow T(2006)类Java语言、虚拟机和编译器的机器选择模型。ACM Trans程序语言系统28(4):619–695http://doi.acm.org/10.1145/1146809.1146811谷歌学者谷歌学者
  29. 勒尔09勒罗伊X真实编译器的形式化验证通用ACM200952710711510.1145/1538788.1538814谷歌学者谷歌学者数字图书馆数字图书馆
  30. LF02型勒默K菲奇C实时程序编译的形式化模型Theor计算机科学20022821151190997.6802410.1016/S0304-3975(01)00047-01914325谷歌学者谷歌学者数字图书馆数字图书馆
  31. LT01公司林H泰语TNET框架要点2001塞瓦斯托波尔O'Reilly&Associates公司。谷歌学者谷歌学者
  32. LY97型林德霍姆T叶林FJava虚拟机规范1997阅读出版商谷歌学者谷歌学者数字图书馆数字图书馆
  33. 97令吉Müller-Olm M(1997)模块化编译器验证:提倡逐步抽象的细化代数方法。施普林格谷歌学者谷歌学者
  34. 94年9月摩根C根据规范编程19942恩格尔伍德克利夫斯Prentice-Hall公司。829.68083谷歌学者谷歌学者数字图书馆数字图书馆
  35. MP67型McCarthy J,Painter J(1967),算术表达式编译器的正确性。摘自:应用数学研讨会,第19卷。美国数学学会,第33-41页谷歌学者谷歌学者
  36. 98号Nipkow T,Oheimb D(1998)Java-light绝对是类型安全的。收录:POPL'98:第25届ACM SIGPLAN-SIGACT编程语言原理研讨会论文集。纽约ACM出版社,第161-170页谷歌学者谷歌学者
  37. 运营92Opdyke W(1992)重构面向对象框架。伊利诺伊大学香槟分校博士论文谷歌学者谷歌学者
  38. 05菲律宾比索Patterson DA,Hennessy JL(2005)《计算机组织与设计:硬件/软件接口》。摩根考夫曼谷歌学者谷歌学者
  39. Pla01(Pla01)Platt DS(2001)《微软简介》。净利润。Microsoft新闻谷歌学者谷歌学者
  40. 波尔81波拉克W编译器规范和验证1981纽约施普林格481.68001谷歌学者谷歌学者数字图书馆数字图书馆
  41. PW07a型Perna JI,Woodcock J(2007)Handel-C硬件编译的指称语义。In:ICFEM,第266-285页谷歌学者谷歌学者
  42. PW07b型Perna JI,Woodcock J(2007)在HOL中验证Handel-C编译的有线正确性。技术报告YCS-2008-429,约克大学计算机科学系,12月谷歌学者谷歌学者
  43. PW08系列Perna JI,Woodcock J(2008),HOL中handel-C合成的有线正确性。In:Pace GJ,Singh S(编辑)第七届国际正确电路设计研讨会,第86–100页,2008年3月谷歌学者谷歌学者
  44. 萨姆97Sampaio A(1997)编译器设计的代数方法,AMAST计算系列第4卷。世界科学谷歌学者谷歌学者
  45. SCS06系列Santos TLVL、Cavalcanti ALC、Sampaio ACA(2006)《UTP中的对象定向》。摘自:Dunne S,Stoddart B(编辑)统一编程理论(计算机科学讲稿),第4010卷。施普林格,第18-37页谷歌学者谷歌学者
  46. 99系列Serrano M(1999)广泛课程。计算机科学课堂讲稿谷歌学者谷歌学者
  47. 不锈钢B01Stärk R,Schmid J,Börger E(2001)Java和Java虚拟机定义、验证和验证。施普林格谷歌学者谷歌学者
  48. SSL08型席尔瓦·L桑帕约A刘Z具有参考语义的面向对象规律软件工程和形式化方法。国际会议2008021722610.1109/SEFM.2008年29月谷歌学者谷歌学者数字图书馆数字图书馆
  49. Tia06公司田YH(2006)《机械验证CPS编译的正确性》。收录于:CATS’06:《第12届计算机会议录:澳大利亚达林赫斯特理论研讨会》,澳大利亚计算机学会,第41–51页谷歌学者谷歌学者
  50. TWW81型撒切尔·JW瓦格纳EG赖特JB关于构造编译器并证明其正确性的更多建议Theor计算机科学198115223249468.6800710.1016/0304-3975(81)90080-3谷歌学者谷歌学者交叉引用交叉引用
  51. Wat03型Watson G(2003)实用汇编语言的精化编译。收录于:形式方法和软件工程。ICFEM 2003:第五届形式工程方法国际会议(LNCS),第2885卷。新加坡施普林格,2003年11月,第286-305页谷歌学者谷歌学者
  52. 威尔02Wildman L(2002)程序编译证明工具的正式基础。在:FME’02:正式方法国际研讨会会议记录欧洲关于正式方法使IT正确(LNCS),第2391卷。伦敦施普林格,第491-510页谷歌学者谷歌学者

建议

评论

登录选项

检查您是否可以通过登录凭据或您的机构访问本文。

登录

完全访问权限

  • 发布于

    封面图像计算的形式方面
    计算的形式方面 第22卷第5期
    2010年9月
    171页
    国际标准编号:0934-5043
    EISSN公司:1433-299X年
    期刊目录

    ©英国计算机学会2009

    出版商

    Springer-Verlag公司

    柏林,海德堡

    出版历史

    • 出版:2010年9月1日
    • 认可的:2009年8月7日
    • 收到:2009年3月26日
    发布于fac公司第22卷第5期

    限定符

    • 研究论文

PDF格式

以PDF文件查看或下载。

PDF格式

电子阅读器

使用eReader联机查看。

电子阅读器