- 博客(19)
- 资源 (1)
- 收藏
- 关注
原创 开源编译器学习笔记06(VC6 语法分析器——见面语法树状态机之start)——2014_2_2
if(ISTOKTYPE(ID)) //ISTOKTYPE是在global.h里定义的一个宏,用来判断当前节点的token类型是否是一个ID标示符。 { p = curnode; //如果是标示符,就将当前节点设为父节点,并将state设为INID 状态机的枚举值。下一次循环switch case时就会进入INID的程式。
2014-02-02 14:47:19
975
1
原创 开源编译器学习笔记05(VC6 语法分析器——见面语法树状态机)——2014_2_1
http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-4.html 文章越来越不通俗, 需要花精力理解 int express() { Node_Type *nodes = AST_nodes.nodes; int state = START; int p=-1; bool IsMidTim_Div =
2014-02-01 14:12:43
1117
原创 开源编译器学习笔记04(VC6 动态节点数组——AddNode)——2014_1_31
http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-3.html void main(int argc,char * argv[]) { int len; enum TOKENTYPE token; if(argc != 2) {
2014-01-31 13:16:08
831
1
原创 开源编译器学习笔记03(VC6 词法扫描器 ——动态内存先放一边)——2014_1_30
理解 getToken( )函数后,再回到主函数中, void main(int argc,char * argv[]) { int len; enum TOKENTYPE token; if(argc != 2) { printf("usage: %s
2014-01-30 14:24:34
851
原创 开源编译器学习笔记02(VC6 词法扫描器 ——GetToken)——2014_1_29
参考文章 http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-2.html enum TOKENTYPE getToken() { enum STATES state = START;//设置起始状态为START enum TOKENTYPE token; while(state!=DOWN)//当st
2014-01-29 13:36:56
1047
1
原创 编译原理学习笔记13——(没有plan b的斧头帮—— LL分析法)——2014_1_29
LL 和 预测分析表 千丝万缕的联系,看了死背是不管用的,只能在用的时候再反复理解了。
2014-01-29 13:05:28
1099
原创 开源编译器学习笔记01(VC6 词法扫描器)——2014_1_28
开源程序介绍来自(含linux版本下载) http://www.zengl.com/html/genlanmu/zenglbianchengyuyan/article-2.html 程序下载(VC 版本) http://pan.baidu.com/s/15QuDb#dir/path=%2Fzengl_language_for_VC_6.0 和VC版本说明 http://bbs.zen
2014-01-28 12:30:21
1102
原创 编译原理学习笔记12——(魔镜魔镜告诉我—— 构造预测分析程序)——2014_1_28
随着对语法和生成式的熟悉,感觉使用图像来辅助理解和记忆的边际效用比刚开始小了。就像制造火箭一样,每一节都有它的作用。如果不是图像的帮助,现在还没有离开地面。
2014-01-28 11:04:43
957
原创 编译原理学习笔记11——(三个臭皮匠顶上—— 构造预测分析表)——2014_1_27
没想到,内容还是很多的,幸亏分了好多部分,要不然没法理解。 ******************************************************* http://blog.sina.com.cn/s/blog_6fd8a5870100whkf.
2014-01-27 11:53:35
1401
原创 编译原理学习笔记10——(野火烧不尽再递归下降—— E → E+T | T从上向下程序)——2014_1_26
相当于笔记05 的重推,只不过公式更复杂了。
2014-01-26 16:12:49
1264
原创 编译原理学习笔记08——(没有国你什么都不是之FOLLOW ME—推导笔记06的FOWLOW集)——2014_1_24
好像中了教科书的套了,越来越循规蹈矩了。
2014-01-24 12:17:34
868
原创 编译原理学习笔记07——(寻找带头大哥—推导上节笔记的FIRST集)——2014_1_23
这节笔记和上节笔记,和下节笔记都是为了预测分析表而准备的。编译原理难看来是有道理的,逻辑性很强,一步走错,则。。。 这节笔记引入了公式,是为了解释后面的推导过程。 难度不大,只要把握好 或者 | 空,这两个就很好理解了。
2014-01-23 10:44:28
866
原创 编译原理学习笔记06——(连连看—准备一下很多课件都演示的公式E → E+T | T )——2014_1_22
看了很多课件(至少3种),居然都用到了下面的例子, G: E → E+T | T T → T*F | F F → (E) | i 而且复杂的分析也是围绕上式展开的, 为了跟上,也采用上面的例子,同时做了一个连连看。感觉编译原理学得好,连连看肯定也不错。 三个产生式如下, 然后,上面的都是左递归, 实际上编程的
2014-01-22 12:39:49
1919
原创 编译原理学习笔记05——(识别孙悟空72变之魔鬼特训—递归下降分析程序构造)——2014_1_20
感觉学习资料还不全,模仿了一个类似简单程序,还有点不完整,等到后面再完善吧。 不含左递归和每个非终结符的所有候选式的终结首符集都两两不相交条件 暂时先放在一边,也是后面再回头理解。
2014-01-20 05:48:40
1016
原创 编译原理学习笔记04——(孙悟空学72变之菩提老祖的阴谋—可怕的左递归)——2014_1_18
看左递归的时候,都是一个公式公式的,一个比一个抽象。看美剧的时候,遇到这种情况就会说,speaking English,翻译成中文:说点人话好不好。 后来发现用从上而下的方法分析左递归,即对字符串进行分析时,指针是从左向右移动的,左递归的特点最左边就是非终结符,除非最左边生成终结符,否则指针怎么都无法指向终结符。但是非终结符生成终结符前,变化了多少次,是不知道的,通过尝试法,则会有大量回溯。
2014-01-18 00:10:03
1305
原创 编译原理学习笔记03——(唐僧团队智过平顶山—学从上而下语法树)——2014_1_16
看了几天语法树,术语太多,定义太多,推导太多,不看个几十遍怎么能记住呢? 先不管编译原理先后学习顺序了,上手试试:
2014-01-16 09:05:12
1729
原创 编译原理学习笔记02——(对最基本文法的理解)——2014_1_12
其实笔记01是有些问题的,因为是今天想到的,所以不再修改笔记01,而是记入笔记02中,作为不断理解的记录。 在笔记01中,假设老外懂的基本词汇只是面和猪肉,其实还有几个:用小笼蒸的,用xx把xx包起来,把xx切碎。即终结符有5个。 生成式也不止三个,还有 肉 生成 猪肉,应该是4个。非终结符感觉就是过渡用的。 *****************************
2014-01-12 22:38:04
1214
原创 编译原理学习笔记01——(通过老外吃中餐—学最基本文法概念)——2014_1_11
******************************************************* 这两天开始学习《编译原理》,网上很多人推荐龙书,暂时只看了前50也,感觉还行,就是实例太少。从百度文库上下载了很多文法课件,举得例子就是”我是大学生“,这个例子很有用,最起码知道了抽象的东西也是有原型的。 上wiki看了一下Noam Chomsky,他原意并不是开发编译原理的
2014-01-11 22:02:53
963
求解——unix下的代码在VC6框架下编译通过,但是有问题
2014-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