用python写C虚拟机(一)
时间:2023-06-27 07:57:02 | 来源:网站运营
时间:2023-06-27 07:57:02 来源:网站运营
用python写C虚拟机(一):最近这一段时间看了很多新的编程语言的设计,但是都没有解决我眼下遇到的痛点,所以准备自己设计一个编程语言。然而,在开始的阶段,先准备撸一个C的虚拟机(有兴趣的同学可以把虚拟机再翻译成llvm ir,形成完整编译器),当然c实现的标准也不会严格按照某个文档(正式设计的时候,我会考虑给出详细标准的),这里只是做一个练手。
先说说看为什么要写成虚拟机,C在我的概念里,只是一个方便点的图灵机指令集(s1 value new_value s2/s1 value LR s2)。由于这里只考虑软件的简单实现,设计硬件相关的结构,有兴趣的同学可以留评论,因此,此处并不会设计一个功能特别强大的CPU出来,只会有一些简单的指令集,保证能图灵完备(嗯,不考虑把虚拟机设计成bf),这样对于实现C的操作已经足够了,也把这个简易实现从复杂的设计中解放出来(作为思路给我后面的设计做参考,所以不需要有太多东西)
之后是喜闻乐见的词法分析器和语法分析器,再翻译成上面那个虚拟机的指令,这样就完成了一个简单的c语言的虚拟机,当然后面会考虑翻译到llvm ir的,这就不在C语言上重复造轮子了╮(╯▽╰)╭