![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译原理
文章平均质量分 72
凌宝宝和筱猪猪
这个作者很懒,什么都没留下…
展开
-
关于编译器实验的设想
主要是希望能够学习斯坦福的Cool语言编译器,也从斯坦福的网站下了关于Cool语言编译器的手册。 其实主要是希望能够做一些面向对象语言的编译器。关于这一想法有两种设想路线。1、全部按照Cool语言的方式进行开发。由于Cool是为了简化编译器的设计而构造的一种小型面向对象语言,还要重新了解这一语言的语法等。看到斯坦福的一些例子,可以看出其主要应用了面向对象的思想比较重。class原创 2013-03-13 16:42:33 · 692 阅读 · 0 评论 -
Cool语言的词法结构
cool语言的词法单元有:整数、类型标识符、对象标识符、特殊语法符号、字符串、关键字和空白符cool语言的整数:0-9组成的非空串cool语言的标识符由数字、字母和下划线组成,类型标识符以大写字母开头,对象标识符以小写字母开头,还有两个特殊的标识符(但不是关键字)self和SELF_TYPEcool语言的字符串:位于双引号""中间,换行用斜杠/,‘\c’代表字符'c',\b backs翻译 2013-03-20 17:20:50 · 2053 阅读 · 0 评论 -
flex使用初步(转载+修改)
感谢成林君在人人上发了个日志用来说明flex的用法,根据他的用法,我大概明白了flex的工作机制。以下将在成林君的日志的基础上进行flex的使用初步剖析。黑字部分为原文,红字部分为我添加内容。1.下载flex:http://gnuwin32.sourceforge.net/packages/flex.htm 下载Setup文件(词法分析器) 下载bison:h原创 2013-03-21 19:16:13 · 1217 阅读 · 0 评论 -
Lex示例与分析
一.Lex(Lexical Analyzar) 初步示例先看简单的例子(注:本文所有实例皆在RetHat Linux下完成):一个简单的Lex文件 exfirst.l 内容:%{#include "stdio.h"%}%%[\n] ;[0-9]+ printf("Int : %s\n",yyte转载 2013-03-21 19:20:36 · 4783 阅读 · 1 评论 -
结束了,my编译
到FTP交掉了最后的实验。整个编译课程都结束了。紧赶慢赶的在deadline之前完成了任务。边考试还在边做编译器神马的伤不起。 编译器做了部分的优化,虽然有些优化看起来很水,但是用起来发现还真没有那么水。看着最后能跑的parser,感觉也是很爽的有木有。真的可以让一个代码通过编译然后在SPIM上跑起来。 虽然明知道试卷做的不太好,还是希望实验上能赶回一点。这算是原创 2013-07-07 13:20:07 · 437 阅读 · 0 评论 -
just a log
这篇日志只是用来记录我今天是多么的倒霉啊……好不容易改完的词法和语法,shift+delete了……好不容易又做了一遍去吃饭了,锅贴排到我就木有了!!正好木有了有木有……用许畅班的测试用例跑,除了int型的数据都会死循环规约有木有,改了老半天才发现自己编译的时候写错了目标文件名,编译成了Parse,而不是parser啊……我每次都是用的Parser啊……又好不容易过了这个test又原创 2013-06-21 20:07:14 · 438 阅读 · 0 评论 -
RBTree on Linux
linux下内核中本来就有rbtree的实现。在做语义分析的时候,完全可以将所有的符号表组织成一个红黑树。 以下复制于linux内核中的rbtree.h以及rbtree.c rbtree.h #ifndef _LINUX_RBTREE_H#define _LINUX_RBTREE_H#include #include struct rb_原创 2013-06-23 15:27:50 · 638 阅读 · 0 评论 -
Linux内核文档之rbtree.txt
red-black树是什么样的树,为什么需要red-black树?------------------------------------------------ red-black tree(RB树)是一种平衡二叉树,它主要用于存储或者说索引可排序的键 值对数据。RB树(红黑树)与radix树和hash表都不同。radix树是一种比较适合用于 存储稀疏的数据集而转载 2013-06-23 15:28:38 · 512 阅读 · 0 评论