跳到主要内容
10.5555/19630旅游指南书籍页面出版物页面论文acm-pubtype公司
基于指称变换的静态分析
出版商:
  • 印第安纳大学
  • 印第安纳波利斯
  • 美国
订单号:UMI订单号GAX86-28008
文献计量学
跳过抽象节
摘要

理想情况下,语言的实现应该基于其语义的正式定义。通常,语言由编译器“定义”。我们相信相反的情况是可能的,这里报告的工作提出了管理正确编译器设计任务的方法。

在本文中,我们展示了如何从源语言的外延定义中构建可证明的正确实现。Wand开发了一种方法,通过对语言的语义定义应用保意义转换来派生目标代码Wand,80,82a,82b,83。正确性证明很简单;它基于指定结构含义的功能和结构表示之间的直接联系。通过扩展Wand的方法,我们开发了一个编译器规范,该编译器执行数据流分析,以生成更高效的目标代码。具体来说,我们推导了一种编译算法,该算法在代码生成之前执行类型检查,以便可以从目标代码中省略类型检查指令。根据原始程序的语义,证明优化后的代码是正确的。证明包括表明应用于原始定义的每个变换都保留其含义。此外,我们在编译器规范中包括常量折叠和活动变量分析。

开发一个全面的编译理论模型对语言设计者和实现者来说很重要,因为通过在正式模型中研究编译问题,他们将为设计和编写好的编译器做好更好的准备。通过展示如何在指称框架中指定静态分析和代码优化,我们支持了这样一个假设,即指称语义是开发形式化编译模型的合适符号。此外,我们使用转换方法从模型构造实现。由于这个符号有理论基础,我们给出了我们实现的正确性证明。用于开发我们的实现的转换的结构似乎可以实现自动化。因此,我们的结果对语义定向编译器生成的研究具有重要意义。

贡献者
  • 波利斯联合分校

建议