![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
Willy__QI
这个作者很懒,什么都没留下…
展开
-
语法分析——预测分析程序
LL(1)文法满足下面的条件:文法不含左递归 对于文法中每一个非终结符A的各个产生式的候选首符集两两不相交。即,若A→α1|α2|...|αn,则FIRST(αi)∩FIRST(αj)=∅ ,其中(i≠j) 对文法中的每个非终结符A,若它存在某个侯选首符集包含ε,则FIRST(A)∩FOLLOW(A)=∅文法通过左递归消除、消除回溯、提取左公共因子可以满足LL(1)的条件,成为LL(1)...原创 2019-12-19 22:27:15 · 1316 阅读 · 0 评论 -
正规式和有限自动机三(DFA化简)
算法思路:把正规式转换成DFA后的状态集划分成两个集合,终态组集合T(包含DFA的终态Y)和非终态组集合N(不包含DFA的终态Y),并把集合T和N加入集合C中。 对于集合C中每个状态集set,假设set中有n个状态s1,s2,......,sn,对于文法的所有终结符,识别一个终结符a后,转换到新的状态s1',s2',......,sn'。如果s1',s2',......,sn'属于C中的同一...原创 2019-11-24 21:21:48 · 944 阅读 · 0 评论 -
正规式与有限自动机一(文法转NFA)
正规式转NFA由以下几种基础的情况组成:(1)单个字符(2)并运算(3)连接运算(4)闭包运算针对非操作符以及各种操作符的详细处理: 1' 当遇到左括号’(‘时:直接压入栈中即可; 2' 当遇到右括号')'时:依次弹出符号栈中的符号直到遇到'('为止。在依次弹出符号栈中的符号时对NFA栈中的NFA元素的操作是:弹出NFA栈顶的两个元素,进行...原创 2019-11-08 22:48:01 · 5411 阅读 · 0 评论 -
词法分析二(词法分析程序)
1、词法分析功能输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其中,syn为单词种别码。Token为存放的单词自身字符串。Sum为整型常量。具体实现时,可以将单词的二元组用结构进行处理。2、待分析的C语言子集的词法1)关键字main if then while do static int double ...原创 2019-10-24 23:27:39 · 3288 阅读 · 3 评论 -
词法分析一(源文件预处理)
预处理功能描述:源程序中可能包含有对程序执行无意义的符号,要求将其剔除。首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的回车符、换行符和跳格符等编辑性文字;把多个空白符合并为一个;去掉注释。状态转换图: 0 :初态 1:读入空格 2:读入 '/' 3:读入...原创 2019-09-28 10:58:45 · 1816 阅读 · 0 评论