
编译原理
文章平均质量分 85
Mafia.M.A
这个作者很懒,什么都没留下…
展开
-
SLR(1)
SLR(1)目的方法步骤(例题)如何判定lr[s]是SLR(1)文法SLR(1)分析表的构造方法和LR(0)分析表方法一样:拓广文法→列项目→项目集规范蔟(DFA图)→分析表步骤同上,只是多求一步FOLLOW集。目的SLR(1)的出现是为了解决LR(0)中的冲突:移进——归约移进(·后面是终结符)归约(·在最后)归约——归约活前缀定义、项目定义,会识别四种项目(移进、归约、接受、待约)规范句型的一个前缀(不含句柄之后的任何符号)文法中G[s]中每一个产生式的右部添加一个原点⋅·⋅原创 2022-04-07 15:51:01 · 5527 阅读 · 4 评论 -
LR语法分析技术
LR语法分析技术LR(k)语法分析概念LR语法分析技术:SLR技术增广文法移入-规约决策问题研究的切入点——LR(0)项目LR(0)项目的闭包——项集项集I的GOTO函数: GOTO(I,X)LR(k)语法分析概念LR中的:L表示对输入串进行从左到右扫描R表示最右推导的逆过程k表示最多向前看k个符号当k的数量增大时,语法分析器的规模将急剧增大;k = 0时,向前看符号只有当前输入符k = 1时,向前看符号有当前输入符和FOLLOW(A)FOLLOW(A):向前看符号。针对文法,而不原创 2022-04-04 17:57:58 · 1341 阅读 · 0 评论 -
&4 - 从顶向下、最左推导的语法分析
语法分析基于自顶向下和最左推导的语法分析遇到的问题问题一:左递归解决办法:消除左递归消除间接左递归问题二:左公因子解决办法:提取左公因子问题三:选择哪个产生式进行推导形式化处理出现语法错误的表现形式FIRST()和FOLLOW( )的求法FIRST()求法:FOLLOW()求法已知语言的文法,给定一个词素串,判定它是否符合文法,符合的话,得出语法分析树。语法分析的期望:一次扫描,解决语法分析问题;自顶向下的语法分析:最右推导,最左推导;自底向上的语法分析;基于自顶向下和最左推导的语法分析遇到的问题原创 2022-03-23 10:11:51 · 672 阅读 · 0 评论 -
从NFA到DFA的转换
从NFA到DFA的转换例1:简单NFA(不带有空边)例2:从带有空边的NFA到DFA子集构造法词法分析阶段的错误处理查找已扫描字符串中最后一个对应于某终态的字符错误恢复策略例1:简单NFA(不带有空边)DFA的每个状态都是一个由NFA中的状态构成的集合,即NFA状态集合的一个子集。转换表:状态\输入abcA{A,B}nullnullBnull{B,C}nullCnullnull{C,D}Dnullnullnull例2:从带有原创 2022-03-19 16:50:50 · 14173 阅读 · 0 评论 -
&3词法分析 - 有穷自动机
有穷自动机FAFAFA 的表示:转换图FAFAFA 定义(接收)的语言最长子串匹配原则有穷自动机FA的分类确定的有穷自动机DFA非确定有穷自动机NFA带有“空边”的NFA带有和不带有“空边”的NFA的等价性这类系统具有一系列离散的输入输出信息和有穷数目的内部状态(状态:概括了对过去输入信息处理的状况)系统只需要根据当前所处的状态和当前面临的输入信息就可以决定系统的后继行为。每当系统处理了当前的输入后,系统的内部状态也将发生改变。输入带:用来存放输入符号串读头:从左向右逐个读取输入符号,不能修改(原创 2022-03-17 11:23:00 · 750 阅读 · 0 评论 -
词法分析中的正则表达式
正则表达式用正则语言描述字符串的集合:运算的衍生模式表达中的相关概念语言的运算用正则表达式表达词法单元的模式正则表达式的扩展简洁的正则表达式例子正则表达式的状态转换图正则语言是一门最简单的语言用途:描述目标语言的词法单元及其构成法则本质:描述字符串的集合仅有三个概念:字符并运算连接运算:集合的笛卡尔乘积运算,也叫点积运算用正则语言描述字符串的集合: 满足某一构成法则的字符串的集合称其为一个正则表达式。 构成法则的线性迭加则通过正则表达式的正则运算来表达。 最小的正则表达式为一原创 2022-03-11 16:00:57 · 1663 阅读 · 0 评论 -
编译原理 - 词法分析
词法分析词法分析器作用编译过程划分为词法分析和语法分析两个阶段的原因语法分析中的三个概念词法分析的实现如何区分兼容性的标识符词法分析算法词法单元词法单元例子词法单元的模式正则表达式用正则语言描述字符串的集合正则表达式是一种可以很方便地描述词素模式的方法。如何对正则表达式进行转换:首先转换为不确定有穷自动机,然后再转换为确定有穷自动机。后两种表示方法可以作为一个“驱动程序”的输入。这个驱动程序就是一段模拟这些自动机的代码,它使用这些自动机来确定下一个词法单元。这个驱动程序以及对自动机的规约形成了词法原创 2022-03-11 14:28:50 · 1831 阅读 · 0 评论 -
编译原理 - 引论
编译原理一、语言处理器二、编译器结构词法分析语法分析语义分析中间代码生成代码生成三、程序设计语言基础在一个程序可以运行之前,他首先需要被编译器翻译成一种能够被计算机执行的形式。编译器就是完成这项翻译工作的软件系统。一、语言处理器语言处理器有两种: 编译器 和 解释器编译器:一个编译器就是一个程序。作用:他可以阅读以某一种语言(源程序)编写的程序,并把该程序翻译成一个等价的、用另一种语言(目标语言)编写的程序。如果目标程序是一个可执行的机器语言处理器,可以被用户调用,处理输入并产生输出原创 2022-03-10 15:58:14 · 475 阅读 · 0 评论