本仓库用来记录自己阅读《crafting interpreter》这本书时,自己跟着书一步一步将这个clox语言搭建起来。
之前一个jlox仓库是使用java语言来实现lox语言(lox语言是书中作者自创的语言,也可以说是用来教学的语言)
不过jlox的速度太慢,而且对于代码的存储使用的是AST(即抽象语法树),虽然好理解,但是性能堪忧。
同时由于java底层的jvm自带了gc,所以jlox中对于一个虚拟机(或者解释器、执行器)在真正执行时,面对的内存回收问题进行了一定的回避。
clox使用c语言作为实现语言,其采用了基于栈的运行时数据区,同时自己实现了gc。