http://blog.csdn.net/lm2302293/article/details/6798765html
工做若是是和编译器相关的或者编译器爱好者们,谁没有点冲动想本身写个编译器出来。我也作了一些调研,分享以下:前端
How to write your own compilerjava介绍如何使用Java语言完成一个面向LLVM后端的编译器。以mjava做为目标语言,mjava是Java语言的一个子集。包括词法分析,语法分析,错误控制,符号表管理,类型检查等部分。后端
Hey Kids, Let’s Write a Compiler Today!ui
采用一种逐步增长功能的方式构造编译器。做者的文章写得深刻浅出(我只看了abstract和introduction部分)。google
Let’s Build a Compiler, by Jack Crenshawspa
做者从1988-1995年用了7年的时间完成了这份介绍。没有使用Flex和yacc这些东西,纯手工制做。使用Pascal语言写出的编译器。是一位学物理的博士,非常钦佩!.net
MIT OCW 6.035 Computer Language Engineering MITssr
关于计算机工程的开放课程,使用Java语言建立一个完整的Decaf语言编译器。我也曾看过一点,但这门课的实验要求有MIT的环境,还有一些库什么的。外面的人拿不到,因此没办法,只能做参考了。htm
Stanford University Computer Science 143 — Compilers
编译器课程,使用C++实现一个Cool(Classroom Object-Oriented Language)语言编译器。也是由于没有环境和库,只能做罢。
颇有特点的一门课,也是使用C++实现COOL语言的编译器,但将LLVM融入进来,前端输出中间表示到LLVM,在做一些后端的实验。另外UIUC还有一门高级的编译器课程,是使用Java语言来编写。重要的是这个CS426可以下到全部课程的资料,包括源码。感兴趣的朋友能够试试。
两个新闻组,能够上去提问题,也许有人回答你:
某人在饭桌上曾经的感慨,I have a dream...
一直以来,都以为编译器高深莫测。作个编译器出来,或许很难,但作了可能就不难。 多是勇气不足。再等等吧,总有一天我要把它实现!