C语言编译器前端的设计与实现 实训报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
-1-
第 1 章 绪论
1.1 C 语言及编译器概述
C 语言是在 70 年代初问世的。一九七八年由美国电话电报公司(AT&T)贝尔实验室正式 发表了 C 语言。同时由 B.W.Kernighan 和 D.M.Ritchit 合著了著名的“THE C PROGRAMMING LANGUAGE”一书。通常简称为《K&R》,也有人称之为《K&R》标准。但是,在《K&R》中并 没有定义一个完整的标准 C 语言,后来由美国国家标准学会在此基础上制定了一个 C 语言 标准,于一九八三年发表。通常称之为 ANSI C。C 语言是一种结构化语言。它层次清晰, 便于按模块化方式组织程序,易于调试和维护。C 语言的表现能力和处理能力极强。它不仅 具有丰富的运算符和数据类型,便于实现各类复杂的数据结构。它还可以直接访问内存的 物理地址,进行位(bit)一级的操作。由于 C 语言实现了对硬件的编程操作,因此 C 语言集 高级语言和低级语言的功能于一体。既可用于系统软件的开发,也适合于应用软件的开发。 此外,C 语言还具有效率高,可移植性强等特点。因此广泛地移植到了各类各型计算机上, 从而形成了多种版本的 C 语言。
2.3.1 自顶向下的语法分析...........................................................................................5 2.3.2 自底向上的语法分析...........................................................................................5 2.4 语义分析.........................................................................................................................6 2.5 符号表.............................................................................................................................6 2.6 类型检查.........................................................................................................................7 第 3 章 系统详细设计..................................................................................................................8 3.1 系统设计基本思路.........................................................................................................8 3.2 词法分析模块设计.........................................................................................................8 3.3 语法分析模块设计.......................................................................................................11 3.4 语义分析模块设计.......................................................................................................14 第 4 章 结束语............................................................................................................................16 参考文献...................................................................................................................................... 16 附录: 附录 1:词法分析核心代码............................................................................................17 附录 2:语法分析核心代码............................................................................................18
[4] 杨克玉.Visual studio 2005 程序设计实训教程[M].北京:机械工业出版社出版,2009.2。
教师签名: 年月日
C 语言编译器前端的设计与实现
摘 要:编译器是程序员使用的关键工具,程序员每天都在使用编译器,
并且非常依赖于其正确性和可靠性。编译器作为广大IT从业者必须接触的 系统软件,它的设计本身又是一个极其庞大的工程。编译器相关的各项技 术经过近几十年的发展,已经日臻成熟,然而编译器构造原理和技术依然 是计算机科学中理论与实践相结合的最好典范。
主要参考资料:
可行性研究、需求分析 总体设计 详细设计 系统调试、测试 撰写实训报告 验收
[1] 钱焕延.编译技术第 2 版[M].南京:东南大学出版社出版,2002。
[2] 康慕宁.编译原理[M].西安:西北工业大学出版社出版,2003。
[3] 贺世娟,陈冀川.Visual studio 2005 程序设计[M].北京:中国水利水电出版社出版,2008.8。
技术要求: 1、熟练掌握一门语言,熟练掌握 C 语言语法使用,以及各种语法结构 2、良好的算法数据结构基础,对常见的数据结构模型能够实现 3、对编译原理知识有良好的基础,对于各种常见文法做到心中有数 4、熟练使用 VS2005 开发工具
进度安排: 2012 年 11 月 26 日——2012 年 12 月 09 日 2012 年 12 月 10 日——2012 年 12 月 23 日 2012 年 12 月 24 日——2013 年 01 月 06 日 2013 年 01 月 07 日——2013 年 01 月 13 日 2013 年 01 月 14 日——2013 年 01 月 18 日 2013 年 01 月 19 日——2013 年 01 月 20 日
编译是从源代码(通常为高阶语言)到能直接被计算机或虚拟机执行的目ห้องสมุดไป่ตู้代码(通 常为低阶语言或机器语言)的翻译过程。然而,也存在从低阶语言到高阶语言的编译器, 这类编译器中用来从由高阶语言生成的低阶语言代码重新生成高阶语言代码的又被叫做反 编译器。也有从一种高阶语言生成另一种高阶语言的编译器,或者生成一种需要进一步处 理的的中间代码的编译器(又叫级联)。
职称
实践地点
计算机基础实验室
实践日期
2012 年 11 月 26 日起至 2013 年 1 月 20 日
选题的目的: 编译器前端是制作一个编译器最为关键性的一个步骤,设计一个优秀的前端,直接影响到后期编译
器的实现效率。编译器前端具有多样化,实现的方法较多,如何选择更优秀的方法来设计,让许多人一 直不懈的研究下去。并且编译器前端的设计能与自然语言处理相互印证,是一个值得思考的领域。
1.1 C 语言及编译器概述...................................................................................................... 1 1.2 C 编译器设计思想.......................................................................................................... 1 1.3 开发工具的选用及介绍.................................................................................................2 1.4 论文组织结构.................................................................................................................3 第 2 章 C 语言词法分析器总体分析与设计.............................................................................. 4 2.1 系统设计目标与功能分析.............................................................................................4 2.2 词法分析.........................................................................................................................4 2.3 语法分析.........................................................................................................................4
net2005升级而来它的最大优点就是提供了功能强大的mfc类库mfc是一个很大的c类层次结构其中封装了大量的类及其函数很多windows程序所共有的标准内容可以由mfc的类来提供mfc类为这些内容提供了用户接口的标准实现方法程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓这将简化编程工作大大的减少程序员编写的代码数量使编程工作变得更加轻松容易
计算机与信息工程学院
软硬件专业综合课程设计总结报告
题目: C 语言编译器前端的设计与实现
姓 名: 学 号: 专 业: 计算机科学与技术 指导教师: 起止日期: 12.11.26—13.01.20
实践题目
计算机与信息工程学院
软硬件专业综合课程设计任务书
C 语言编译器前端的设计与实现
学生姓名
班级
学号
指导教师
本文首先介绍了 C 语言及 C 语言编译器的发展历程,其次对本次开发 所用到的工具 Visual Studio C++2005 以及面向对象的程序设计方法做一 下简单介绍。最后重点介绍了编译器前端的详细开发过程,分为三个部分 分别阐述:词法分析器的设计,语法分析器的设计,语义分析部分。每个 部分又分别从总体框架,详细流程,重点数据结构和函数,以及与其他部 分的接口等方面予以阐述。由于 C 语言本身的复杂性,很难面面俱到实现 所有标准定义,所以本次设计只象征性的选择部分具有代表性的功能。在 本文的第四章详细给出了此次设计所实现的功能和语法规范,同时也给出 了编译器的运行方式。
关键词:编译器前端、C 源程序、面向对象程序设计方法、VC++
目录
摘要.................................................................................................................................................I 第 1 章 绪论.................................................................................................................................. 1
相关文档
最新文档