背景
两个月前自学了编译原理, 在草草学习了前端之后实现了一门不能算语言的语言, 一直想对它进行维护, 但是无奈源代码是用java写的, 就我目前的状态而言对java完全提不起兴趣, 这段时间学习C++, 在实现完正则表达式之后几乎找不到high点, 于是决定用C++重新实现一门语言. 为了增加难度我准备实现一门面向对象的语言, 但是同时也为了降低难度我决定暂时不写该语言的CFG(事实上我已经不太记得怎么写上下文无关文法了), 等到具体实现过程中, 怎么简单怎么写… 因为我实际水平有限, 编译原理学习也很有限, 可能很多地方的实现的方式会按照自己的想法而不是标准来, 如果大家感兴趣欢迎和我交流…
实现计划
为了达到锻炼C++的效果, 同时为了延长开发周期, 不让自己又陷入全世界寻找练手项目的困境, 开发过程中我会遵照一下原则 :
- 所有用到的数据结构, 算法均采取徒手撸的方式, 换句话说, 在这里你可能看不到标准库中的容器和算法.
- 因为我目前对于前段的了解非常有限, 同时我也不打算花时间去研究
flex
,bison
之流, 所以可能词法分析和语法分析会采用手工编码的方式, 所以也是手撸. - 所以你可以看到我这个项目对于标准库的依赖相对来说比较低, 也是希望提高自身的编码水平吧, 所以可能出现中途造轮子的章节, 望谅解.
- 最后一点也是最重要的一点, 我真的只是一个C++初学者, 我接触C++才一个月不到, 同时我接触编程才刚刚一年, 所以无论是在语言方面或者是在算法实现方面如果有任何问题都可以随便指出, 我非常希望得到他人宝贵的意见.
实际的代码应该从下一节开始, 今天粗略地看了一下之前博客, 由于自己之前一直不重视排版, 才发现以前的文章排版像屎一样, 自己都看不下去了, 今后会努力改善...