随笔 - 45  文章 - 0  评论 - 617  阅读 - 41万

随笔分类 -  跟vczh看实例学编译原理

跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
摘要:文章中引用的代码均来自https://github.com/vczh/tinymoe。看了前面的三篇文章,大家应该基本对Tinymoe的代码有一个初步的感觉了。在正确分析"print sum from 1 to 100"之前,我们首先得分析"phrase sum from (lower bound) to (upper bound)"这样的声明。Tinymoe的函数声明又很多关于block和se... 阅读全文
posted @ 2014-03-23 16:55 陈梓瀚(vczh) 阅读(7521) 评论(11) 推荐(11) 编辑
跟vczh看实例学编译原理——二:实现Tinymoe的词法分析
摘要:文章中引用的代码均来自https://github.com/vczh/tinymoe。实现Tinymoe的第一步自然是一个词法分析器。词法分析其所作的事情很简单,就是把一份代码分割成若干个token,记录下他们所在文件的位置,以及丢掉不必要的信息。但是Tinymoe是一个按行分割的语言,自然token列表也就是二维的,第一维是行,第二维是每一行的token。在继续讲词法分析器之前,先看看Tiny... 阅读全文
posted @ 2014-03-02 23:45 陈梓瀚(vczh) 阅读(7242) 评论(5) 推荐(4) 编辑
跟vczh看实例学编译原理——一:Tinymoe的设计哲学
摘要:自从《序》胡扯了快一个月之后,终于迎来了正片。之所以系列文章叫《看实例学编译原理》,是因为整个系列会通过带大家一步一步实现Tinymoe的过程,来介绍编译原理的一些知识点。但是第一个系列还没到开始处理Tinymoe源代码的时候,首先的跟大家讲一讲我设计Tinymoe的故事。为什么这种东西要等到现在才讲呢,因为之前没有文档,将了也是白讲啊。Tinymoe在github的wiki分为两部分,一部分是介绍语法的,另一部分是介绍一个最小的标准库是如何实现出来的,地址在 https://github.com/vczh/tinymoe/wiki 不带问号的那些都是写完了的。系列文章的目标在介绍Tinymo 阅读全文
posted @ 2014-02-11 12:54 陈梓瀚(vczh) 阅读(6456) 评论(3) 推荐(7) 编辑
跟vczh看实例学编译原理——零:序言
摘要:在《如何设计一门语言》里面,我讲了一些语言方面的东西,还有痛快的喷了一些XX粉什么的。不过单纯讲这个也是很无聊的,所以我开了这个《跟vczh看实例学编译原理》系列,意在科普一些编译原理的知识,尽量让大家可以在创造语言之后,自己写一个原型。在这里我拿我创造的一门很有趣的语言 https://github.com/vczh/tinymoe/ 作为实例。商业编译器对功能和质量的要求都是很高的,里面大量的东西其实都跟编译原理没关系。一个典型的编译原理的原型有什么特征呢?性能低 错误信息难看 没有检查所有情况就生成代码 优化做得烂 几乎没有编译选项 等等。Tinymoe就满足了上面的5种情况,因为我的目 阅读全文
posted @ 2014-01-19 01:22 陈梓瀚(vczh) 阅读(13620) 评论(22) 推荐(24) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示