
编译原理
_Liz
To change. To be better.
展开
-
词法分析器Lexer
词法分析In computer science, lexical analysis, lexing or tokenization is the process of converting a sequence of characters (such as in a computer program or web page) into a sequence of tokens (strings...原创 2018-09-23 20:32:05 · 5688 阅读 · 0 评论 -
FISRT集和FOLLOW集
FIRST集什么是FIRST集FIRST(α\alphaα)是从α\alphaα推导出的串的起始终结符的集合。FIRST(α\alphaα) = {a | α⇒∗\alpha\Rightarrow^{*}α⇒∗a…, a∈VT\in V_T∈VT}, VTV_TVT是终结符集合。特殊情况:α⇒∗ε\alpha\Rightarrow^{*}\varepsilonα⇒∗ε时,规定ε∈\va...原创 2018-11-23 21:19:24 · 417 阅读 · 0 评论 -
由NFA转DFA以及DFA的化简
NFA(Non-deterministic Finite Automata)不确定有限自动机构造NFA分成两步:画出每一个小单元的NFA;将每一个小单元的NFA组合。小单元的NFA单个输入符号aaa连接运算ababab选择运算a∣ba|ba∣b添加两个状态(选择运算开始状态和结束状态),在开始状态引两个路径通过ε\varepsilonε分别到两个单输入符号的NFA,同时两个NF...原创 2018-11-25 20:17:45 · 1698 阅读 · 0 评论 -
自上而下的语法分析
进行自上而下的语法分析,基于文法是LL(1)文法。分为递归下降的分析和预测分析。提取左公因子对产生式组A→α∣αb1∣αb2∣…∣αbm∣γ1∣γ2∣…∣γpA \rightarrow \alpha | \alpha b_1 | \alpha b_2 | \ldots | \alpha b_m | \gamma_1 | \gamma_2 | \ldots | \gamma_pA→α∣αb1...原创 2018-11-28 18:37:19 · 1160 阅读 · 0 评论 -
自下而上的语法分析
句柄右句型γ\gammaγ的句柄是一个产生式的右部β\betaβ,并且该句柄β\betaβ通过产生式A→βA\rightarrow\betaA→β归约后,得到的是最右推导中的前一个句型。右句型:所有在最右推导中出现的句型都是右句型。原创 2018-12-01 21:43:11 · 1247 阅读 · 0 评论 -
中间语言表示
编译器构成编译器分为前端和后端:前端:依赖于源语言,独立于目标机器。包括词法分析器、语法分析器、语义分析器和中间代码生成器。后端:依赖于目标机器,独立于源语言。包括代码优化器和代码生成器。中间语言表示后缀表示如果EEE是变量或常数,那么EEE的后缀表示就是EEE本身。如果EEE是形式为E1 op E2E_1 \ op \ E_2E1 op ...原创 2018-12-10 18:04:19 · 983 阅读 · 0 评论