摘要:是的,这个系列将呈现一个完整的编译器从无到有的过程。但在写这个编译器的过程中,我可不会偷工减料,该有的一定会写上的。该语言的虚拟机将运行于之上,同时编译器将使用实现。我早有写编译器的想法之前没写过,故希望一边写编译器一边完成这个系列。
是的,这个系列将呈现一个完整的编译器从无到有的过程。当然,为了保证该系列内容的简洁(也为了降低难度),仅仅保证编译器的最低要求,即仅能用。但在写这个编译器的过程中,我可不会偷工减料,该有的一定会写上的。
编译器将用于编译一门我所创的语言,暂时命名为 tao 语言。该语言是动态语言,面向对象,原型继承。支持用 lambda 表达式写函数闭包,此外,也不会出现(讨厌的)花括号。好吧,我目前脑海中这门语言的印象就是如此了。
该语言的虚拟机将运行于 JVM 之上,同时编译器将使用 Java 实现。
最后说明一下本人的情况吧。我早有写编译器的想法(之前没写过),故希望一边写编译器一边完成这个系列。一来作为学习笔记,二来公之于众以督促自己不中途偷懒。写此系列还是抱着学习的态度,虽然之后内容写得会像教程一样,但读者若有指教,请勿吝惜。不求无错,但求有所长进。
文章一览表从零开始写个编译器吧 - 从何处下手
从零开始写个编译器吧 - 编译器的结构
从零开始写个编译器吧 - 单词化简述(Tokenization)
从零开始写个编译器吧 - tao语言的词法分析器(Tokenizer)的类型定义
从零开始写个编译器吧 - Token.java 文件的编写
从零开始写个编译器吧 - 词法分析器是一个状态机
从零开始写个编译器吧 - 开始写词法分析器(1)
从零开始写个编译器吧 - 开始写词法分析器(2)
从零开始写个编译器吧 - 符号分析,编写 SignParser.java 文件
从零开始写个编译器吧 - 开始写词法分析器(3)
从零开始写个编译器吧 - Parser 语法分析器
从零开始写个编译器吧 - 文法简介
从零开始写个编译器吧 - LL(1)
从零开始写个编译器吧系列 - moskize 的博客
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64218.html
摘要:各位抱歉了,这个系列在多个平台的专栏上连载。所以,我把从零开始写个编译器吧弄到了上。以后更新也是先从上开始。从零开始写歌编译器吧更及时的信息可以从我的公众号上获得虽然不怎么写公众号,但是还是挂一下吧 各位抱歉了,这个系列在多个平台的专栏上连载。每发一个新章节,都要同步到各个专栏上,于是可能漏掉 Segmentfault 的博客。汗,其实 Segmentfault 这边已经落后很久了。 ...
摘要:在之前的章节第章从零开始写个编译器吧开始写词法分析器中我有说,我将函数设计成主动调用的形式,而则是被动调用的形式。接下来本系列将进入编写语法分析器的阶段,不过在此之前,我将抽出一点时间介绍一下语言本身。 上周周末旅游去了,就没更新了,虽然回到海拔0m的地区,不过目前似乎还在缺氧,所以本次就少更点吧。 这章将结束词法分析的部分。 在之前的章节(第7章从零开始写个编译器吧 - 开始写词...
摘要:作为本系列的第一章,将考虑从何开始下手。运行环境解释执行编译器产生的目标代码。从零开始写个编译器吧从何处下手的博客 作为本系列的第一章,将考虑从何开始下手。既然写的是编译器,那在此得明确编译器长什么样子,进一步,编译器由哪几部分构成,其工作原理大概是怎样的。了解了这些,才好下手。 简单来说,编译器本身是一个程序,这个程序能将一种代码(源代码)翻译成另一种代码(目标代码)。简而言之就是如...
摘要:这样的程序或称工具有很多现成的可供选择包括在平台上可用的,但既然我这个系列叫做从零开始写个编译器吧,那显然如果我用现成的工具,那是犯规行为。 Parser(语法分析器)的编写相对于 Tokenizer (词法分析器)要复杂得多,因此,在编写之前可能也会铺垫得更多一些。当然,本系列旨在写出一个编译器,所以理论方面只会简单介绍 tao 语言所涉及的部分。 之前的几章中,我纯手写了tao 语...
摘要:自然,我们还是先从语言的编译器下手吧。在动手写编译器之前,得容我将编译器的结构进行进一步的划分。这些将被语法分析器接收并进行进一步处理。由于本系列将着重于写出编译器,必要的理论和概念还是会交代的。从零开始写个编译器吧编译器的结构的博客 自然,我们还是先从 tao 语言的编译器下手吧。在动手写编译器之前,得容我将编译器的结构进行进一步的划分。编译器可视为一个黑盒,从其一端输入源代码,另一...
阅读 3290·2021-11-08 13:12
阅读 2737·2021-10-15 09:41
阅读 1432·2021-10-08 10:05
阅读 3274·2021-10-08 10:04
阅读 2080·2021-09-29 09:34
阅读 2449·2019-08-30 15:55
阅读 2956·2019-08-30 15:45
阅读 2457·2019-08-29 14:17