从头学习compiler系列1——前言
我们在学校里学习编程,最开始接触到的是c语言。接触c语言的语法,在编译器里写代码,然后编译。或者是其它语言,c++、java、as等等,只是用的编译器不同,其实原理都是 一样。都是将源代码翻译成汇编类或底层代码,再由汇编器翻译成机器能识别的代码。编译器原理三大圣书,被人尊称为龙书、虎书、鲸书。三本都有中文翻译,大家可以选择其一进行参阅。此系列尽量包含编译器的各个部分的编写。
/*龙书、虎书、鲸书,可以去网上搜索,原名都不叫那个。因为书的封面印着龙、虎、鲸,故此得名。*/
开源课的流行,也源于课程设计详尽,内容丰富。在12年开了一门compiler课程,我们就从这门开始学习。课程地址:https://class.coursera.org/compilers/class/index
/*说到开源课,大家去可以去https://www.coursera.org/courses这里看看,有不少好的课程。今天突然发现有中文的课程,甚是欢喜。*/
我先来简单介绍一下这门课。课程是对COOL语言的编译学习。COOL语言是一个教学语言,包含了现代面向对象语言的大部分功能,是一个高级语言。课程主要包含四大部分:词法、语法、句法、优化。如果对这几个部分还有点陌生,没关系,接下来的文章,我会陆续逐个详解。
这门课今年(2013年)2月又重新开课,有兴趣的朋友可以跟着课程学习。课程包含视频和各种作业,英文稍微好点可以到那里学习即可。
因为接受了开源课的条约,所以系列文章里不包含完整的作业代码和解决方案。大家要靠自己的努力去完成。