⚙️ 编译器

TLL 编译器采用经典的多阶段流水线设计。当前处于 Bootstrap 阶段,由 TypeScript 实现,最终目标是 Self-hosting(自举)——TLL 编译器由 TLL 自己编写。

1. 编译流水线

Source (.tll)
    │
    ▼
Lexer ──► Token Stream
    │
    ▼
Parser ──► AST
    │
    ▼
Name Resolution ──► Scoped AST
    │
    ▼
Type Checker ──► Typed AST
    │
    ▼
IR Generation ──► TLL IR (三地址码)
    │
    ▼
Optimization ──► Optimized IR
    │
    ▼
Code Generation ──► TLL Bytecode
    │
    ▼
TLL Runtime (VM / JIT)

2. 各阶段说明

Lexer(词法分析器)

Parser(语法分析器)

Type Checker(类型检查器)

Code Generation(代码生成)

3. TLL 字节码规范

TLL Runtime 执行基于寄存器的字节码。核心指令:

指令说明
LOAD r, const加载常量到寄存器
LOAD_VAR r, idx加载局部变量
STORE_VAR idx, r存储局部变量
ADD/SUB/MUL/DIV r1, r2, r3算术运算
EQ/NEQ/LT/GT/LE/GE r1, r2, r3比较运算
AND/OR/NOT r1, r2, r3逻辑运算
CALL r, func, argc函数调用
RET r函数返回
JMP label无条件跳转
JMP_IF_FALSE r, label条件跳转
PRINT/PRINTLN r输出
MAKE_ARRAY/MAP/STRUCT r, count创建复合类型
INDEX_GET/SET r1, r2, r3索引访问
MEMBER_GET/SET r1, r2, name成员访问
HALT停机

4. Runtime(运行时)

5. 自举路线图

阶段 0: Bootstrap Compiler (TypeScript)  ← 当前
    │
    ▼
阶段 1: TLL 可以编译真实项目
    │  完善标准库、类型系统、错误处理
    ▼
阶段 2: 用 TLL 重写 Compiler
    │  TLL Compiler v2.0 由 TLL 编写
    ▼
阶段 3: Self-hosting(自举)
    │  TLL Compiler 可以编译自己
    ▼
阶段 4: TLL OS 1.0
       完整的 AI-Native 操作系统层

6. 贡献指南

欢迎贡献 TLL 编译器!

# 1. Fork 仓库
# 2. 克隆
git clone https://github.com/aliquanhou/tll.git
cd tll/tll-compiler

# 3. 安装依赖
npm install

# 4. 编译
npx tsc

# 5. 运行测试
node --test dist/tests/

# 6. 创建分支
git checkout -b feature/my-feature

# 7. 提交 PR
git push origin feature/my-feature

7. 调试工具

# 查看 Token 流
tll lex program.tll

# 查看 AST(JSON)
tll parse program.tll

# 仅类型检查
tll check program.tll

# 编译为字节码
tll build program.tll
# 生成 program.tllbc

# 运行
tll run program.tll