-
在上一周的内容中,我们大概介绍了整个流程,以及少数的实现。本周的内容则是聚焦于实现,建议和上周的内容一起来看
在之前的代码中内容都是偏向于无对象的结构,因此要先改正为适合面向对象的结构。
本周修改的主要方向:所有的函数操作都是基于一个类的(因此函数信...
-
本周要做的第一件事情当然是把之前写的脏代码全部干掉!神清气爽
那么就让我们进入本周的正题。最近几周的代码可能会较少而且内容非常碎片,时间短缺且这块内容跨度非常大,需要参考其他已有实现,再加上第一次做并不熟悉正处于开荒期,更多的是学习于思考相关的知识。...
-
本周主要是修复了之前C++代码生成的一些bug,之后开始搞函数定义与调用的部分。
函数解析方式这里我一开始没想好怎么做的,所以会做的很诡异,最大的原因是静态类型语言和动态类型语言是不同的。由于我只对动态语言有一些了解,这里暂时只提动态语言的一些点
动...
-
由于元旦第二天开始状态奇差,本周并没有增加太多内容,周记的内容也会相对少一些。以及本周的内容主要在于生成C++的代码,更多的是Ruby的元编程技巧。
指令定义每个指令有一个InstType的枚举字段来标明类型
所有指令继承自一个VMInst类
123...
-
本周主要先对tac的函数进行了简单的测试,以确保能够正确运行我的vm demo,修正了function的一些问题,之后就是处理对vm指令的生成,处理了一下符号相关的信息,还做了一点函数的相关的以及生成C++的解析代码(都没做完,还是下周吧
本周vm的...
-
下周末就是明年了,今年的事情不能拖到明年做,于是趁早把总结赶了出来。2021年对我来说算是各方面变化比较大的一年,还是有不少值得回顾的内容
专业、工作与学习最大的变化莫过于大学毕业成为社畜了,找工作的过程算是十分坎坷,不过好在最终找到了一份合适的工作...
-
本周前面的时间主要选择了重新整理项目结构以及修正了自己滥用require_relative的问题,后面的话则是开始对ast to tac进行测试,尝试通过TDD的方式在开发效率和质量确保找到一个平衡点。
比起测试,更主要的目的是重新回顾自己tac的设...
-
目前的工作重心在于将ast转换为tac指令。
由于ast的if转成的中间表示的条件跳转是带有两个分支的,因此需要对if后面所跳转到的位置进行重排。
基本块与重排相关的代码目前在ir/cfg.rb中,ast到tac的代码目前在ir/tac/tac.rb...
-
之前毕业设计想尝试设计一门语言并且实现编译器,奈何时间加个人状态不佳只做到了十分简陋的ast解释器,最近又想着转成编译器并且打算认认真真做下去。既然要做那索性把这个过程中重要的部分记录下来,记录的过程能够反思做的内容,回顾有没有隐藏bug,并且能够督...
-
唯有这一点,在我接下来的人生中一定会坚信不疑
我一定能够做到无限接近理想的自己想了很久不知道该用什么词放在最后,聚聚,大佬,诸如此类的词想了很多,但好像并不符合我的心愿。虽然这种说法十分空洞,显得没有目标,但确确实实是我现在的想法,并不想成为别人眼中...