12

是的,这个系列将呈现一个完整的编译器从无到有的过程。当然,为了保证该系列内容的简洁(也为了降低难度),仅仅保证编译器的最低要求,即仅能用。但在写这个编译器的过程中,我可不会偷工减料,该有的一定会写上的。

编译器将用于编译一门我所创的语言,暂时命名为 tao 语言。该语言是动态语言,面向对象,原型继承。支持用 lambda 表达式写函数闭包,此外,也不会出现(讨厌的)花括号。好吧,我目前脑海中这门语言的印象就是如此了。

该语言的虚拟机将运行于 JVM 之上,同时编译器将使用 Java 实现。

最后说明一下本人的情况吧。我早有写编译器的想法(之前没写过),故希望一边写编译器一边完成这个系列。一来作为学习笔记,二来公之于众以督促自己不中途偷懒。写此系列还是抱着学习的态度,虽然之后内容写得会像教程一样,但读者若有指教,请勿吝惜。不求无错,但求有所长进。


文章一览表

  1. 从零开始写个编译器吧 - 从何处下手

  2. 从零开始写个编译器吧 - 编译器的结构

  3. 从零开始写个编译器吧 - 单词化简述(Tokenization)

  4. 从零开始写个编译器吧 - tao语言的词法分析器(Tokenizer)的类型定义

  5. 从零开始写个编译器吧 - Token.java 文件的编写

  6. 从零开始写个编译器吧 - 词法分析器是一个状态机

  7. 从零开始写个编译器吧 - 开始写词法分析器(1)

  8. 从零开始写个编译器吧 - 开始写词法分析器(2)

  9. 从零开始写个编译器吧 - 符号分析,编写 SignParser.java 文件

  10. 从零开始写个编译器吧 - 开始写词法分析器(3)

  11. 从零开始写个编译器吧 - Parser 语法分析器

  12. 从零开始写个编译器吧 - 文法简介

  13. 从零开始写个编译器吧 - LL(1)

从零开始写个编译器吧系列 - moskize 的博客


MOsky泽
712 声望131 粉丝

游戏程序员一名。