从零开始的编译原理之旅----Parser篇(二) 发表于 2018-09-04 分类于 编译原理 1 目录 本系列旨在学习各种parser思路及技巧,分为以下几个部分 1. 清晨入古寺—-论世间parser为何物 2. 初日照高林—-初探First集,Follow集 3. 曲径通幽处—-预测分析表的构建 [本篇] 4. 禅房花木深—-实现LL(1) parser 5. 阅读全文 »
从零开始的编译原理之旅----Parser篇(一) 发表于 2018-09-03 分类于 编译原理 1 目录 本系列旨在学习各种parser思路及技巧,分为以下几个部分 1. 清晨入古寺—-论世间parser为何物 2. 初日照高林—-初探First集,Follow集 [本篇] 3. 曲径通幽处—-预测分析表的构建 4. 禅房花木深—-实现LL(1) parser 5. 阅读全文 »
计算的要素第十二章总结 发表于 2018-09-01 分类于 计算机体系结构 本章是针对Hack OS各个模块的概述及其实现,其中某几个模块实现的算法很有意思,让我们马上开始吧~ 1 什么是OS(以Hack OS为例) 1. 以一种对软件友好的方式封装了不同的硬件服务 2. 用不同的函数和抽象数据类型扩展了高级语言。在这个意义上的操作系统与语言的标准程序库的分界线就不那 阅读全文 »
迭代器实现(零) 发表于 2018-08-31 1 迭代器是什么 在计算机编程中,迭代器是一个对象,它使程序员能够遍历容器,特别是列表。通常通过容器的接口提供各种类型的迭代器。虽然给定迭代器的接口和语义是固定的,但迭代器通常是根据容器实现的底层结构实现的,并且通常紧密耦合到容器以启用迭代器的操作语义。迭代器执行遍历并且还允许访问容器中的数据元素, 阅读全文 »
计算的要素第七-八章小结 发表于 2018-08-29 分类于 计算机体系结构 Programmers are creators of universes for which they alone are responsiable. Universes of virtually unlimited complexity can be created in the form of 阅读全文 »
从零开始的编译原理之旅----Parser篇(零) 发表于 2018-08-28 分类于 编译原理 0 序言 自从去年学了编译原理已经过去快一年了,之前的编译知识体系的构建太松散,所以我准备重新梳理一遍编译的知识脉络,但我的能力毕竟有限,非常希望有能力的读者能指正我文章中的一些不足之处,编程之道,编译之路也才刚刚起步,能力有限之处也请大家多包涵。 本系列文章阅读前置条件 * 熟悉常见的Gra 阅读全文 »
从零开始的正则引擎之旅(零) 发表于 2018-08-27 分类于 编译原理 1 序言 距离挖这个坑已经过去3个月了,嗯,我没记错的的话4个月前我还挖了一个brainfuck解释器的坑,就作为下周的作业吧~ 废话不多说,本系列旨在 1. 理解掌握一个简单parser的所作所为。 2. 梳理正则引擎构建和优化过程中的各种该算法 3. 造出一个能用的正则引擎(C++) 阅读全文 »
计算的要素-第六章小结 发表于 2018-08-27 分类于 计算机体系结构 What’s in a name?That which we call a rose by any other name would smell as sweet 经历了前五个小节的学习,我们终于从硬件脱身了,请让我松一口气,毕竟熟悉各种各样的硬件细节可不是我的爱好… 好了,现在硬件对于我们来说就 阅读全文 »
计算的要素第五章小结 发表于 2018-08-04 分类于 计算机体系结构 what I hear, I forget; What see, I remember; What I do, I understand. 1 回顾 经过了逻辑门,触发器,寄存器,RAM,PC,ALU,取址模式,I/O内存映像的学习,我们已经学习了实现CPU的前置条件,那么让我开始开始CPU以及 阅读全文 »
计算的要素-第四章小结 发表于 2018-08-02 分类于 计算机体系结构 Make everything as simple as possible, but bot simpler.—- 阿尔伯特 · 爱因斯坦(1879~1955) 本章关于Hack机器语言的细节都在书里写的很清楚,所以这里不再赘述 1 register Hack Computer的regist 阅读全文 »