前言

一直想知道如何编写一门脚本语言,现在终于有机会实现了。非常感谢 Thorsten Ball 的大作:Writing An Interpreter In Go 帮助我实现了这个想法!

Go 是一门非常不错的语言,但是为了锻炼一下自己,使用 C++ 实现了书中的想法,项目地址:https://github.com/ivanallen/autumn

可能你比较好奇为啥这个项目叫 Autumn,因为刚好这个项目是在国庆节开始的,正好是秋天,就以当时的季节命名了。

C++ 是一门非常灵活的语言,正好趁这个小项目,我可以天马行空的实现我的各种想法,应用到工程里。

特性

  • 基于 C++ 17 语法实现。如果可能的话,我希望我能用上 C++ 20. 仅管目前用到的新特性不是很多,但我希望有些地方,能使用新特性来实现。或许你对新特性更加熟悉。
  • 完善的注释。抱歉,我撒谎了,后面我一定会补上!
  • 完善的 Debug 能力。是的,编写 Pratt Parsing 算法是个挑战,理解它如何工作也是一个挑战。你不可能通过 gdb 一行一行去调试。Autumn 项目希望能在 Debug 能力上帮助你理解 Pratt Parsing. 下面是一张截图。

C++ 编写一个解释器

  • 高阶函数的支持
    C++ 编写一个解释器

  • 闭包支持

C++ 编写一个解释器

是的,你还可以做的更多!

相关文章:

  • 2023-03-19
  • 2023-03-20
  • 2021-11-20
  • 2022-01-09
  • 2021-07-19
  • 2022-12-23
猜你喜欢
  • 2022-01-17
  • 2021-10-02
  • 2022-12-23
  • 2021-07-23
  • 2022-02-18
相关资源
相似解决方案