编译器符号表及属性文法的设计与实现文献综述
2020-04-24 09:59:54
目的:经过半个世纪的研宄和实践,成就了现在编译技术。在现代计算机科学中,编译程序是屈指可数的抽象概念彻底改变程序编写方式的领域之一,是现代计算机技术中最重要的应用基础研宄之一,而符号表的设计是编译技术中无可替代的一个环节。学习和研宄符号表技术,并予以实践,具有重要意义的。
意义:符号表是编译程序中用到的最重要的数据结构之一,几乎在编译的每个阶段都要涉及到符号表。所以熟悉和掌握符号表及其文法属性已成必然。从20世纪60年代以来,编译器设计就一直是计算机研究发展和开发领域中的一个活跃主题。虽然编译器设计已有很长的历史,并且也是一门相对成熟的计算机技术,但编译器毕竟是一种实现由高级语言源程序至机器或汇编指令的高效映射工具,随着计算机软、硬件水平的飞速发展,使得计算机应用日新月异,程序语言的设计在不断地变化,目标机体系结构也在不断地改进,软件越来越复杂,其规模也越来越大。
尽管编译器设计问题在高级层次上没有变化(或变化很小),但当我们深入其内部研究时就会发现,编译器的内部构造其实也一直在变化。此外,由于我们能够提供给编译器本身使用的计算资源也在不断增加。因此,现代编译器可以采用比以前更耗费时间和空间的算法。当然,编译技术研究人员也在继续努力开发新的、更好的技术来解决传统编译器的一些设计性问题。
国内研究现状:
在整个编译技术的发展过程中,国内的研究严重滞后于国外,最典型的是国内知道二十一世纪初仍没有一个成熟的编译器出现尽管最近一些年我国在这方面取得了较大的突破和进展。造成这种局面一是我国软件技术发展起步相对国外尤其是美国等发达国家要晚的多,而且编译器的构造又是一个复杂的过程,而且当时我国在这方面的人才的确很少所以在这方面出现了短板。近些年来,我国对软件应用方面越发的重视也投入大量的人才来更深层次的研究编译器及其文法属性以便加快脚步赶上发达国家的脚步。90年代以来,国内主要以研制并行机为主,相应的并行编译器研制也在国内开展起来。代表性的成果有:上海复旦大学朱传琪教授研究组研制的面向共享存储并行机的并行优化编译器AFT达到世界领先水平。清华大学汤志忠教授研究组在软流水优化技术上做了很优秀的研究工作。清华大学郑纬民教授研究组开发了交互式并行化系统 TIPSExplorer,北京大学许卓群教授、李晓明教授研究组在HPF(High Performance Fortran)编译器方面做了多年工作,取得很好的研究成果。此外,国防科大、江南计算所等单位也都有从事并行编译技术研究。随着芯片研制,国内还有若干单位也在开展基于GCC生成面向特定芯片的编译器工作等一系列表明我国已经慢慢的在编译器的研究道路上走向正轨在不久的将来会跻身与世界前列。
国外研究现状:
二十世纪中叶IBM的Backus带领的一个研究小组开发了世界上第一个编译器与此同时,Noam Chomsky开始了对自然语言的的研究,他把文法分为了四类就是我们现在所学的0型文法,1型文法,2型文法,3型文法,最终使得编译器的结构变得简单,甚至还带有一点自动化,随后人们又将又穷自动机和正则表达式同2型文法结合到一起,与3型文法相对应之后一些国家开始进行编译器自动化构造的研究,开发了Lex和Yacc等一些自动生成工具,到了今天一些国家研究的重点集中在并行编译,面向对象的编译,语义处理,指令寄存器级的优化方面等。其中典型的有用于函数语言编译的Hindley-Milner类型检查的统一算法。其次,编译器已越来越成为基于窗口的交互开发环境(Interactive DevelopmentEnvironment,IDE)的一部分,它包括了编辑器、连接程序、调试程序以及项目管理程序。这样的IDE标准并没有多少,但是对标准的窗口环境进行开发已成为方向。另一方面,尽管近年来在编译原理领域进行了大量的研究,但是基本的编译器设计原理在近20年中都没有多大的改变,它现在正迅速地成为计算机科学课程中的中心环节。