大运天成赖搏击

进步最重要

导航

2012年9月26日 #

使用Flex Bison 和LLVM编写自己的编译器[zz]

摘要: 1、介绍我总是对编译器和语言非常感兴趣,但是兴趣并不会让你走的更远。大量的编译器的设计概念可以搞的任何一个程序员迷失在这些概念之中。不用说,我也曾 今尝试过,但是并没有取得太大的成功,我以前的尝试都停留在语义分析阶段。本文的灵感主要来源于我最近一次的尝试,并且在这一次中我取得一点成就。幸运的是,最近的几年,我参加了一些项目,这些项目给了我在建立编译器上很多有用的经验和观点。另外一件事是,我非常幸运得到LLVM的帮助。对于这个工具,我不知道改怎么去形容它,但是他给我的这个编译器的确带来非常大的帮助。1.1、你为什么要阅读本文你也许想看看我正在做的事情,但是更有可能的是,你也是和我一样对编译器和语 阅读全文

posted @ 2012-09-26 17:30 linucos 阅读(1785) 评论(1) 推荐(0) 编辑

使用bison和flex工具[zz]

摘要: 这里有一个使用bison建立一个简单的计算器的例子:http://www.cs.berkeley.edu/~maratb/cs164/bison.html使用bison和flex工具学习编译原理,远比单独看书然后自己编写一些程序生动的多。这样你就不会在那些复杂的字符处理,正则表达式的处理上浪费精力,最后费尽心力,却没有结果,失去了学习的兴趣。我这里有一个简单的计算器的程序,可以实现加、减、乘、除运算,并支持括号的处理和26个字母作为变量。以前自己使用后缀表达式方式写过一个这样的程序,单单中缀表达式改为后缀表达式就是几百行的代码,反正自己现在还是不知道怎么处理里面复杂的堆栈的(我用了STL的Li 阅读全文

posted @ 2012-09-26 16:15 linucos 阅读(565) 评论(0) 推荐(0) 编辑