使用SIR中间语言的脚本执行虚拟机
脚本语言从诞生开始,就一直饱受执行效率的困扰,在很多领域,比如ERP、OA、游戏等项目中,低代码或者说脚本语言又是不可获取的存在。
在翻阅一些资料以后,我决定采用LLVM的概念,将脚本语言也进行前后端分离,前端为我们自定义的高级语言脚本,后端则使用宿主语言设计一个完整的脚本执行虚拟机,而中间则采用一套专用于虚拟机工作的可二进制化中间指令语言来提高执行效率。
SIR:Script Inter-language https://github.com/Sheng-Sheng-Man/SIR
定义块:
- 数据定义块
- 变量定义块
- 函数定义块
- 代码定义块
执行列表:
- 虚拟内存列表
- 变量列表
- 函数列表
- 代码列表
- 初始化寄存器列表
- 建立虚拟内存列表
- 将数据定义块加载到虚拟内存
- 建立变量列表
- 将变量定义块加载到变量列表
- 建立函数列表
- 将函数定义块加载到变量列表
- 执行