正文描述:《c语言编译器设计与实现论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、C语言编译器设计与实现毕业论文目 录摘 要iAbstractii第一章绪论11.1开发背景11.2开发目标和意义11.2当前编译器国内外的发展情况2第二章理论基础42.1编译系统概述42.1.1什么是编译器42.1.2编译器的产生42.2编译器的结构42.3编译器的组织62.3.1编译的分遍62.3.2分遍的设计62.4编译器中的主要数据结构72.5编译程序的开发72.5.1历史与发展72.5.2开发注意事项72.5.3编译技术和软件工具7第三章C编译器可行性分析及总体设计93.1可行性分析93.1.1经济可行性93.1.
2、2技术可行性93.1.3运行可行性93.1.4时间可行性103.1.5法律可行性103.2C语言的基本描述103.3C编译器的功能103.4C编译器的程序结构113.4.1C编译器的设计模式113.4.2C编译器的文件组成123.5C编译器中的主要数据结构12第四章C编译器的实现14ii4.1词法分析阶段144.1.1概述144.1.2C词法分析程序的实现144.1.3关键字与标识符的识别164.1.4词法识别具体实现164.2语法分析阶段184.2.1概述184.2.2C语言抽象出来的文法规则194.2.3C语法分析程序的
3、实现224.3语义分析阶段274.3.1概述274.3.2C语言的语义274.3.3C的符号表274.3.4C语义分析程序的实现284.4中间代码生成阶段334.4.1概述334.5C编译器的使用方法及测试334.5.1使用方法334.5.2测试源文件344.5.3测试词法分析344.5.4测试语义分析及中间代码生成354.5.5测试分析表文件的构造36参考文献38致谢39ii第一章绪论1.1开发背景随着计算机科学技术的飞速发展,计算机技术被应用在了越来越广泛的领域,实现各种各样功能的计算机程序被大量地开发出来,应用在我们的
4、生活、学习和工作当中。相应地,也产生了许多用以编写这些计算机程序的高级程序设计语言。程序编制者通过特定语言的编译器将自己编写的源程序翻译为特定机器上的目标程序,从而能够最终达到程序执行的目的。从20世纪60年代以来,编译器设计就一直是计算机研究发展和开发领域中的一个活跃主题。虽然编译器设计已有很长的历史,并且也是一门相对成熟的计算机技术,但编译器毕竟是一种实现由高级语言源程序至机器或汇编指令的高效映射工具,随着计算机软、硬件水平的飞速发展,使得计算机应用日新月异,程序语言的设计在不断地变化,目标机体系结构也在不断地改进,软件
5、越来越复杂,其规模也越来越大。尽管编译器设计问题在高级层次上没有变化(或变化很小),但当我们深入其内部研究时就会发现,编译器的内部构造其实也一直在变化。此外,由于我们能够提供给编译器本身使用的计算资源也在不断增加。因此,现代编译器可以采用比以前更耗费时间和空间的算法。当然,编译技术研究人员也在继续努力开发新的、更好的技术来解决传统编译器的一些设计性问题[1]。另一方面,很多编译“前端”技术,如文法、正则表达式、语法分析器以及语法制导翻译器等,仍然被广泛使用。1.2开发目标和意义编译器是一种相当复杂的系统程序,其代码的长度可从
6、几千行到几百万行不等,所以编写甚至读懂这样的一个程序都不是一件容易的事。绝大多数的计算机专业人员从来没有编写过一个完整的编译器,但是,几乎所有形式的计算均要用到编译器,而且任何一个与计算机打交道的专业人员都应该掌握编译器的基本结构和操作。除此之外,计算机应用程序中经常遇到的一个任务就是有关命令解释程序和界面程序的开发,这比编译器的开发规模要小,但使用的却是很类似的技术。因此,掌握编译器的开发技术具有非常重大的实际意义。编译器的设计的原理和技术还可以用于编译器设计之外的众多领域。因此,这些原理和技术通常会在一个计算机科学家的职
7、业生涯中多次被用到。研究编译器的编写讲设计程序设计语言、计算机体系结构、形式语言理论、算法和软件工程。编译器的设计从本质上来说是一种工程活动,它所使用的方法必须很好地解决现实中出现的各种翻译问题(即用真实的语言编制且在真实的机器上能够执行的真实的程序)。大多数情况下,开发编译器的人必须接受他们面对的语言和机器,很少能够去影响或改善这两者的设计。在开发过程中做什么样的分析和转换,以及什么时候去做,这些都是工程上的选择,但正是这些选择决定了一个编译器的性能高低。本实验就建立在一个自主开发的名为C的微型编译器基础之上,该编译器虽然
8、功能弱于像TurboC或BorlandPascal这样的经典编译器,但也已经完全具备了一个编译器应有的所有特征。44虽然本实验只是一个规模很小的微型编译器的开发,但所谓“麻雀虽小,五脏俱全”,作为一次较为完整的编译开发实践,它已经足够让我透彻地了解一个编译器开发过程了,同时能更深刻地理解和
显示全部收起
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。