编译原理算符优先语法分析实验报告.docxVIP

  • 79
  • 0
  • 约4.1千字
  • 约 8页
  • 2021-03-21 发布于天津
  • 举报

编译原理算符优先语法分析实验报告.docx

专题 4_ 算符优先语法分析 李若森计科 1301 一、 理论传授 语法分析的设计方法和实现原理;算符优先文法、 最左素短语、算符优先矩阵、优先函 数的基本概念;算符优先文法句型最左素短语的确定;算符优先分析算法的实现。 二、 目标任务 实验项目 实现算符优先分析算法, 完成以下描述算术表达式的算符优先文法的算符优先分析过程。 G[E]: Et E+T|E-T|T Tt T*F|T/F|F Ft(E)|i 设计说明 终结符号 i 为用户定义的简单变量,即标识符的定义。加减乘除即运算符。 设计要求 构造该算符优先文法的优先关系矩阵或优先函数; 输入串应是词法分析的输出二元式序列, 即某算术表达式 “专题 1 ”的输出结果, 输出为输入串是否为该文法定义的算术表达式的判断结果; 算符优先分析程序应能发现输入串出错; 设计两个测试用例(尽可能完备,正确和出错) ,并给出测试结果。 任务分析 重点解决算符优先矩阵的构造和算符优先算法的实现。 能力培养 深入理解理论对实践的指导作用;基本原理、实现技术和方法的正确运用。 三、实现过程 OPG优先关系 设G是一 0G (简单优先)文法, a,b € Vt , U,V,W € Vn (1) a = b 当且仅当OG有 形如….ab….或….aVb….的规则 ⑵a b 当且仅当0G有 形如….aW….的规则,而且 W=+b??.或 W=+Vb….. ⑶a b 当且仅当0G有 形如….Wb….的规则,而且 W=+….a 或 W=+ - .aV 若a,b之间至多存在上述三种优先关系之一, 0G为OPG(算符优先)文法。 FIRSTVT 集和 LASTVT 集 a) FIRSTVT 集 ? 两条原则 若有规则 LR b…或U^ Vb…,贝U b € FIRSTVT(U) 若有规则 UR V…且 b € FIRSTVT(V),贝U b € FIRSTVT(U) ? 过程描述 数据结构:STACK栈 布尔数组 F(U,b) U € Vn, b € Vt F(U,b)真 b € FIRSTVT(U) 假 b FIRSTVT(U) 算法分析 初始:F(U,b)初值(根据原则①) F(U,b) 为真的(U,b)对进STACK栈 循环:直至STACK空(根据原则②) 弹出栈顶元素,记(V,b) 对每一个形如 Ur V…的规则 若F(U,b) 为假,变为真,进 STACK栈 若F(U,b) 为真,再循环 结果:FIRSTVT(U)={b I F(U,b)=TRUE} FIRSTVT(E)={ +, -, *, /, (, i } FIRSTVT(T)={ *, /, (, i } FIRSTVT(F)={ (, i } 表3-1 U、 U、J + - * E T T T T T F / ( ) i T T T T : T T : T T b) LASTVT 集? 两条原则①若有规则 …a或 X…aV,则a b) LASTVT 集 ? 两条原则 ①若有规则 …a或 X…aV,则a € LASTVT (U) ②若有规则 …V 且 a € LASTVT (V),贝U a € LASTVT (U) ? 过程描述 数据结构:STACK栈 布尔数组 F(U,a) U € Vn,a € Vt F(U,a)真 a € LASTVT (U) 假 a LASTVT (U) 算法分析 初始:F(U,a)初值(根据原则①) F(U,a) 为真的(U,a)对进STACK栈 循环:直至STACK空(根据原则②) 弹出栈顶元素,记(V,a) 对每一个形如Uf V…的规则 若F(U,a) 为假,变为真,进 STACK栈 若F(U,a)为真,再循环 结果:LASTVT (U)={a I F(U,a)=TRUE} LASTVT(E)={ +,-,*, /, ), i } LASTVT(T)={ *, /, ), i } LASTVT(F)={ ), i } 表3-2 U、J + - * E T T T T T F / ( ) i T T T T亍 T T「 T T 最左素短语 算符优先文法句型的一般形式: #N1a1N2a2 nfanNn+1 # a i € Vt N i € V1(可有可无) 最左素短语的确定: 一个OPG句型的最左素短语是满足以下条件的最左子串: N aj ….Nai N+1 其中:aj-1 a j a j = a j+1 =…=a / = a i a i a i+1 a j-1 a j = a j+1 = ???= a / = a i a i+1 所以, 夠 …NjB| N|9jNh1^1 anNh 构造OPG优先矩阵算法 FOR 每一条规则UfXiX才…片 Do \ IF晋和X田均庚斗

文档评论(0)

1亿VIP精品文档

相关文档