本手册能力清单随 elangc 同步(发版自动对齐,见changelog)。当前列=该版本实测过验能力。

E 语言语法手册 v1.1 · 2026-09-07(2026-09-14勘误) · v2分层状态(编译器v1.5, 09-14 12:17): fn/let/if/while/loop/管道16用例golden回归 + assert_eq!宏/Flat Sequence字面量[T;N]/str类型+len()内建已实测通过(golden 19/19); 其余为路线图

30秒学会写E

完整程序模板
space<8> myspace {
 fn solve(a: u64, b: u64) -> u64
}

fn myspace::solve(a: u64, b: u64) -> u64 {
 // @augment: 用一句话描述算法,由LLM/人类填C实现
 let t: u64 = 0
 while (b != 0) { t = b; b = a % b; a = t }
 return a
}

fn main() -> i32 {
 myspace::solve(1071, 462) | assert_eq(21)
 return 0
}

语法元素

space<N> name { ... } 命名空间声明,N=预留槽位。声明函数签名,实现写在space外用 :: 限定
u8/u16/u32/u64 · i8/i16/i32/i64 定宽映射 uintN_t/intN_t + stdint.h(elangc 1.6.5+ golden:8字节大数端到端)
可调用性检查 非函数标识符被调用 → 编译期报错(1.6.5+,杜绝静默误解析)
ref T / &x / *r(Region 引用) 引用不可作返回值;对非引用解引用 → 编译错(1.6.6+)
哨兵类型 !err 错误哨兵 + _iserr 传播(1.6.7+)
fn name(a: u64, b: Vec<u64>) -> u64 函数。类型: u8/u16/u32/u64 · i8/i16/i32/i64(1.6.5+全定宽) · f32/f64(实验档) · bool/str · Vec<T>(仅构造+遍历+索引,push/pop不做=Non-Goal) · 不提供C风格struct(Non-Goal)——内存区域经Region/FFI表达(见design.html设计理念)
// @augment: ... 语义填充区:一句话算法意图,编译器转译C实现(结构层代码可直接写,见while)
let x: u64 = 0 声明 · if (cond) {} else {} · while (cond) {} · return expr
x | f(y) 管道:x作为f的第一参数 · x | assert_eq(期望值) 验收断言(编译为assert) ◐assert生成已实现(回归样例中; 闸0测试向量硬化前不作完全背书)
struct Name { ... } ❌设计上不提供(Non-Goal)——C风格结构体布局不入E内核,内存区域经Region/FFI边界表达(见design.html设计理念)

验收方式(给AI的测试协议)

1. 写完整.e文件(含main和assert_eq)
2. 编译: ./elangc file.e -o prog(elangc编译器纯C零Python;发射C后fork GCC -O2编译,三重门:编译/运行/断言)
3. 运行prog,rc=0且无assert失败=通过
4. 反硬编码: assert里必须是真实函数调用,服务端会变体重测(输入+1重跑)

v2新增(编译中,elangc-v2链路已通)

enum · table · Flat Sequence [T;N](区间断言,无任意下标算术) · 引用 &T/&mut T · 组合子 map/filter/reduce · 量化器 forall/exists · 安全引用(无指针算术)

试试看

把上面30秒模板存成gcd.e,改函数实现你自己的算法,跑elangc——这就是E。

E 语法 v2(2026-09 新增能力·零件已过验)

v0 骨架(上方8条)之上,蜂群已完成 v2 六大件共 64 件过验 + E-pure 实验 69 件。以下为可用语法能力(附验收状态):

能力语法样例过验
table 表格t | where(age>18) | project(name,score)❌v2未实现(审计: TYPE_ERROR)
借用检查&T 共享引用 / &mut T 可变引用,无指针算术❌v2未实现(审计: 生成C语法错误)
字符串视图StrView s = "a,b,c"; s | split(',') 零拷贝str类型✅; 字符串视图StrView ❌归E-FFI/宿主(零拷贝视图形态待定)
算子协议fn 签名注册 → opsig_call 按签名分派⏳待复测(审计EB-31点名存疑,复测后更新)
契约子句requires a>0 && b>0 / ensures return_val>=0❌v1.4实测为假(审计EB-31: TYPE_ERROR),设计目标未实现
切片/定长数组&[T] 切片 / [T;N] 定长,静态边界检查✅v1.5: Flat Sequence [T;N]声明+字面量+索引a[i]实测过(golden v2_0914_arr,区间断言); Slice &[T] ⏳待实现(视图,非索引算术)
struct 更新..base 结构体更新语法❌随struct一并列为Non-Goal(见design.html设计理念)
CLRS 十算法验收gcd/fib/kmp/lcs/dijkstra/uf/qs… 纯E实现✅10组基准全过

⚠️ 诚实口径:以上为零件级过验(编译+单测绿),语言级验收门(编译器全量编译标准库+测试套件)在集成队列。v2 正式定稿以过门为准。

⚠ @augment 状态说明(分层状态标注):@augment 语义增强层目前仅在 v1 工具链(evolver 包内,v1 有已知缺陷:管道断言可能被静默丢弃)中实现;v2 编译器(elangc_v2)尚未实现 @augment,官方 GAP_V1_V2 已列为待办。蜂群产线当前实际使用的是基于 GCC 的验收管线。我们保留该设计目标,实现状态以 changelog 为准。恢复任务:TASK-P2-04(设计完成未开工,2026-09-13 入池)。