编译原理
王致列
在成为全栈工程师的路上一直努力着!
展开
-
编译原理(六)LR分析、LR(0)、SLR(1)、LR(1)、LALR(1)
6.1 LR分析概述6.3 SLR(1)分析6.4 LR(1)分析6.5 LALR(1)分析6.6 二义性文法在LR分析中的应用原创 2020-06-22 17:22:22 · 3862 阅读 · 1 评论 -
编译原理(五)自底向上优先分析法、简单优先分析、算符优先分析、最左素短语、优先函数
自底向上分析方法,也称移进-归约分析法。实现思想:对输入符号串自左向右进行扫描,并将输入符逐个移入一个栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,就用该产生式的左部非终结符代替相应右部的文法符号串,这称为归约。重复这一过程,直到栈中只剩文法的开始符号时,则分析成功,也就确认输入串是文法的句子。5.1 自底向上优先分析法概述5.2 简单优先分析法5.3 算符优先分析法...原创 2020-06-21 15:05:30 · 6437 阅读 · 1 评论 -
编译原理(四)自顶向下语法分析方法、LL(1)文法的判别、非LL(1)文法转换为LL(1)文法
本文要点理解 “能使用自顶向下分析技术的文法必须是LL(1)文法”LL(1)文法的充要条件LL(1)文法的判别某些 非LL(1)文法 到 LL(1)文法 的等价变换1.提取左公共因子2.消除左递归(直接左递归、间接左递归)不确定的自顶向下分析思想确定的自顶向下分析方法1.递归子程序法2.预测分析法[判别LL(1)文法;构造预测分析表;分析输入串]4.1 确定的自顶向下分析思想主要思想:从文法的开始符号出发,如何根据当前的单词符号,唯一地确定选用哪个产生式来替换相应的VN向原创 2020-06-19 12:17:39 · 5593 阅读 · 0 评论 -
编译原理(三)词法分析、正规式、正规文法、NFA、DFA、最小化DFA
话不多说,本文要点总结如图:3.1 词法分析程序的设计词法分析(lexical analysis)功能:逐个读入源程序字符,输出“单词符号” ,供语法分析使用。主要任务:读源程序,产生单词符号其他任务:滤掉空格,跳过注释、换行符追踪换行标志,复制出错源程序宏展开,……3.2 单词的描述工具单词的描述工具和识别工具:正规文法(正则文法、3型文法)正规式(正则式)有穷自动机(NFA、DFA)三者之间可以相互转换3.3 有穷自动机(FA)原创 2020-06-18 14:46:30 · 10089 阅读 · 1 评论 -
编译原理(二)文法和语言、符号和符号串、文法的类型、语法树
要点:符号和符号串的相关概念文法和语言的形式定义文法的类型上下文无关文法及其语法树上下文无关文法的句型分析有关文法实用中的一些说明目的:掌握文法和语言的相关概念,为以后的词法分析、语法分析、语义分析等做出准备。2.1 文法的直观概念语言:是由句子组成的集合,是一组记号所构成的集合。汉语—— 所有符合汉语语法的句子的全体英语 —— 所有符合英语语法的句子的全体程序设计语言 —— 所有该语言的程序的全体形式语言和文法如果不考虑语义和语用,只从语法这一侧面来看语言,这种意义下原创 2020-06-16 18:32:47 · 8003 阅读 · 1 评论 -
编译原理(一)编译程序、解释程序、程序设计语言范型
编译原理的地位是软件技术的基础是计算机专业的基础课程,是专业必修课编译原理的作用编译原理是介绍如何将高级语言程序变换成低级语言程序的方法。其理论基础坚实,其形式化系统不仅用于编译程序,还大量用于人工智能、多媒体技术、数据库等领域。程序设计语言低级程序语言特定的计算机系统所固有的语言即:机器语言、汇编语言特点:执行效率高、编制效率低高级程序语言与自然语言比较接近的语言过程式语言:C, Pascal, Fortran,ADA 对象式语言:Java, C++ 等函数式语原创 2020-06-16 10:37:36 · 7200 阅读 · 1 评论