E 用可封闭、可版本化的语法与编译期规则约束 AI 产出;每一项能力都标注当前实现状态,不做未经验证的承诺。
编译器版本 elangc …
E 的语法是可封闭、可版本化的:不在词法/文法表中的符号会在编译期被拒绝,类型与可调用性在编译期检查。下列为已验证可用的约束(详见 语法手册)。
| 约束 | 状态 | 说明 |
|---|---|---|
| 定宽整数 u8~u64 / i8~i64 | 已实现 | uintN_t 映射,8 字节大数端到端 golden(1.6.5+) |
| 词法层拒绝未知符号(& ^ ~ [ ] && || !) | 已实现 | 词法阶段即报"无法识别字符",非法输入进不来 |
| 可调用性检查(非函数被调用 → 报错) | 已实现 | 杜绝静默误解析(1.6.5+) |
| [T;N] 定长数组 | 已实现 | MCU 缓冲区载体(1.6.5+) |
M 是 E 的 MCU 受限档位,附带 c1–c5 五条编译期资源门禁。官网如实标注:这些门禁目前为规划中特性,当前编译器尚未实现,负向用例当前不会被拦截——任何"已拦截/已消灭 OOM"的结论均无依据。
| 约束 | 错误码 | 负向用例 | 状态 |
|---|---|---|---|
| c1 禁堆分配 | E_MCU_HEAP | new / 动态数组 → 编译失败 | 规划中 |
| c2 中断外调须标记 | E_MCU_ISR_CALL | 未标记被 ISR 调用 → 编译失败 | 规划中 |
| c3 循环上界可证 | E_MCU_LOOP_BOUND | 无界循环 → 编译失败 | 规划中 |
| c4 寄存器边界可证 | E_MCU_REG_BOUND | Offset+Width>Size → 编译失败 | 规划中 |
| c5 无隐式收窄 | E_MCU_NARROW | u32→u16 无显式截断 → 编译失败 | 规划中 |
E 刻意不做 C 风格结构体内存布局,数据布局走 Region 句柄 / 宿主边界;资源约束由 c1–c5 表达。下列为明确的设计边界(见 设计理念)。
Non-Goal。elangc 1.6.14 起 struct 明确报错;数据布局走 Region 句柄 / 宿主边界(design.html §六·五)。
禁止。门禁 c1 规划中;M 档目标是无堆的静态内存模型。
禁止。门禁 c3 规划中;循环上界须可证。
LLM 生成 → 服务端验证
零门槛,手机挂机即可
本地生成 + 编译 + 自检 → 提交
解锁高难任务池