编译器相关资源

出处:http://blog.csdn.net/lm2302293/article/details/6798765

 

How to write your own compiler

介绍如何使用Java语言完成一个面向LLVM后端的编译器。以mjava作为目标语言,mjava是Java语言的一个子集。包括词法分析,语法分析,错误控制,符号表管理,类型检查等部分。

 

Hey Kids, Let’s Write a Compiler Today!

采用一种逐步增加功能的方式构造编译器。作者的文章写得深入浅出(我只看了abstract和introduction部分)。

 

Let’s Build a Compiler, by Jack Crenshaw

作者从1988-1995年用了7年的时间完成了这份介绍。没有使用Flex和yacc这些东西,纯手工制作。使用Pascal语言写出的编译器。是一位学物理的博士,很是钦佩!

MIT OCW 6.035 Computer Language Engineering MIT

关于计算机工程的开放课程,使用Java语言创建一个完整的Decaf语言编译器。我也曾看过一点,但这门课的实验要求有MIT的环境,还有一些库什么的。外面的人拿不到,所以没办法,只能作参考了。

 

Stanford University Computer Science 143 — Compilers

编译器课程,使用C++实现一个Cool(Classroom Object-Oriented Language)语言编译器。也是因为没有环境和库,只能作罢。

UIUC CS 426

很有特色的一门课,也是使用C++实现COOL语言的编译器,但将LLVM融入进来,前端输出中间表示到LLVM,在作一些后端的实验。另外UIUC还有一门高级的编译器课程,是使用Java语言来编写。重要的是这个CS426能够下到所有课程的资料,包括源码。感兴趣的朋友可以试试。

两个新闻组,可以上去提问题,也许有人回答你:

http://groups.google.com/group/comp.compilers?hl=en

http://compilers.iecc.com/index.phtml

几个不错的相关网站和博客:

http://typeof.net/

http://www.cnblogs.com/Ninputer/

http://www.cppblog.com/vczh/

 

编译器生成器:

javaCC:

官方网站:https://javacc.java.net/

关于它的一本书《Generating Parsers with JavaCC, Second Edition》http://generatingparserswithjavacc.com/

ANTLR (ANother Tool for Language Recognition) :

官方网站http://www.antlr.org/

官方简介:

ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files. It's widely used to build languages, tools, and frameworks. From a grammar, ANTLR generates a parser that can build and walk parse trees.

一个开发DSL的例子:http://www.ibm.com/developerworks/cn/java/j-lo-antlr/

Lex和Yacc:

不解释

JFlex:

官网:http://www.jflex.de/

Bison:

官网:http://www.gnu.org/software/bison/

 

 

posted on 2013-05-10 21:51  argb  阅读(404)  评论(0编辑  收藏  举报

导航