2022年华东理工大学编译原理词法分析+语法分析实验报告-n_第1页
2022年华东理工大学编译原理词法分析+语法分析实验报告-n_第2页
2022年华东理工大学编译原理词法分析+语法分析实验报告-n_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息科学与工程学院__《编译原理》_实验报告系别计算机科学与工程专业计算机科学与技术班级_____________学号__________姓名____________指导教师2021学年第二学期

实验题目:词法分析实验日期:2022.5--2022.6实验环境(操作系统,开发语言) 操作系统:Windows 开发语言:C、Java实验要求用C语言开发词法分析程序PL0Compiler。修改PL/0词法,将其定义为一种新的语言,例如称其为PL/1语言,并完成PL/1语言的词法分析程序。实验步骤用PL/0语言编写PL/0测试用例源程序,将其命名为Test0.pl。用C\Java语言开发PL/0词法分析程序PL0Compiler。PL0Compiler读入Test0.pl,识别出一个个单词,并将这些单词流依序同时输出到屏幕和文件中。被输出的每个单词应包括(1)单词序号(2)单词字符串(3)单词类型(4)单词值(如果是标识符,其值是字符串;如果是数,其值是数值;如果是符号,其值是ASCII代码…)在程序开发过程中,应设立断点,单步运行词法分析程序,依次输出一个个单词。分析和理解词法分析程序,解释词法分析程序中的数据和变量变化的原因和输出结果。研究其他程序设计语言,找出与PL/0词法不同的构词法则(例如C语言的标识符的组成规则与PL/0标识符的组成规则有所不同)。据此修改PL/0的某些词法(例如,将PL/0标识符组成规则修改为C语言的标识符的组成规则),将其定义为一种新的语言,例如称其为PL/1语言。用PL/1语言编写PL/1测试用例源程序,将其命名为Test1.pl。开发PL/1词法分析程序PL1Compiler。(可通过修改原PL0Compiler,实现PL/1语言的词法分析功能)。PL1Compiler读入Test1.pl,识别出一个个单词,并将这些单词流依序同时输出到屏幕和文件中。实验结果(Test1.pl内容,PL1Compiler词法分析程序输出的第1张截图)Test1.pl:consta=6,b=81;VARx,y;procEdurep;procedureq;x:=2;beginx:=1;write(x);end;begincallp;end.PL1Compiler词法分析程序输出的截图:实验体会(说明新的PL/1语言与PL/0语言不同的词法之处,程序开发过程中出现的技术问题及其解决方法、心得体会等)词法分析器的主要功能在于过滤掉源程序中的空格、换行、制表符,判断每个单词的合法性。如果一个单词合法,则要返回它的类别和值,从而为语法分析服务;否则,停止分析并报错。通过本次试验,了解了词法分析的主要步骤,就是把标识符,保留字区分,并且能识别出空格,并把数据能从文件中读出来,主要识别标识符和保留字,主要通过比较参照一个事先建好的数组,里面包含了所有的保留字,不在其中的便是标识符。输出分别为单词序号、单词字符串、单词类型、单词值。改进后的词法分析器的标识符可以使用大小写字母和数字混合。错误的符号用error,notaword表示。保留字也可以用大写的方式表示。该词法分析的不足有:对于有2个小数点的数字不能报错。构思是可以通过检测小数点的个数来判断是否是错误的数字。对于一些错误也没有给出是哪类错误。心得体会:虽然书上的代码看起来复杂且多,但

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论