08元序实现路线图

元序 WorldScript 实现路线图

从概念到可运行解释器的技术路线与里程碑规划。


一、总体策略

元序的实现遵循「先内核后生态、先单后多、先精确后性能」的原则:

  1. 先内核后生态:先实现五大引擎的最小可用内核,再扩展标准库、域模型、工具链
  2. 先单后多:先单机单进程,再分布式多机
  3. 先精确后性能:先保证语义正确与可回放,再做向量化/分布式/性能优化

二、技术选型

2.1 实现语言

阶段 语言 理由
MVP(v0.1-v0.3) Python 开发速度快,丰富的科学计算库(numpy/scipy),适合快速验证语义
性能版(v0.4+) RustGo 高性能、并发安全,适合生产级运行时
嵌入式(v1.0+) C 资源受限环境

MVP 阶段用 Python 实现,语义验证稳定后用 Rust/Go 重写性能关键路径。

2.2 核心依赖(MVP 阶段)

依赖 用途
numpy 状态场向量化存储与计算
scipy 趋势拟合、曲线插值
networkx 域拓扑图、因果链溯源
simpy 离散事件模拟(可选,用于 Tick 调度参考)
pydantic 配置与数据结构校验
rich CLI 可视化与调试输出

三、里程碑规划

M0:语言规范冻结(已完成)

交付物:《元序规则》《运行时架构》《演示案例》


M1:MVP 解释器内核(预计 4 周)

目标:能加载元序程序并执行基本的 Tick 循环,支持 State + When + 基础状态修改。

任务清单

编号 任务 预估工时 优先级
1.1 词法分析器(Lexer) 2天 P0
1.2 语法分析器(Parser),生成 AST 3天 P0
1.3 状态场存储(列式 + 历史环形缓冲) 2天 P0
1.4 Tick 调度器框架(8阶段骨架) 2天 P0
1.5 因果匹配引擎(条件满足度 + 因果强度) 3天 P0
1.6 涌现执行(状态修改 + 平滑过渡) 2天 P0
1.7 基础偏差记录与查询 1天 P1
1.8 CLI 运行器(加载 .ws 文件,输出快照) 2天 P0
1.9 用演示案例1(交通系统)验证 2天 P0

验收标准

  • 能运行《演示案例》中的案例一(城市交通)的简化版
  • 每个 Tick 输出状态场快照
  • 因果规则能正确触发,状态修改平滑过渡
  • 无崩溃、无除零、无空引用

不包含:Track、Link、Evolve、延迟因果、反馈回路


M2:完整五大句式(预计 6 周)

目标:支持全部五种核心句式,能运行所有演示案例。

任务清单

编号 任务 预估工时 优先级
2.1 Track 趋势跟踪引擎(滑动窗口 + 拟合 + 预测) 4天 P0
2.2 Link 层级耦合引擎(聚合 + 约束 + 域拓扑) 4天 P0
2.3 延迟因果队列(延迟→ + 区间延迟) 2天 P0
2.4 反馈回路检测与执行 2天 P0
2.5 偏差收敛引擎(4级策略 + 溯源) 4天 P0
2.6 Evolve 演化引擎(参数修正 + 影子验证 + 回滚) 5天 P0
2.7 经验库(沉淀 + 查询 + 导入导出) 3天 P1
2.8 连续融合函数 2天 P0
2.9 全部5个演示案例验证通过 3天 P0

验收标准

  • 5个演示案例全部能运行并产生合理输出
  • 偏差不导致崩溃,能自动收敛
  • 演化能在运行中修改参数,无需重启
  • 趋势预测能提前触发预判规则

M3:工具链与可观测性(预计 4 周)

目标:完善开发体验,提供调试、可视化、回放能力。

任务清单

编号 任务 预估工时 优先级
3.1 运行时探针 API(状态/规则/偏差/演化查询) 3天 P0
3.2 快照保存与加载(序列化/反序列化) 2天 P0
3.3 回放调试器(步进 + 单步执行 + 断点) 4天 P1
3.4 分支推演(从快照分叉并行推演) 3天 P1
3.5 因果链可视化(输出 Mermaid/Graphviz) 2天 P1
3.6 状态场时间序列可视化(matplotlib 输出) 2天 P1
3.7 语法高亮(VS Code 扩展基础版) 3天 P2
3.8 配置文件支持(JSON/YAML) 1天 P0

验收标准

  • 可保存/加载快照,回放结果与原运行一致
  • 可步进调试,查看每个 Tick 的规则评估详情
  • 可生成因果链图与状态趋势图

M4:性能优化与分布式(预计 8 周)

目标:支持大规模状态场(百万级微域节点),具备生产级性能。

任务清单

编号 任务 预估工时 优先级
4.1 状态场向量化计算(numpy 全量改造) 5天 P0
4.2 因果匹配并行化(多进程/多线程) 5天 P0
4.3 规则倒排索引(按状态维度快速定位规则) 3天 P0
4.4 增量计算(只更新变化的状态,不重算全域) 4天 P1
4.5 Rust 重写性能关键路径(状态场 + 匹配引擎) 10天 P1
4.6 分布式运行时(状态分片 + 引擎节点) 10天 P2
4.7 性能基准测试套件 3天 P0

