// 实验存档 截图: 代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <link href="https://fonts.googleapis.com/css?family=Noto+Serif+SC" rel="stylesheet"> <style>…
作业十一——LL(1)文法的判断,递归下降分析程序 判断是否为LL(1)文法 选取有多个产生式的求select,只有一条产生式的无需求select 同一个非终结符之间求交集,全部判断为空后则为LL(1)文法 求FIRST集 是每条产生式右边所出现的首个终结符的集合 求FOLLOW集 是针对非终结符,找到产生式右边跟在非终结符后的终结符,#为输入串的结束符 求SELECT集 当产生式不推导出ε时,就为FIRST 当产生式推到出ε时,就为(FIRST(A->ε)-{ε})∪FOLLOW{A} 2.法…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解:因为 First(Da)={b, a} First(ε)={ε} First(aADC)={a} First(b)={b} Follow(A)={c.b.a, #} FIRST(B) FIRST(D), FIRST(C), FOLLOW(C) Follow(C)={#} Follow…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? FIRST(Da)={b,a} FIRST(ε)={ε} FIRST(aADC)={a} FIRST(b)={b} FOLLOW(A)={c,b,a,#} FOLLOW(C)={#,} FOLLOW(D)={a,#} SELECT(A->Da)=FIRST(Da)={b,a} SE…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解: FIRST集: FIRST(Da)={b,a} FIRST(ε)={ε} FIRST(aADC)={a} FIRST(b)={b} FOLLOW集: FOLLOW(A)=FIRST(B)+FIRST(B)+FIRST(B)+FOLLOW(C)={c,a,b,#} FOLLOW(C)…
1. 文法 G(S): (1)S -> AB (2)A ->Da | ε (3)B -> cC (4)C -> aADC | ε (5)D -> b | ε 验证文法 G(S)是不是 LL(1)文法? FIRST集: FIRST(A) → { a,b } FIRST(Da) → { a,b } FIRST(ε)→{ ε } FIRST(cC)→{ a,c } FIRST(b)→{ b } FOLLOW集: FOLLOW(S)→{ # } FOLLOW(A)→{ a,b,c,#…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? FIRST集: FIRST(A) = { b , a , ε} FIRST(C) = { a , ε} FIRST(D) = { b , ε} FOLLOW集: FOLLOW (A) = { c , b , a , ε} FOLLOW (C) = { # } FOLLOW (D) = {…
1. 文法 G(S): (1)S -> AB (2)A ->Da|ε (3)B -> cC (4)C -> aADC |ε (5)D -> b|ε 验证文法 G(S)是不是 LL(1)文法? 解: Select(A -> Da) = First(Da) = {b,a} Select(A -> ε) = (Follow(ε)-{ε})∪Follow(A) = {b,a,c,ε} Select(C -> aADC) = First(aADC) = {a} Sel…
MyUtil.java package Util; import Value_Final.RRule; public class MyUtil { /** * 判断字符串是否是关键字 * @param key 要判断的字符串 * @return 是否找到 * */ public static boolean isKeyValue(String key){ for(int i=0;i< RRule.KEY_VALUE.length;i++){ if(key.equals(RRule.KEY_VAL…
---内容开始--- 这是一份编译原理实验报告,分析表是手动造的,可以作为借鉴. 基于  SLR(1) 分析法的语法制导翻译及中间代码生成程序设计原理与实现1 .理论传授语法制导的基本概念,目标代码结构分析的基本方法,赋值语句语法制导生成四元式的基本原理和方法,该过程包括语法分析和语义分析过程. 2 .目标任务[ 实验 项目] 完成以下描述赋值语句 SLR(1)文法语法制导生成中间代码四元式的过程.G[A]:A→V=EE→E+T∣E-T∣TT→T*F∣T/F∣FF→(E)∣iV→i [ 设计说明…