文法是最重要的而且是最基础的。正规式和有穷自动机。 一个终结符不能为α。一个终结符是一个原子量,是不能再被分解的一个量。它是最终状态了,不能转换成其他状态了,也不能够用其他的几个量进行代替。终结符是不能单独在左边的。而非终结符恰恰相反。非终结符可以理解为可以拆分的元素。一个程序可以理解为非终结符。因 ...
分类:
其他好文 时间:
2017-05-30 16:19:59
阅读次数:
168
算符优先分析文法 一、写在前面 算符优先分析文法是一种工具,在编译的过程中,隶属于语法分析环节,却又与中间代码的生成息息相关,编译可以分为五个阶段:词法分析、语法分析、语义分析(中间代码的生成)、代码优化、目标代码生成。语法分析是指:在词法分析基础上,将单词符号串转化为语法单位(语法范畴)(短语、子 ...
分类:
其他好文 时间:
2017-05-22 13:32:50
阅读次数:
623
解释器(interpreter)模式 意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。 主要解决:对于一些固定文法构建一个解释句子的解释器。 代码: ...
分类:
其他好文 时间:
2017-05-20 15:26:25
阅读次数:
132
写小白天堂系列的文章算是从这一篇开始吧,但是写这个词法语法分析器实在是因为编译原理老师扣啊,哎,没办法,只能直接写代码,当时正好将Javascript的语法基本撸了一边,所以就决定写一个JS的词法语法...
分类:
其他好文 时间:
2017-05-14 01:14:43
阅读次数:
280
1、先读入终结符,非终结符,和全部产生式。 2、预处理:初始化;getpp()获得每一个非终结符在产生式左边时的产生式编号, 记录在 string getp[]中(能够多个)。 3.获得全部的符号的first集:dfs法,从S開始DFS,遇到终结符则是递归出口,回溯时候沿路保存记录全部路径上VN的f ...
分类:
编程语言 时间:
2017-05-13 22:08:31
阅读次数:
211
为什么我们不用词法分析那一套方式(正则文法、有限状态机等)来解决语法分析? 正则文法通常什么样? 对于文法G=(V, T, S, P),如果产生式的形式如下: A -> xBA -> x 其中A, B属于V,x属于T*,则称为右线性文法;相似的,如果产生式的形式如下: A -> BxA -> x 则 ...
分类:
其他好文 时间:
2017-05-08 14:17:04
阅读次数:
165
1、分词工具是IKAnalyzer它是以开源项目Lucene为应用主体的,结合词典分词和文法分析算法的中文分词组件。2、UUID(UniversallyUniqueIdentifier)全局唯一标识符,是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的。3、插入数据库错误:Datatruncation:Dat..
分类:
其他好文 时间:
2017-05-07 20:07:15
阅读次数:
137
关于编译原理 语法树 句柄 简单短语 短语 的区分,通过两个例子来理解概念以及方法: 例子1——语法树 S -> a|b|(T) T -> TdS|S Vt={a,b,d,(,)}.Vn={S,T},S是开始符 句型(Sd(T)db)是S的一个推导,其中___是句柄;____是最左素短语;____是 ...
分类:
其他好文 时间:
2017-05-01 22:21:44
阅读次数:
250
在考完编译原理之后才弄懂,悲哀啊。不过懂了就好,知识吗,不能局限于考试。 文法: E→TE' E'→+TE'|ε T→FT ' T'→*FT'|ε F→id| (E) 一、首先判断是不是 LL(1)文法 文法G的任意两个具有相同左部的产生式 A --> α|β 满足下列条件: 1、如果α和β不能同时 ...
分类:
其他好文 时间:
2017-05-01 22:17:27
阅读次数:
884
转自:http://guanjy0129.blog.163.com/blog/static/111549445201061491810507/ 一个文法含有下列形式的产生式之一时: 1)A→Aβ,A∈VN,β∈V* 2)A→Bβ,B→Aα,A、B∈VN,α、β∈V* 则称该文法是左递归的。 然而,一 ...
分类:
其他好文 时间:
2017-05-01 22:17:11
阅读次数:
197