编译原理课程的设计--C语言编译器.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言编译器 摘 要 编译原理是计算机科学与技术专业最重要的一门专业基础课程,内容庞 大,涉及面广,知识点多。由于该课程教、学难度都非常大,往往费了大量时间而达不 到预期教学效果俗语说:学习的最好方法是实践。本次课程设计的目的正是基于此,力 求为学生提供一个理论联系实际的机会,通过布置一定难度的课题,要求学生独立完成。 我们这次课程设计的主要任务是编程实现对输入合法的算符优先文法的相应的字符 串进行算符优先分析,并输出算符优先分析的过程。算符优先分析法特别有利于表 达式的处理,宜于手工实现。算符优先分析过程是自下而上的归约过程,但这种归约未 必是严格的规范归约。而在整个归约过程中,起决定作用的是相继连个终结符之间的优 先关系。因此,所谓算符优先分析法就是定义算符之间的某种优先关系,并借助这种关 系寻找句型的最左素短语进行归约。通过实践,建立系统设计的整体思想,锻炼编写程 序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知 识的习惯,树立团队协作精神。同时,课程设计可以充分弥补课堂教学及普通实验中知 识深度与广度有限的缺陷,更好地帮助学生从全局角度把握课程体系。 关键词 程序设计;数据库;SQL;C++; 1 任务申请 1.1、引言 编译器的设计涉及到编译程序构造的一般原理、基本设计方法、主要实现技术和一 些自动构造工具。尽管“编译程序”是特指将高级程序设计语言翻译成低级语言的软件, 但编译程序构造的基本原理和技术也广泛应用于一般的设计和实现,因此,是一门对实 践性要求较高的课程。 目前,世界上存在着数千种源语言,既有Fortran 和Pascal 这样的传统程序设计 语言,也有各计算机应用领域中出现的专用语言。目标语言也同样广泛,目标语言可以 是另一种程序设计语言或者是从微处理机到计算机的任何计算机的机器语言。不同语言 需要不同的编译器。根据编译器的构造方法或者它们要实现的功能,编译器被分为一遍 编译器、多遍编译器、装入并执行编译器、调试编译器、优化编译器等多种类别。从表 面上看,编译器的种类似乎千变万化,多种多样,实质上任何编译器所要完成的基本任 务都是相同的。通过理解这些任务,我们可以利用同样的基本技术为各种各样的源语言 和目标机器构建编译器。 1.2、背景 编译程序是现代计算机系统的基本组成部分之一,而且多数计算机系统都含有不止 1 一个高级语言的编译程序,对有些高级语言甚至配置了几个不同性能的编译程序。从功 能上看,一个编译程序就是一个语言翻译程序。它把一种语(称作源语言)书写的程序 翻译成另一种语言(称作目标语言)的等价的程序。比如汇编程序是一个翻译程序,它 把汇编语言程序翻译成机器语言程序。如果源语言是像FORTRAN,PASCAL,或C那样的 高级语言,目标语言是像汇编语言或机器语言那样的低级语言,则这种翻译程序称作编 译程序。 1.3、 目标 (1)设计符号表 确定符号表的组织方式,一般应包括名字栏和信息栏,其中名字栏作为关键字。要 考虑能够存储有关名字的信息,并可以高效地完成如下操作: a.查找:根据给定的名字,在符号表中查找其信息。如果该名字在符号表中不存在, 则将其加入到符号表中,否则返回指向该名字的指针; b.删除:从符号表中删除给定名字的表项。 (2)设计词法分析器 设计各单词的状态转换图,并为不同的单词设计种别码。将词法分析器设计成供语 法分析器调用的子程序。功能包括: a.具备预处理功能。将不翻译的注释等符号先滤掉,只保留要翻译的符号串,即要 求设计一个供词法分析调用的预处理子程序; b.能够拼出语言中的各个单词; c.将拼出的标识符填入符号表; d.返回(种别码, 属性值)。 (3)语法分析器 要求用预测分析法、递归下降分析法、算符优先分析法、SLR分析法(几种方法任 选),实现对表达式、各种说明语句、控制语句进行语法分析。 (4)目标代码生成器 能完成指定寄存器个数的情况下将一中间代码程序段翻译成汇编语言目标代码(汇 编指令应包括加、减、乘、除),要求指令条数最少的情况下,尽量使用寄存器,尽量 少访问内存,这样才能做到运行效率高

文档评论(0)

xieliandimei + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档