编译原理
爱玩游戏的小隐
菜鸡码农 & DOTA2信仰玩家
展开
-
正则到NFA的转换
有穷自动机作用:将输入的序列转换成一个状态图,方便之后的处理。通常被用在词法分析器中。1)有穷自动机是一个识别器,对每个可能的的输入串简单的回答“是”或“否”。2)有穷自动机分为两类:a)不确定的有穷自动机(NFA)对其边上的标号没有任何限制。一个符号标记离开同一状态的多条变,并且空串ε也可以作为标号。b)确定的有穷自动机(DFA)有且只有一条离开该状态,以该符号位标号的边。不确定的有...原创 2019-04-17 19:55:12 · 8146 阅读 · 1 评论 -
LR技术——LR(0)自动机的构建
#LR语法分析器特点:1)由表格驱动2)几乎适用所有程序设计语言3)无回溯的移入归约技术4)可以尽早检测到错误#项什么是项?这里所说的项是一种状态,用来在LR语法分析中对集合进行描述。例如产生式 A -> XYZ 会有四个项A -> ▪XYZA -> X▪YZA -> XY▪ZA -> XYZ▪产生式 A -> ε 只有一个项 A -&...原创 2019-06-17 14:26:48 · 7454 阅读 · 0 评论 -
移入——归约技术
归约定义:我们可以将自底向上语法分析过程看成是建一个串w“归约”慰问发开始符号的过程,在归约中,一个与某产生式体相匹配的特定子串被替换为该产生式的头部的非终结符号。定义理解起来比较晦涩,我们来看个例子就知道了。已知有文法E ——> E + T | TT ——> T * F | FF ——> ( E ) | id他的产生式为 id * id那么归约过程为:i...原创 2019-06-17 14:26:04 · 3879 阅读 · 0 评论 -
FIRST集合、FOLLOW集合以及LL(1)文法
FIRST集合定义可从α推导得到的串的首符号的集合,其中α是任意的文法符号串。规则计算文法符号 X 的 FIRST(X),不断运用以下规则直到没有新终结符号或 ε可以被加入为止 :(1)如果 X 是一个终结符号,那么 FIRST(X) = X。(2)如果 X 是一个非终结符号,且 X ->Y1 Y2 … Yk是一个产生式,其中 k≥1,那么如果对于某个i,a在 FIRST(Y1)...原创 2019-04-19 13:49:41 · 16583 阅读 · 8 评论 -
消除左递归及提取左公因子
消除左递归什么是左递归?如果一个文法中有一个非终结符号A使得对某个串α存在一个推导A=》Aα,那么这个文法就是左递归的。递归分为立即左递归和非立即左递归。立即左递归单步即可看出来,非立即左递归举个例子:立即左递归:A ——> Aα | β非立即左递归: 1)A→aB 2)A→Bb 3)B→Ac 4)B→d消除左递归消除立即左递归只需要遵循以下规律进行转换就ok。...原创 2019-04-19 11:32:39 · 36703 阅读 · 6 评论 -
最左推导、最右推导及其语法树构建
最左推导定义在最左推导中,总是选择每个句型的最左非终结符号。[句型] 如果S=》a,其中S是文法G的开始符号,我们可以称a是G的一个句型,当a是一个终结符时,此时这个句型可以称为句子。[非终结符号] 可以继续向下推导的符号例子有文法:E -> E +E | E * E | - E | ( E ) | id需要推出串 - ( id + id)根据左推导...原创 2019-04-17 20:06:01 · 9014 阅读 · 3 评论 -
正则表达式
正则表达式在了解正则表达式之前我们先来对几个词做一下解释,以方便之后的学习字母表:是一个有限的符号集合。典型的例子包括字母、数位、标点符号。如ASCII码表,亦或是{0,1}这一组二进制字母表,亦或是{a,1,w,4}这一组我们自定义的字母表。这里使用的字母表是一种广泛上的定义。串:是字母表中符号的一个有穷序列,称为串,通常用s表示,长度记为|s|。空串就是长度为0的串,用ε表示。语言:是...原创 2019-04-17 19:55:17 · 1026 阅读 · 1 评论 -
NFA到DFA的转换及DFA的简化
还不太了解有穷自动机或是NFA的同学可以先看我的上一篇文章:正则到NFA的转换确定型有穷自动机原创 2019-04-17 19:55:02 · 35883 阅读 · 21 评论 -
LR技术——SLR语法分析表
我们之前意见写好了自动机,接下来用自动机来构建语法分析表。语法分析表由两部分组成,一个语法分析动作函数ACTION和一个转换函数GOTOACTION函数有两个参数:一个是状态i,另一个是终结符号a(或是输入标记符号$),ACTION[i,a]有四种形式:移入j,j是一个状态归约A->β接受报错2.我们把定义在项集上的GOTO函数拓展为定义在状态集上的函数:如果GOTO[I...原创 2019-06-17 14:27:29 · 7272 阅读 · 2 评论