先来看看上下文无关文法, 总的来说上下文无关文法的定义如图 : BNF范式(Backus-Naur Form)经常用来表示上下文无关文法... 接下来提出一个概念叫推导 : 推导有两种, 最左推倒和最右推倒 : 那么其实词法分析的目的就可以用这个上面我们所提到的上下文无关文法来描述了 : 下面是一道 ...
分类:
其他好文 时间:
2016-05-12 01:26:46
阅读次数:
355
首先我们来分析一下语法分析器的任务 : 将由词法分析器返回的Tokens(记号流)经过检查和处理生成根据规定的语法规则来生成抽象语法树... 最终大概是这样 (两个输入 一个输出): 然后是语法树, 大概是这样 : 那么接下来看看在这一阶段所需要学习的内容 : 大概就是这样... ...
分类:
其他好文 时间:
2016-05-11 23:20:14
阅读次数:
159
ACM队不是为了一场比赛而存在的,为的是队员的整体提高。 大学期间,ACM队队员必须要学好的课程有: l C/C++两种语言 l 高等数学 l 线性代数 l 数据结构 l 离散数学 l 数据库原理 l 操作系统原理 l 计算机组成原理 l 人工智能 l 编译原理 l 算法设计与分析 除此之外,我希望 ...
分类:
其他好文 时间:
2016-05-11 21:36:20
阅读次数:
241
今天撸了一个晚上终于完成了, 感觉还是要说一下体会吧... 其实之前课程本身已经提供了相关的算法伪代码, 那么在思路上应该没有问题, 那么最后我却用了一个晚上才完成最后的hopcroft 算法呢... 其实难点在于数据结构的运用, 这边图论算法熟悉的话应该会感觉轻松一些...(不幸的是我还没有系统的 ...
分类:
其他好文 时间:
2016-05-11 01:14:29
阅读次数:
167
今天AI考的还算顺利, 没有不会做的, 目前也没发现错的, 在这里顺便也谈谈AI吧, 我之所以不选AI, 总感觉理论性太强, 学起来不来劲, 经历了大二这一个学期的理论学习, 这AI简直是神课啊, 真是怕了, 大三到英国肯定不选AI... 其实就算在今天下午在考试我也是一直惦记着我的词法生成器... ...
分类:
其他好文 时间:
2016-05-10 02:13:13
阅读次数:
228
1.龙书(Dragon book)书名是Compilers: Principles,Techniques,and Tools作者是:Alfred V.Aho,Ravi Sethi,Jeffrey D.Ullman国内所有的编译原理教材都是抄的它的,而且只是抄了最简单的前端的一些内容。龙书中文版第一版 ...
分类:
其他好文 时间:
2016-05-10 02:07:02
阅读次数:
780
今天来讲第一部分Scanner,俗称扫描器,也叫词法分析器。想要了解Scanner究竟做了什么,我们要从整个流程讲起。 首先,计算器得到的输入的是一串字符,如 ”1 + 2“。 如果不学编译原理,应该如何计算出结果呢?可能会利用栈,一个数字栈一个符号栈云云,但这样处理简单运算还好,如果有大于10的数 ...
分类:
其他好文 时间:
2016-05-07 23:34:19
阅读次数:
957
简介本章依然专注于使用yacc实现计算器,主要的特点是给算术运算增加变量支持。模块拆分它主要分为3个模块
1. lex词法分析器
2. yacc语法分析器
3. 符号表功能描述1. lex词法分析器正规式的定义如下:delim [ \t]
ws {delim}+
letter [a-zA-Z]
digit [0-9]
id {letter}({letter}|{digit})*
/...
分类:
其他好文 时间:
2016-05-07 09:52:10
阅读次数:
252
lex和yacc的使用很简单,但环境配置却是各种问题,本章说明lex和yacc在windows下的环境配置。软件需求:
系统 win7-64位(win7-32, win8, win10全部通过)
c++编译器: vs2010(2008,2013,2015也全部通过)
lex和yacc编译器: ParGen.exe基本流程:
安装Pargen.exe,采用的默认目录安装在C:\Program...
分类:
其他好文 时间:
2016-05-07 09:38:56
阅读次数:
405
最后是一个小作业 : 给定如下的正则表达式 (a|b)((c|d)*),请完成如下练习: (1)使用Thompson算法,将该正则表达式转换成非确定状态有限自动机(NFA); (2)使用子集构造算法,将该上述的非确定有限状态自动机(NFA)转换成确定状态有限自动机(DFA); (3)使用Hopcro ...
分类:
其他好文 时间:
2016-05-07 06:34:48
阅读次数:
448