骨汤鸡蛋面
2024-06-15
来自上海
是不是可以认为 1. 从c++视角出发实现一个“编程语言(解释器)”的业务,该如何抽象?一般面向对象,所有对象都有一个公共父类(比如叫object),因为在上层使用看来,即便一个python对象没有数据和方法,但是c++解释执行的时候,对应的c++对象要有一些解释执行时会用到的数据、方法。 2. 如果编程语言只支持int/str/list/dict等基本类型,则使用Kclass/HiObject抽象就够用了,代码里声明一个int,解释器就对应创建一个HiInteger 就行了。只支持基本类型肯定不够,得允许用户扩展,但也不可能让用户直接定义Kclass/HiObject,于是放开给用户定义TypeKlass,再支持根据TypeKlass 生成HiTypeObject(将类型作为函数调用来创建对象),HiTypeObject再作为 Klass 的成员。