
编译原理
文章平均质量分 76
编译原理知识
gvliew
这个作者很懒,什么都没留下…
展开
-
简单的词法分析器的实现
参照百度百科,词法分析器又称扫描器,其作用为将编写的文本代码流解析成一个个记号(种别码),供后续语法分析使用。扫描器在其工作过程中,一般应完成下列的任务(1)识别出源程序中的各个单词符号,并将其转换为内部编码形式;(2)删除无用的空白字符、回车字符以及其它非实质性字符;(3)删除注释;(4)进行词法检查,报告所发现的错误。原创 2017-10-19 23:02:24 · 2257 阅读 · 1 评论 -
<编译原理>NFA转化DFA 及 DFA的化简
正则表达式-->NFA--->DFA--->最简DFADFA(有限自动机,每个状态的下一步都是确定的,没有空。只有一个开始状态,只有一个结束状态)NFA(有可能转到多个状态,可能有空)※由正则表达式转到NFA:基本可以分成3种:AB(连接)A|B(或)A*(0到多个A)例:正则表达式(a|b)*(aa|bb)(a|b)*的NFAN转载 2017-12-03 21:37:00 · 22822 阅读 · 8 评论 -
<编译原理>自顶向下语法分析
整理了一些知识点,比较零散,多以例题为主自顶向下分析方法:语法分析从顶部(树根、文法的开始符号)到底部(叶子、语言的终结符号)为输入的符号串建立分析树。主旨:从文法的开始符号S出发,反复使用各种产生式,寻找”匹配”于输入符号串的推导(从S(根)出发,向下逐步建立语法树,最终:为输入串寻找一个最左推导)自上而下分析面临的主要问题 1) 如何选择候选式:如果转载 2017-12-08 21:31:51 · 6756 阅读 · 0 评论 -
<编译原理>短语、直接短语及句柄
用语法树求短语、简单短语和句柄的方法是:1)每个句型都有一棵语法树;2)每棵语法树的叶(从左到右)组成一句型;3)每个子树 的叶(从左到右)组成一短语;4)每个简单子树 的叶(从左到右)组成一简单短语;5)最左简单子树 的叶(从左到右)组成一句柄。[例]假设某程序语言的文法如下:S→a|b|(T)T→TdS|S其中:Vt={a,b,d,(转载 2017-12-10 16:18:43 · 16460 阅读 · 2 评论 -
编译原理中LR(0)项目集规范族的构造
本文转载自: http://www.cnblogs.com/lazycoding/archive/2012/05/12/2497065.html 此文略长。我也没想到这写起来这么多,但对构造过程绝对清楚,一步步慢慢看吧。 LR的第一个L和LL的第一个L含义相同,即从左到右扫描句子 ,第二个R表示Right most最右推导。 在通常的转载 2017-12-18 22:33:38 · 11413 阅读 · 0 评论 -
堆内存与栈内存
今天翻看昨天编写的代码,突然发现上一篇:http://blog.youkuaiyun.com/dala_da/article/details/79314107中会有内存泄漏的风险。比如说我58行和90行,分别开辟了一段指定长度的空间存放bool型变量,但是函数结束前,并没有把他们删除掉、、、貌似经常犯这个错误,包括使用malloc时,也很少释放掉。。。以前总觉得不重要,反正不影响运行输出,今天看了下内存中的堆...转载 2018-02-12 21:17:43 · 281 阅读 · 0 评论