学习制作一门有趣的编程语言 - 序

你的问题在于读书太少,想的太多 —— 杨绛

昨天惊闻杨绛先生去世,突然想到了几年前看到的杨绛先生的这句话。我觉得在计算机领域理论知识更是尤为重要,现在某乎上盛行的计算机理论知识(尤指算法)无用论当真特别可悲。在这里我觉得讨论科班非科班的人都是别有用心的,重要的问题在于这些基础的训练,而不是科班非科班,我们知道很多大神都不是计算机相关专业的,但是他们的基础的深厚程度,确是很多科班出身的人无法能及的,所以说一切的问题还是要积累知识。

这学期一直在学编译原理的课程,我实实在在的感觉到了这个课程和相关内容的有趣。尤其是我在学习之前试着自己不借助任何的理论去写一个解释器,竟然也命中了不少的知识,这让我感到很欣喜。所以呢就斗胆开了这个题目来试图逐步的实现一个自己的 实验性 语言,说了是 实验性语言 就是说并不能完成目前语言的工程性工作,但是在自己这个语言方面能够形成闭环。这门语言或许残缺,或许会遇到很多问题,而且很长时间都会依赖C语言,但是这是一个完整的、成型的、和朋友商议好的计划,一定会逐步的实现的。

目前的计划:

  1. 使用Lex和Yacc去实现逐步实现语言的雏形
    Lex和Yacc是久经市场考验的工具,虽然有点陈旧但是资料丰富,简洁易懂,在编译器前端的实现上有很大优势。与此同时在编译器的后端比较复杂,我会先把代码转换成C,然后使用C的成型的编译链进行。
  2. 更换前端,采取手动构建的方式
    有一些我想实现的功能如果使用Lex和Yacc可能不是那么方便,而且在知识性还有效率上,手动实现都是一个很有趣的工程。
  3. 希望能够实现一个编译器后端,可能是转机器码,可能写栈式虚拟机
    这个目前还没有想好,也只是希望去做的。

愿杨绛先生一路走好。

我来评几句
登录后评论

已发表评论数()

相关站点

+订阅
热门文章