资源预览内容
第1页 / 共51页
第2页 / 共51页
第3页 / 共51页
第4页 / 共51页
第5页 / 共51页
第6页 / 共51页
第7页 / 共51页
第8页 / 共51页
第9页 / 共51页
第10页 / 共51页
亲,该文档总共51页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
北京邮电大学毕业设计(论文)任务书第1页毕业设计(论文)题目:C语言编译器设计与实现毕业设计(论文)要求及原始数据(资料):1C语言简介和国内外编译器技术研究现状;2深入了解编译器前端,包括词法分析,语法分析, 语义分析;3熟练掌握C语言语法及语法特点;4深入分析编译器编写语言(C+);5设计并实现编译过程中各个子过程,词法分析,语法分析,语义分析;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。 / 文档可自由编辑打印第2页毕业设计(论文)主要内容:1C语言简介和国内外编译器技术研究现状;2深入了解编译器前端,包括词法分析,语法分析, 语义分析;3熟练掌握C语言语法及语法特点;4深入分析编译器编写语言(C+);5设计并实现编译过程中各个子过程,词法分析,语法分析,语义分析;6训练检索文献资料和利用文献资料的能力;7训练撰写技术文档与学位论文的能力。 学生应交出的设计文件(论文):1内容完整、层次清晰、叙述流畅、排版规范的毕业设计论文;2包括毕业设计论文、源程序等内容在内的毕业设计电子文档及其它相关材料。 第3页主要参考文献(资料):1 KennethAReek.C和指针.人民邮电出版社, 20082 Brian W.Kernighan,Dennis M.Richie. The C Program Language., 20043 Richard Stevens. UNIX环境高级编程. 人民邮电出版社,20064 布莱恩特,奥哈拉伦. 深入理解计算机系统.机械工业出版社,20115 Stanley B. Lippman等. C+ Primer. 人民邮电出版社, 20086 Alfred V.Aho等. 编译原理技术和工具.机械工业出版社,20037 Andrew W.Appel等. 现代编译原理-C语义描述.人民邮电出版社.20068 Steven S.Muchnick. 高级编译器设计与实现.机械工业出版社.20059 严蔚敏,吴伟民.数据结构.201210 高一凡.面向对象的C+数据结构.清华大学出版社.201111 Thomas H.Cormen, Introduction to Algorithmsm.201212 Portland.Lex & yacc Tutorial.201313 ChrisFrase,DavidHansonARetargetable. C Compiler: Design and Implementation.2005专业班级软件1008班学生郝靖宇要求设计(论文)工作起止日期2014年3月17日2014年6月27日指导教师签字日期2014年3月17日教研室主任审查签字日期系主任批准签字日期C语言编译器设计与实现摘要随着计算机的广泛应用,计算机程序设计语言也从初期的机器语言发展为汇编语言,以及现在的各种高级程序设计语言。而编译技术是计算机语言发展的支柱,也是计算机科学中发展最迅速、最成熟的一个分支,他集中体现了计算机发展的成果与精华。其核心思想就是把同样的逻辑结构和思想从一种语言表示的程序转换为另外一种语言表示的程序。从高级语言,甚至运行与虚拟平台的高级语言,到机器语言,最终到硬件执行的物理信号,这一层层的转化,都涉及编译技术的应用。本系统采用C+为编程语言。论文主要介绍了本课题的开发背景,所要完成的功能和开发的过程。重点的说明了系统设计的重点、设计思想、难点技术和解决方案。 关键词:编译技术,编程程序,高级语言C language compiler design and ImplementationAbstractWith the wide application of the computer, computer programming languages are developed from the early machine language into assembly language , and now a variety of high-level programming language. The compiler technology is the backbone of computer language development, but also the fastest growing in computer science , a branch of the most mature , he epitomizes the essence of the computer and the fruits of development .The core idea is the same logical structure of the program and ideas expressed in the conversion from one language to another language program represented . From the high-level language , and even running with high-level language virtual platform to machine language , and ultimately to the hardware implementation of the physical signal , the layers of transformation involves application of compiler technology .System uses C+ as the programming language. Paper introduces the development background of the topic, the development and function to complete the process. Note the focus of systems design, design ideas, technologies and solutions difficult. Key Words: Compiler technology,Programming procedures,High-level programming language目录摘要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 技术可行性93.1.3 运行可行性93.1.4 时间可行性103.1.5 法律可行性103.2 C语言的基本描述103.3 C编译器的功能103.4 C编译器的程序结构113.4.1 C编译器的设计模式113.4.2 C编译器的文件组成123.5 C编译器中的主要数据结构12第四章 C编译器的实现144.1 词法分析阶段144.1.1 概述144.1.2 C词法分析程序的实现144.1.3 关键字与标识符的识别164.1.4 词法识别具体实现164.2 语法分析阶段184.2.1 概述184.2.2 C语言抽象出来的文法规则194.2.3 C语法分析程序的实现224.3 语义分析阶段274.3.1 概述274.3.2 C语言的语义274.3.3 C的符号表274.3.4 C语义分析程序的实现284.4 中间代码生成阶段334.4.1 概述334.5 C编译器的使用方法及测试334.5.1 使用方法334.5.2 测试源文件344.5.3 测试词法分析344.5.4 测试语义分析及中间代码生成354.5.5 测试分析表文件的构造36参考文献38致谢39第一章 绪论1.1 开发背景随着计算机科学技术的飞速发展,计算机技术被应用在了越来越广泛的领域,实现各种各样功能的计算机程序被大量地开发出来,应用在我们的生活、学习和工作当中。相应地,也产生了许多用以编写这些计算机程序的高级程序设计语言。程序编制者通过特定语言的编译器将自己编写的源程序翻译为特定机器上的目标程序,从而能够最终达到程序执行的目的。从20世纪60年代以来,编译器设计就一直是计算机研究发展和开发领域中的一个活跃主题。虽然编译器设计已有很长的历史,并且也是一门相对成熟的计算机技术,但编译器毕竟是一种实现由高级语言源程序至机器或汇编指令的高效映射工具,随着计算机软、硬件水平的飞速发展,使得计算机应用日新月异,程序语言的设计在不断地变化,目标机体系结构也在不断地改进,软件越来越复杂,其规模也越来越大。尽管编译器设计问题在高级层次上没有变化(或变化很小),但当我们深入其内部研究时就会发现,编译器的内部构造其实也一直在变化。此外,由于我们能够提供给编译器本身使用的计算资源也在不断增加。因此,现代编译器可以采用比以前更耗费时间和空间的算法。当然,编译技术研究人员也在继续努力开发新的、更好的技术来解决传统编译器的一些设计性问题1。另一方面,很多编译“前端”技术,如文法、正则表达式、语法分析器以及语法制导翻译器等,仍然被广泛使用。1.2 开发目标和意义编译器是一种相当复杂的系统程序,其代码的长度可从几千行到几百万行不等,所以编写甚至读懂这样的一个程序都不是一件容易的事。绝大多数的计算机专业人员从来没有编写过一个完整的编译器,但是,几乎所有形式的计算均要用到编译器,而且任何一个与计算机打交道的专业人员都应该掌握编译器的基本结构和操作。除此之外,计算机应用程序中经常遇到的一个任务就是有关命令解释程序和界面程序的开发,这比编译器的开发规模要小,但使用的却是很类似的技术。因此,掌握编译器的开发技术具有非常重大的实际意义。编译器的设计的原理和技术还可以用于编译器设计之外的众多领域。因此,这些原理和技术通常会在一个计算机科学家的职业生涯中多次被用到。研究编译器的编写讲设计程序设计语言、计算机体系结构、形式语言理论、算法和软件工
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号