豫言 / 中文网页汇编 @ 0.1.0

中文网页汇编整数核心的验证与标准二进制生成。

源码浏览已生成;不能解析的文件以纯文本展示,不表示通过类型检查。

说明.汉语.md

# 中文网页汇编

系统编程架构的首批基础设施,以豫言实现独立模块结构、中文文本读写、验证、标准二进制双向编解码与参考执行。当前仅支持版本「整数核心一」:三十二位整数的常量、局部读取/写入/暂存、加减乘、直接调用、弃值、空操作,以及函数类型、导入、定义、导出。所有局部和参数均为三十二位整数,签名保存参数与结果数量,允许多结果。常量用有符号三十二位范围表示其位模式。

这是明确的标准子集,不是完整 Wasm 实现;暂不支持控制块、内存、浮点或 GC。附带的整数参考执行器支持可信宿主函数绑定、调用预算和深度限制;尚非完整执行器,也不提供进程隔离。未知指令及版本拒绝,不回退为任意文本。现有普通豫言后端尚未迁移至本结构。

```sh
node 豫言操作系统/宿主/节点/宿主.cjs yy3_bs.wasm 应用/网页汇编/中文网页汇编/入口。豫 -o yy中文网页汇编.wasm
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编.wasm 验证 应用/网页汇编/中文网页汇编/求和.网页汇编。豫
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编.wasm 编码 应用/网页汇编/中文网页汇编/求和.网页汇编。豫 yy中文求和.wasm
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编.wasm 解码 yy中文求和.wasm yy中文读回。豫
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编.wasm 执行 yy中文求和.wasm 求和 20 22
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编.wasm 规范化 应用/网页汇编/中文网页汇编/求和.网页汇编。豫 yy中文求和。豫
```

模块索引从零开始,导入函数排在定义函数之前。中文文本只解析,不作为普通豫言程序求值。生成二进制前再次验证;检查类型/函数/局部索引、栈不足、函数结果数量、常量范围和导出重名。输出直接使用字节串,包括零字节,不调用外部汇编器。此工具自身目前仍由既有编译器构建。

## 格式与边界

「整数核心一」是试行子集版本,尚非完整中文 Wasm 规范。四张表依次为类型、导入、函数和导出;函数类型明确写作「整数三十二位函数类型」,两个数字为参数数和结果数。函数包含类型索引、附加局部数量及指令列。数字支持逐位中文数字,也可读十进制数字;规范输出使用中文,负数前缀为「负」。规范化不保留注释及排版。

导入导出名称原样保留;名称含零字节时用「名称字节」扩展列表示,避免字符串打印器截断。二进制名称严格检查通字符编码。自定义段以及本子集之外的标准段明确拒绝,不默默丢弃。所有合法标准模块的完整读入仍是后续工作。

读取器每个子段独立检查终点,检查无符号/有符号变长整数的位宽、末字节、长度、段顺序和函数数量。合法非最短变长编码可接受,重写时规范化为最短编码,不保证原始二进制字节一致。

当前二进制输入限制一兆字节,向量数量、签名参数/结果数和局部数量限制六万五千五百三十六;这是明确的实现资源限制,不是标准 Wasm 限制。大输入性能尚未作为验收目标;字节拼接使用分层合并以避免逐次复制长后缀。

命令行执行限制十万次预算扣减,函数进入与指令执行各扣一次,调用深度上限为一百二十八。库接口允许传入预算及按导入索引绑定的宿主函数;预算无法抢占可信宿主函数自身,外部绑定不是任意不可信代码的安全沙箱。现有整数实例装配器支持按名解析、签名检查与共享预算,见[模块装配](模块装配.汉语.md);客体用户态加载与完整 Wasm 实例仍待实现。

## 验证

```sh
node 豫言操作系统/宿主/节点/宿主.cjs yy3_bs.wasm 库/编译器核心/网页汇编核心/整数核心。测试。豫 -o yy中文网页汇编测试.wasm
node 豫言操作系统/宿主/节点/宿主.cjs yy中文网页汇编测试.wasm
```

测试覆盖文本与二进制往返、手写中文和注释、零字节名称、局部初始化及更新、常量符号边界、多结果、溢出回绕、宿主调用、执行预算、递归限制、畸形段、非法编码和一万条指令。测试生成「yy中文互调.wasm」与「yy中文求和.wasm」,可交标准引擎独立验证。解释器用于正确性差分,不能据此报告豫言运行性能提高。

标准依据:[模块二进制格式](https://webassembly.github.io/spec/core/binary/modules.html)、[变长整数编码](https://webassembly.github.io/spec/core/binary/values.html)。当前锁定整数核心所用的既有核心编码;扩展规范前须另加特性与版本测试。

新增十一条三十二位比较指令,文本及双架构后端均已接通,详[整数比较](整数比较.汉语.md)。

结构控制的表示、验证和编解码已加入;执行器接入仍待完成,详[结构控制](结构控制.汉语.md)。

“执行”与“装配执行”现在支持自有单内存的整数访存,详[内存指令](内存指令.汉语.md)。中文编码/解码入口仍限既有函数核心文本。

说明.文言.md

# 中文网页汇编

以豫言立模块之类,读写中文,验而双向编解标准二进制。今版本曰整数核心一,具三十二位整数常量、局部读写暂存、加减乘、调用、弃值、空操作;类型、导入、函数与导出各成表。参数及局部皆三十二位整数,结果可多。

索引自零起,导入先于定义。验栈、索引、常量与导出之名,未备指令及版本明拒。文本读而不执行,字节直接生,不借外汇编器。今具整数参考执行与可信宿主绑定,未具控制、内存、浮点及回收,旧后端亦未迁入;工具自身尚依旧编译器。用法详同名汉语稿。

文本数字用中文,负数冠负;名称含零则以字节列存之。读入各守段界,验变长整数、类型与通字符,自定义及未备之段明拒。输入限一兆字节,向量与局部等数量限六万五千五百三十六,此为实现之限,非标准之限。规范化不保原注与逐字节编码。

参考执行计函数及指令之费,调用深度有界;不能凭预算抢占宿主自身。未具进程隔离,不以此冒安全沙箱。往返、恶例、回绕、多返、宿主调用、长列及含零名称皆有测试,性能之成另验。

整数实例装配已立,按名系函数,先验其型,共预算与深度。详[模块装配](模块装配.文言.md)。客体用户态加载与完整实例尚未备。

增三十二位比较十一令,详[整数比较](整数比较.文言.md)。

结构控制之表示、验证与编解码已立,执行尚待接入,详[结构控制](结构控制.文言.md)。

执行与装配执行已通整数访存,详[内存指令](内存指令.文言.md);中文存储文本尚待成。