性能目标

  • 10万微域节点 + 1000规则:< 100ms/Tick(单机8核)
  • 100万微域节点 + 1万规则:< 1秒/Tick(分布式4节点)
  • 内存占用:每维度约 8 字节(当前值)+ 历史窗口 × 8 字节

M5:生态与标准化(预计持续)

目标:建立元序生态,包括域模型库、教程、社区、标准化。

任务 说明
标准域模型库 城市交通/生态/经济/气候/舆情等预置模型
教程与文档站 入门教程、最佳实践、案例集
在线 Playground 浏览器中运行元序程序
互操作桥接 与 Python/Go 程序互调用,与 MQTT/Kafka 数据流对接
语言标准化 提交正式语言规范(类似 RFC 流程)
社区治理 开源协议、贡献指南、行为准则

四、核心模块内部设计概要

4.1 模块划分

worldscript/
├── lexer.py          # 词法分析
├── parser.py         # 语法分析 → AST
├── ast.py            # AST 节点定义
├── runtime/
│   ├── scheduler.py    # Tick 调度器
│   ├── state_field.py  # 状态场引擎
│   ├── causality.py    # 因果匹配引擎
│   ├── scale.py        # 层级耦合引擎
│   ├── deviation.py    # 偏差收敛引擎
│   ├── evolution.py    # 演化引擎
│   └── shared.py       # 共享状态层
├── stdlib/
│   ├── functions.py    # 内置函数
│   ├── domains/        # 标准域模型
│   └── config.py       # 配置参数
├── cli.py            # 命令行入口
├── debugger/         # 调试与回放工具
└── examples/         # 演示案例

4.2 关键数据结构(Python 伪代码)

@dataclass
class StateField:
    name: str
    domain: Domain
    dimensions: Dict[str, Dimension]

@dataclass
class Dimension:
    current: float
    history: np.ndarray        # 环形缓冲
    target: Optional[float]
    transition_rate: float

@dataclass
class Rule:
    id: str
    conditions: List[Condition]
    weights: List[float]
    threshold: float
    actions: List[Action]

@dataclass
class TickContext:
    tick: int
    snapshot: StateSnapshot     # 本 Tick 开始时的状态快照
    staging: StagingArea        # 暂存区,所有引擎写入这里
    triggered_rules: List[Rule] # 本 Tick 触发的规则
    deviations: List[Deviation] # 本 Tick 产生/更新的偏差

4.3 Tick 执行主循环(伪代码)

def run(program, config, max_ticks=None):
    state = init_state(program, config)
    while max_ticks is None or state.tick < max_ticks:
        ctx = TickContext(tick=state.tick, snapshot=state.snapshot(), staging=StagingArea())

        # PHASE 1: 状态更新
        state_field_engine.update(ctx, program)
        process_delay_queue(ctx)

        # PHASE 2: 因果匹配
        causality_engine.match(ctx, program.rules)

        # PHASE 3: 涌现执行
        causality_engine.execute(ctx)

        # PHASE 4: 层级耦合
        scale_engine.aggregate(ctx)
        scale_engine.constrain(ctx)

        # PHASE 5: 趋势分析
        track_engine.analyze(ctx, program.tracks)

        # PHASE 6: 偏差收敛
        deviation_engine.observe(ctx)
        deviation_engine.converge(ctx)

        # PHASE 7: 演化
        evolution_engine.evolve(ctx, program.evolves)

        # PHASE 8: 输出与持久化
        output_snapshot(ctx)
        maybe_persist(ctx)

        # COMMIT: 原子提交
        state.commit(ctx.staging)
        state.tick += 1

五、风险与应对

风险 影响 应对策略
因果权重自动分配效果不佳 规则触发不符合预期 先实现手动指定权重,自动分配作为可选项;用演示案例校准
演化引擎导致系统震荡 系统不稳定 严格的影子验证 + 自动回滚 + εmax 约束
大规模状态场性能瓶颈 无法模拟真实规模 M4 阶段向量化 + 分布式;MVP 阶段限制规模
语言语义歧义 不同实现行为不一致 以 BNF + 演示案例为权威规范,建立一致性测试套件
学习曲线陡峭 用户难以上手 提供域模型(开箱即用)+ 在线 Playground + 教程

六、当前进度

M0: 语言规范冻结  ████████████████████ 100%
M1: MVP 内核      ░░░░░░░░░░░░░░░░░░░░   0% (待启动)
M2: 五大句式      ░░░░░░░░░░░░░░░░░░░░   0%
M3: 工具链        ░░░░░░░░░░░░░░░░░░░░   0%
M4: 性能优化      ░░░░░░░░░░░░░░░░░░░░   0%
M5: 生态          ░░░░░░░░░░░░░░░░░░░░   0%

下一步:启动 M1,实现词法分析器 + 语法分析器 + 状态场存储。


文档版本: WorldScript Implementation Roadmap v1.0

posted @ 2026-09-03 16:28  新哲  阅读(4)  评论(0)    收藏  举报