编译原理编译器调研报告.docxVIP

  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文档。上传文档
查看更多
编译原理编译器调研报告   编译原理上机报告   组员:   班级:   一、上机题目:   实现一个简单的语言的编译器   二、上机目的   加深编译原理基础知识的理解:词法分析、语法分析、语法制导翻译等加深相关基础知识的理解:数据结构、操作系统等提高编程能力   锻炼独立思考和解决问题的能力   三、上机要求   1、功能要求   接收以CPL编写的程序,对其进行词法分析、语法分析、语法制导翻译等,然后能够正确的执行程序   2、验收要求条件:   1.完成CPL词法分析器;2.完成CPL语法分析器;3.完成CPL语法制导翻译;方法:   1.演示程序的功能;2.解释程序的源代码;   四,基本步骤   1.分别配置ParserGenerator、VisualC++;2.使用ParserGenerator创建一个工程number   ?编写l文件;   ?编译,生成与;   3.安装ParserGenerator、VisualC++;   4.使用VC++创建Win32ConsoleApplication工程number   ?配置该项目;   ?加入与,编译工程;?执行标识符数字识别器;   注意:每次修改l文件后,需要重新编译l文件,再重新编译VC工程   五、工具:   编译器:VisualC++,Eclipse   Lex与Yacc:ParserGenerator或者其他自己擅长的语言和环境   六、相关介绍   1、CoreProgrammingLanguage   数据类型:整型变量,布尔变量   ?取值范围{…,-2,-1,0,1,2,…},{true,false}   运算表达式:简单的代数运算,布尔运算   程序语句:赋值表达式,顺序语句,if-else语句,while语句   词法分析器语法分析器   语义子程序   C/C++/Java编译器   (1)手工编写   CPLCompiler   词法l文件   语法y文件   C/C++编译器   CPLC   C,C++,   JAVA等   (2)工具生成   便于关注语言实现的本质,而不受繁冗细节的干扰   基本框架:   CPL程序   CPL   Complier   执行结果   2、词法分析器生成器Lex   Lex是一个词法分析器生成器,接受正规式表示的词法规则,生成识别正规式所描述语言的源程序,不同版本的Lex支持不同的高级语言,如C、C++、Java等。   词法分析器   人工编写   输入字符序列记号流   Lex转化   利用Lex构造词法分析器:实质为如何设计正规式和语义动作Lex源程序*.l(三段式):[定义   C声明   *.l   辅助定义正规式   ]   EXE   %%   规则   词法规则正规式   编译原理实验报告   课程名称______编译原理_____题目名称PL0上机作业学生学院__计算机学院______专业班级__12级计科8班学号____311XX110____学生姓名____谢偲灏_指导教师______杨劲涛___   XX年1月3日   一、概述   目的:在分析理解一个教学型编译程序的基础上,对其词法分析程序、语法分析程序和语义处理程序进行部分修改扩充。达到进一步了解程序编译过程的基本原理和基本实现方法的目的。   1.   要求:课内实验   对PL/0作以下修改扩充:   增加单词:保留字:FOR,TO,DOWNTO,+=,-=,++,--;RETURN要求:词法识别即可   替换单词:不等号#改为,   增加条件语句的ELSE子句,要求:写出相关文法,语法图,语义规则。   二、实验环境与工具   源:C语言   程序目标语言:PL/0实现工具:vc++运行平台:PC机,Windows7   三、设计方案   1、结构设计说明   PL/0语言编译器   PL/0语言可看成是PASCAL语言的子集,它的编译程序是一个编译解释执行系统。PL/0   的目标程序为假想栈式计算机的汇编语言,与具体计算机无关。   PL/0的编译程序采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序。此外,用表格管理程序建立变量,常量和过程标识符的说明与引用之间的信息联系。用出错处理程序对词法和语法分析遇到的错误给出在源程序中出错的位置和错误性质。   2.各功能模块描述   四、主要成分描述   1符号表○   为了组成一条指令,编译程序必须知道其操作码及其参数。这些值是由编译程序本身联系到相应标识符上去的。这种联系是在处理常数、变量和过程说明完成的。为此,标识符表

文档评论(0)

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

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

1亿VIP精品文档

相关文档