封闭系统只暴露可控 API
脚本不能随意访问文件、网络、进程或裸内存。宿主通过能力组决定什么能被调用。
给封闭系统开放用户 API 的脚本层
LNS 面向设备、网关、游戏、自动化工具等封闭系统。宿主只开放允许用户操作的 API,脚本侧用简单语法组合业务逻辑。
api "gpio" {
extern void write(int pin, num value);
extern num read(int pin);
}
function pulse() {
gpio.write(2, 1);
var level = gpio.read(2);
return level;
}
脚本不能随意访问文件、网络、进程或裸内存。宿主通过能力组决定什么能被调用。
底层库用 `api { extern ... }` 描述签名;纯脚本库用 `export` 暴露能力,用户直接 import。
所有声明都以关键字开头,禁止 `int x;` 这种裸声明,避免 C 式 typedef 消歧复杂度。
`mylib.lnb` 自动匹配 `mylib.h`,生成 LNS 契约和 C glue;自定义数据统一用 handle 传递。
LNS 把“用户能做什么”放进语言表层。API 能力不是散落在运行时里的隐式全局函数,而是可审计、可授权、可替换的契约。
api "sensor" {
extern num read(string id);
}
api "telemetry" {
extern void report(string name, num value);
}
function on_tick() {
var v = sensor.read("motion");
telemetry.report("motion", v);
}