Skip to content

Script execution virtual machine for .Net Standard 2.1

License

Notifications You must be signed in to change notification settings

Sheng-Sheng-Man/Sevm.Engine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SEVM(Script Execution Virtual Machine)

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

设计初衷

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

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

中间语言

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

虚拟机组成

定义块:

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

执行列表:

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

执行顺序

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

About

Script execution virtual machine for .Net Standard 2.1

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages