
编译器与编程语言研究与开发
文章平均质量分 68
快乐的霖霖
一个人默默的奋斗者
展开
-
自己动手开发编译器之参考博客
http://www.cnblogs.com/Ninputer/archive/2011/06/10/2077991.html#2588239可以参考这个博客进行开发,加油哈~原创 2012-12-30 10:19:28 · 1020 阅读 · 0 评论 -
一个简单的垃圾收集器实现
一个简单的垃圾收集器实现 精简、复用、再复用垃圾收集背后有这样一个基本的观念:编程语言(大多数的)似乎总能访问无限的内存。而开发者可以一直分配、分配再分配——像魔法一样,取之不尽用之不竭。当然,我们从来都没有无限的内存。所以计算机实现收集的方式就是当机器需要分配一些内存,而内存又不足时,让它收集垃圾。“垃圾(Garbage)”在这里表示那些事转载 2013-12-21 17:37:11 · 1497 阅读 · 0 评论 -
一个完整的编译器前端实验
一个完整的编译器前端实验这个编译器前端实验所用的代码为龙书《编译原理》附录A的代码。这个代码可以下载,地址为:http://download.youkuaiyun.com/detail/rill_zhen/4464467 或者 http://dragonbook.stanford.edu/#source。 使用方法:编译:tar xf dragon-fr原创 2013-06-24 10:09:45 · 3325 阅读 · 2 评论 -
图着色算法详解
图着色算法详解图着色算法简介 图的m-着色判定问题——给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色,是否有一种着色法使G中任意相邻的2个顶点着不同颜色? 图的m-着色优化问题——若一个图最少需要m种颜色才能使图中任意相邻的2个顶点着不同颜色,则称这个数m为该图的色数。求一个图的最小色数m的问题称为m-着色优化问题。原创 2013-06-20 17:06:17 · 24932 阅读 · 1 评论 -
用Yacc做语法分析
用Yacc做语法分析YACC简介Yacc 全称 Yet Another Compiler CompilerYacc是一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。作为 Yacc 对说明文件中的 %token NUMBER 声明的对应。Ya原创 2013-06-18 10:54:16 · 2770 阅读 · 0 评论 -
用Lex工具做词法分析
用Lex工具做词法分析一. Lex介绍Lex 是一种生成扫描器的工具。扫描器是一种识别文本中的词汇模式的程序。 这些词汇模式(或者常规表达式)在一种特殊的句子结构中定义,这个我们一会儿就要讨论。一种匹配的常规表达式可能会包含相关的动作。这一动作可能还包括返回一个标记。 当 Lex 接收到文件或文本形式的输入时,它试图将文本与常规表达式进行匹配。 它一次读入一原创 2013-06-06 17:13:56 · 6991 阅读 · 0 评论 -
一个简单词法分析器的C语言实现
一个简单词法分析器的C语言实现1.1实验描述例如:对源程序:begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:…… 1.1.1待分析的简单的词法(1)关键字: begin if then while do end所有的关键字转载 2013-06-13 14:07:30 · 18984 阅读 · 2 评论 -
词法分析器简介
词法分析器简介引言 编译器的工作的开始,就是读入源码(预编译先不考虑),然后,去除一些空字符,然后经过词素匹配,并和其属性(可选),组成一个的词法单元,多个词法单元,连接成词法单元序列。自此,此法分析器的工作就算完成了。呵呵,就这么简单。可见,找到一个词素,是词法分析器的核心工作,那,如何获得一个词素呢?就是本节要讨论的主要内容。1.1工作流程上面已经简单描原创 2013-06-13 10:53:32 · 1797 阅读 · 0 评论 -
gcc编译器概览
gcc编译器概览引言gcc现在的意思是“GUN编译器集合”,这里说的是上个世纪的意思“GUN C语言编译器”。 1.1程序的一般编译过程以gcc为例:一般情况下,比如我们有一个源文件:main.c,里面写的是我们的代码。想执行以下,gcc main.c,执行以下这个命令就会生成一个a.out的文件。然后./a.out就可以执行了。但是,这中间原创 2013-06-13 10:46:25 · 1145 阅读 · 0 评论 -
一个简单开发的垃圾收集器工作原理详解
一个简单开发的垃圾收集器工作原理详解一.工作原理 最近在实现一个阉割版的函数式语言(编译器已完成,虚拟机在憋的过程中,之后会发帖),希望内存管理的部分由虚拟机来完成,而不是由客户自己折腾,这样显然可以降低客户使用这门语言的难度,比如不需要担心内存泄漏,减少内存运用不当的bug,这里客户只管放心地一直申请内存就行,不再需要手工释放内存(如果让客户选择是否自己释放都行,会原创 2013-05-30 16:08:49 · 2151 阅读 · 0 评论 -
字符编码
字符编码我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大原创 2015-03-23 23:37:04 · 646 阅读 · 0 评论