⚙️ GS2 虚拟机

引擎 · GS2(GeneralScript 2.0)反射式嵌入式脚本语言的虚拟机与汇编器。

📌 技术定位

GS2 是一种「对反射特化、类汇编 + 兼容 JS」的嵌入式脚本语言,设计意图是用短脚本通过反射访问宿主的绝大多数对象。 它适合嵌入到其它程序中运行:自身不定义数据结构,而是通过反射访问宿主对象,并把宿主语言中复杂的反射机制 (重载、泛型等)简短化。配套地,虚拟机负责执行、汇编器负责编译。

双语法 强反射 寄存器式 / 无 AST 可裁剪部署

✨ 核心特性

🐚 双语法并存

类 Shell 管道化语法(getc "System.Math"|.Max 3 4)适合控制台逐行调试与人类编写; JS 表达式((a = b*c; return a))适合数学与 AI 生成,两者可完整混写。

🔎 强反射、无协议通信

不预注册即可访问宿主的 private 成员、泛型、重载与跨程序集内容;程序之间可以不约定协议, 直接向对方发送脚本执行请求。

⚡ 寄存器式架构

类汇编指令与机器码近似一对一、无 AST、现场编译快;参数预分配并复用覆盖,以内存换速度。 默认函数调用类似 goto 不压栈,并提供压栈指令兜底支持递归。

📦 可裁剪部署

编译器与虚拟机分离:客户端仅需部署虚拟机以接收远程已编译脚本。除词法外不依赖框架其余部分,可移植到其它语言。

🛡️ 对象级信任安全模型

反射分 0/1/2/3 级;低等级虚拟机不再一刀切报错,而是按目标对象的信任等级放行 (运行快照 > 值类型通配 > 信任类字典 > 信任接口有序表)。

🍬 丰富语法糖

中括号内联指令注入、后缀表达式注入、行首变量/点号/链式调用语法糖、语句结尾 !(输出结果或等待 Task)与 ..(不改变寄存器)。

🔧 关键技术点

🧪 示例

// 类 Shell 语法(适合控制台逐行调试)
getc "System.Math"|.Max 3 4

// JS 语法(适合数学与 AI 生成)
(a = 3 * 4; return a)
本页用于分享开发思路与展示作品,目前未承诺开源或提供下载地址。作者应用技术不含GPL等强制开源协议。