00 开始之前

此开卷第一回也。操作系统、编程语言、图形学,人称程序员之三大浪漫,如今这一小小博客竟已占其二。

如操作系统教程一样,这里的编程语言并不是多么高大上的编程语言,它没有什么高级技术,比如优化、GC 通通都没有,它使用的技术,也是极其老旧的,是不知道多久以前就被淘汰,更换成字节码 + 虚拟机的一套体系。甚至,这个语言连 UTF-8 都不支持。后续更加广阔的天地,留给各位读者去探索 不是你不会就别在这吹牛逼还教人行不行呢

换个角度想,如果各位读者看完能觉得:原来一个最小的编程语言也可以这么简单吗?然后开始自信满满地探索自制编程语言这一领域的话,或许这个教程也就有意义了哦)

这次的开发环境相对简单很多,有一个 C++ 编译器就行了(要求支持 C++17 以上)。那么,接下来,准备开工吧。

我们的编程语言暂定名为 Siberia。这个名字倒不是我起的,早年间,Siberia 还是一个合作项目,后来转给我,后来就废弃了。这个名字,就是另一个作者起的,这个编程语言的名字和语法都是他定下来的。

以下,第一节为基础设施建设部分,由于一般的环境下都有 STL,因此理论上可以略过不看。但是,由于后续内容全部基于第一节的基础设施,因此各位读者如果根本不看不用的话,成本会比较大,建议还是跟着走一走。第二节以后为正文内容。如果各位读者想要了解我们最后要实现一个什么语言,可以直接先看一看第五节。

完整代码可参见仓库:siberia