本系列学习笔记基本上是博主的《 openEuler 操作系统》读书笔记,中间插入一些自己查的资料以及翻到的感觉有用的源代码 默认架构为 ARM 程序及其加载执行 类 UNIX...
本系列学习笔记基本上是博主的《 openEuler 操作系统》读书笔记,中间插入一些自己查的资料以及翻到的感觉有用的源代码 默认架构为 ARM 程序及其加载执行 类 UNIX...
本文是以 RPM Packaging Guide[https://rpm-packaging-guide.github.io/] 为主线,进行简化、翻译,中间根据个人的学习需...
LR(0) 文法 若一个文法 G 的拓广文法 G' 的识别活前缀的自动机中的每个状态(项目集)均不存在下述情况:既有移进项目又有规约项目(移进-规约冲突);含有多个规约项目(...
看了前面的内容,我们已经了解到:分析表和驱动器算法,是 LR 分析器的核心。 在分析的过程中,语法分析器总是根据栈顶的状态、当前剩余输入的第一个终结符查询分析表,以确定改变格...
LR分析 LR 分析的特点: 采用最一般的无回溯移进-规约方法; 适用于几乎所有程序设计语言; 能及时发现错误; 分析表复杂,难以手工构造。 LR 分析表和驱动器是 LR 分...
基本方法 从句子 ω 开始,从左到右扫描 ω,反复用产生式的左部替换产生式的右部、谋求对 ω 的匹配,最终得到文法的开始符号(或,发现错误)(也就是从下往上搞出个树,最后推到...
构造预测分析表 预测分析表的作用,是为推导的进行指明方向——我们用当前下推栈栈顶和读写头所指向的符号的组合(即当前的状态),去查询预测分析表,以确定推导的下一步该向着何种方向...
本系列为个人编译原理学习笔记,谬误之处恳请高人指点,感激不尽! 内容整理自西安电子科技大学 王小兵、张南老师的编译原理课程。 使用预测分析器的自上而下分析 使用预测分析器进行...
本系列为个人编译原理学习笔记,谬误之处恳请高人指点,感激不尽! 内容整理自西安电子科技大学 王小兵、张南老师的编译原理课程。 词法分析,是把源程序分析成记号流,识别其中的单词...
对语言进行形式化描述的规则叫文法。 词法规则、语法规则都以形式化的方法对语言进行描述,这样的规则就叫文法。在使用 lex 的时候,我们就可以使用文法来简单地定义和修改语言。 ...
语法分析树和语法树不是一种东西。习惯上,我们把前者叫做“具体语法树”,其能够体现推导的过程;后者叫做“抽象语法树”,其不体现过程,只关心最后的结果。 语法分析树 语法分析树是...
写在前面: 前几篇博客中说到的词法分析,做的是从 【x+y → id+id】 的工作,也就是要将源代码变成一个记号流。语法分析,就是要通过为这个记号流序列(在“龙书”中,该序...
语法分析器是编译器前端的核心 语法分析器的两项主要任务,分别: 是根据词法分析器提供的记号流,为语法正确的输入构造分析树(或语法树); 检查输入中的语法 / 词法错误,并调用...
从 DFA 到最小 DFA 关于星闭包的补充:一个语言被认为是所有可能字的子集。所有可能字的集合可以被认为是所有可能的字符串串接的集合。 DFA 最小化的过程,就是通过某些等...
NFA 识别记号的并行方法 之前的文章中写过的 “用一个输入字符串在一个 NFA 中逐个尝试各种路径、最终找到一条从初态到终态” 的方法被称为“NFA识别记号的串行方法”,然...
一般方法和步骤 用正规式描述模式(描述词法规则); 为每个正规式构造一个 NFA ,这个 NFA 识别正规式表示的正规集(即,将正规式转成 NFA。正规式和NFA在这里就描述...
编译,是把人能看懂的代码翻译成机器能看懂的指令(即,机器语言)的过程,说白了核心任务其实就是搞个翻译,把一堆字符串搞成二进制流罢了。想要翻译,就要先搞懂语言的含义,这就需要进...