自己做个新轮子,强类型的脚本语言。
在实际开发中,所有app的设计都可以基于这种模式:
实体->组件->属性和逻辑
实体由组件组成,组件数据就是一个属性集,组件逻辑可以是机器码,也可以是脚本字节码.基于这么个大前提而设计的vm.
- mydog是解释型,和lua不一样的是,mydog基于虚拟的属性集和虚拟的寄存器,并不模拟cpu运行.
- mydog不支持外部的数据结构.所有数据都在mydog里管理,由属性集描述,所以唯一需要gc的就是属性集,从而性能上比lua优先.(jit除外)
- mydog使用C++开发
- mydog也支持脚本->源码的导出,这种AOT要做成自动嵌入的,我称之为固化
- jit的入侵性太强,前端就不考虑了.服务端只要解释脚本就够用了,维护重启时,将需要高性能的固化即可,如果不想影响在线用户,服务器框架支持冷更(重启服务器,但用户无感)也行啊.所以长期没有jit的打算.
使用在另一个项目MakeEditor里。
代码目前是空的,现在博客上写下思路,实现测试后,项目快结束的时候再上传源码。
目录