目录 First计算 Follow计算 Select计算 已知文法G[S]: S→MH|a H→LSo|ε K→dML|ε L→eHf M→K|bLM 判断G是否是LL(1)文法. First计算 First集合的定义就是某个非终结符表达式可以推导出来的第一个字符可以是什么 比如表达式S --> abb,它的First(S)={a} First(S)={a}+First(M)+First(H)+{ε}={a,b,d,e,ε} # S表达式存在单个的终结符a,添加{a} # S表达式以M开头,添加…
参考:https://blog.csdn.net/CooperNiu/article/details/78524688…
import hjzgg.first.First; import java.util.LinkedHashMap; import java.util.Map; import java.util.Set; import java.util.TreeMap; import java.util.TreeSet; public class Follow { private Map<String, Set<Character>> first = null; private Map<St…
刚学first集和follow集的时候,如果上课老师没有讲明白或者自己没听明白,自己看的时候还真是有点难理解,不过结合着具体的题目可以理解的更快. 先看一下两种集合的求法: First集合的求法:      First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合. 1.  直接收取:对形如U-a…的产生式(其中a是终结符),把a收入到First(U…
转载地址 https://blog.csdn.net/Alexander_Frank/article/details/51280798 自上而下分析: FIRST集求法 First集合最终是对产生式右部的字符串而言的,但其关键是求出非终结符的First集合,由于终结符的First集合就是它自己,所以求出非终结符的First集合后,就可很直观地得到每个字符串的First集合. 1. 直接收取:对形如U->a-的产生式(其中a是终结符),把a收入到First(U)中 2. 反复传送:对形入U->P…
<编译原理>-用例题理解-自顶向下语法分析及 FIRST,FOLLOW,SELECT集,LL(1)文法 此编译原理确定某高级程序设计语言编译原理,理论基础,学习笔记 本笔记是对教材<编译原理>- 张晶老师版 做学习笔记. 最近在学<编译原理>,前三章感觉还可以理解,到了第四章就感觉这难度就上来了.就是说过了词法分析,刚到语法分析,就开始头大了,于是想做个笔记,本篇就是第 4 章的笔记. (一)前言 第4章 - 自顶向下的语法分析 语法分析 语法分析是在词法分析识别出的单…
近来复习编译原理,语法分析中的自上而下LL(1)分析法,需要构造求出一个文法的FIRST和FOLLOW集,然后构造分析表,利用分析表+一个栈来做自上而下的语法分析(递归下降/预测分析),可是这个FIRST集合FOLLOW集看得我头大... 教课书上的规则如下,用我理解的语言描述的: 任意符号α的FIRST集求法: . α为终结符,则把它自身加入FIRSRT(α) . α为非终结符,则: ()若存在产生式α->a...,则把a加入FIRST(α),其中a可以为ε ()若存在一串非终结符Y1,Y2,…
转载地址 http://dongtq2010.blog.163.com/blog/static/1750224812011520113332714/ 学编译原理的时候,印象最深的莫过于这四个集合了,而且也十分为之纠结.首先要知道First和Follow是一对,而Firstvt和Lastvt是一对.然后要知道这两对都是干什么的.First和Follow是为了画预测分析表的(在LL(1)分析法处).而Firstvt和Lastvt是为了画算符优先关系表的(就是表里面填优先大于小于等于的那个).然后要注…
编译原理(简单语法分析器下载) http://files.cnblogs.com/files/hujunzheng/%E5%8A%A0%E5%85%A5%E5%90%8C%E6%AD%A5%E7%AC%A6%E5%8F%B7%E5%90%8E%E7%9A%84%E8%AF%AD%E6%B3%95%E5%88%86%E6%9E%90%E5%99%A8.zip…
<编译原理>构造 LL(1) 分析表的步骤 - 例题解析 易错点及扩展: 1.求每个产生式的 SELECT 集 2.注意区分是对谁 FIRST 集 FOLLOW 集 3.开始符号的 FOLLOW 集包含 # 4.各集合对对应的对象以及含义 集 对象 含义 FIRST 集 是对产生式右部 右部内部的所有终结符集,可能为 ε FOLLOW 集 是对产生式左部(非终结符) 非终结符后面紧跟的终结符,可能为 #,和该非终结符推导出的右部无关(因为LL(1)文法不包含递归,所以右部不会再有该非终结符,所…