inmount / SEVM

使用SIR中间语言的脚本执行虚拟机

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

SEVM(Script Execution Virtual Machine)

使用SIR中间语言的脚本执行虚拟机

此仓库已搬迁至https://github.com/Sheng-Sheng-Man/Sevm.Engine

设计初衷

脚本语言从诞生开始,就一直饱受执行效率的困扰,在很多领域,比如ERP、OA、游戏等项目中,低代码或者说脚本语言又是不可获取的存在。

在翻阅一些资料以后,我决定采用LLVM的概念,将脚本语言也进行前后端分离,前端为我们自定义的高级语言脚本,后端则使用宿主语言设计一个完整的脚本执行虚拟机,而中间则采用一套专用于虚拟机工作的可二进制化中间指令语言来提高执行效率。

中间语言

SIR:Script Inter-language https://github.com/Sheng-Sheng-Man/Sevm.Sir

虚拟机组成

定义块:

  • 数据定义块
  • 变量定义块
  • 函数定义块
  • 代码定义块

执行列表:

  • 虚拟内存列表
  • 变量列表
  • 函数列表
  • 代码列表

执行顺序

  1. 初始化寄存器列表
  2. 建立虚拟内存列表
  3. 将数据定义块加载到虚拟内存
  4. 建立变量列表
  5. 将变量定义块加载到变量列表
  6. 建立函数列表
  7. 将函数定义块加载到变量列表
  8. 执行

About

使用SIR中间语言的脚本执行虚拟机

License:MIT License


Languages

Language:C# 99.9%Language:Batchfile 0.1%