最新广东海洋大学编译原理LL(1)文法分析器实验(java).docxVIP

  • 169
  • 0
  • 约1.06万字
  • 约 13页
  • 2021-06-25 发布于天津
  • 举报

最新广东海洋大学编译原理LL(1)文法分析器实验(java).docx

精品文档 精品文档 精品文档 精品文档 精品文档 精品文档 精品文档 精品文档 GDOU-B-11-112 广东海洋大学学生实验报告书(学生用表) 实验名称 实验3:语法分析 课程名称 编译原理 课程学院(系)数学与计算机学院 专业 计算机科学与技术 班级 计科1141 学生姓名 学号 实验地点 科425 实验日期 2017.4.21 一、实验目的 熟悉语法分析的过程;理解相关文法的步骤; 熟悉First集和Follow集生成 二、实验要求 对于给定的文法,试编写调试一个语法分析程序: 要求和提示: (1)可选择一种你感兴趣的语法分析方法 (LL(1)、算符优先、递归下降、 SLR(1)等)作为编制语法分析程序的依据。 (2)对于所选定的分析方法,如有需要,应选择 一种合适的数据结构,以构造 所给文法的机内表示。 (3)能进行分析过程模拟。如输入一个句子,能 输出与句子对应的语法树,能 对语法树生成过程进行模拟;能够输出分析过程 每一步符号栈的变化情况。 设计一个由给定文法生成First集和Follow集并 进行简化的算法动态模拟。 三、实验过程 1:文法:E-TE E -+TE |£T-FT T -*FT | £ F-(E)|i: 2程序描述(LL(1)文法) 本程序是基于已构建好的某一个语法的预测分析表来对用户的输入字符串 进行分析,判断输入的字符串是否属于该文法的句子。 基本实现思想:接收用户输入的字符串(字符串以“ #”表示结束)后,对 用做分析栈的一维数组和存放分析表的二维数组进行初始化。然后取出分析栈的 栈顶字符,判断是否为终结符,若为终结符则判断是否为“ #”且与当前输入符 号一样,若是则语法分析结束,输入的字符串为文法的一个句子,否则出错若不 为“#”且与当前输入符号一样则将栈顶符号出栈,当前输入符号从输入字符串 中除去,进入下一个字符的分析。若不为“ #”且不与当前输入符号一样,则出 错。 四、程序流程图 接收用户锚人的字笛串,初始化技翔 分析和口口、分斩极住m1口 读大下一个翎指frnjdkcwtl]出枝,inputChadA输入串申除去将产生式的右部逆序入栈. 即若产生忒邪■加心■ 鬼, 则为栅序为题…嵬肛fenxi [countll^VtO是」 读大下一个翎 指frnjdkcwtl]出枝,inputChadA输入串申除去 将产生式的右部逆序入栈. 即若产生忒邪■加心■ 鬼, 则为栅序为题…嵬肛 fenxi [countll^VtO 是」 ; * fenii[count1]-:¥* ? *,En3dkow,l]=i¥utChar ] , ,是 1产生式的右手为小— ferui [cnuntll 与 inputChar |fenji【c:Dunt]J=iiwCh^) 是翻成产生式? 静成顶符号P [ocwtl ]出枝 出楮 出造 程序端握国 程序中使用以下文法作对 户输入的字符串进行分析: E- TE E 一+TE | £ T-FT T 一*FT | £ FT|(E) 该文法的预测分析表为: 精品文档 精品文档 精品文档 精品文档 预测分析表 1 + * ( ) # £ KE -TE E, -+TEJ f E —E T -FT -F『 r f E 6*ft f E -E F f i -(E) 五:结果及截图 1、显示预测分析表,提示用户输入字符串 LL (Java Application] (2017T4月21 日 T^F4:35:5fi) 已构建好的预测分析表 i * * ( ) 的 E -TE error error -TE* error error E, error -+TE error error -E -£ T -FTT error error -FTT error* error T1 error -E -*FT1 error -E -E F -i error error -(E) error error 2、输入的字符串为正确的句子: 请输入字符由(输入exit退出卜十i二 分析过程 步骤| 分析栈 | 剩余摘人串 | 所用产生式 1 #E i*i+i# E-TE 2 *ET T-FT 3 ttETF i,i+i# F-1 4 #ETi i*i+i# -iQ£R 5 ttET1 *i+i# T-*FT 6 #ETF* *i+i# k匹配 7 肥TF i+i# F-i 8 #ETbi i+iit i匹配 9 肥T +i# T -E 10 #E +iit E- -+TEb 11 #E T+ +i# “十四匹配 12 #ET 1# I-FT 13 升ETF i# F-i 14 忙Ti i# iEH IS #ETb 甘 T- -E 1 *E # E-e 17 it 接受 3、

文档评论(0)

1亿VIP精品文档

相关文档