编译原理
文章平均质量分 80
parting_soul
大道至简
展开
-
可导空的非终极符集合
可空非终结符集合 思路: 1.用集合R表示可空非终结符集合,初始状态集合R为空 2.遍历所有产生式,若存在A->w,w为空,则将A加入Q集合中 3.若有产生式A->x1x2x3x4... x1,x2,x3,x4都在集合Q中,则把A加入到A中 4.重复步骤3,直至集合Q不再变化package com.parting_soul;import java.util原创 2017-04-08 11:28:33 · 1551 阅读 · 0 评论 -
确定有穷自动机
确定有穷自动机思路: 将状态与对应的行,符号与对应的列 索引进行映射,输入规则为状态转换表,之后输入待判断的字符串,判断是否会被自动机接受package com.parting_soul;import java.util.HashMap;import java.util.Map;import java.util.Scanner;/** * 确定有穷自动机 * 将原创 2017-04-08 11:35:26 · 1246 阅读 · 0 评论 -
词法分析器
简易词法分析器: 输入一段程序,分离出每一个符号串,并标记其类型package com.parting_soul;import java.io.BufferedReader;import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOExcep原创 2017-04-08 11:41:02 · 1123 阅读 · 0 评论 -
LL(1)递归下降
package com.parting_soul.LL1Analyze;import java.util.Scanner;/** * 递归下降 * Created by parting_soul on 17-4-12. * * S->AaS * S->BbS * S->d * A->a * B->^ * B->c * * select(S->AaS) = {a}原创 2017-04-18 20:40:40 · 1758 阅读 · 0 评论 -
LL(1)文法first集
LL(1) 文法 first集 思路: 利用递归第一步先计算可导空的非终极符集合 令first(X)=空 若 X->a... 则将a加入first(X) 若 X->ABC.. ,则计算first(A) ,first(B) ,first(C)..直到遇到第一个不导空的非终结符或者终极符,则将他们都加入first(X) 并除去^(空串)的情况 若 右部可以导空,将右原创 2017-04-08 11:56:29 · 1732 阅读 · 0 评论