Pluto‑ecss: A Transpiler and Runtime for PLUTO Procedure Language
说明与用途
Pluto‑ecss 将 2019 年的原型转变为完整的、可 pip 安装的工具链,将 PLUTO DSL 转译为可读 Python,支持并发运行,并提供 CLI、TUI 和浏览器演示界面。
问题
Spacecraft operators needed a reliable way to write, test, and execute PLUTO procedures—an ECSS‑standard DSL—without fragile, single‑file prototypes that never scaled.
结果
Pluto‑ecss transformed from a dormant prototype into a production‑ready, pip‑installable toolchain that compiles PLUTO scripts to readable Python, runs them with concurrency support, and offers CLI, TUI, and browser playground interfaces, enabling spacecraft operators to author and execute procedures reliably.
工作流
- 1. Rebuild the grammar with proper keyword‑priority handling.
- 2. Replace the tree‑walking interpreter with a transpiler that emits self‑contained Python.
- 3. Implement ECSS spec constructs (steps, sub‑bodies, property requests, context handling, reporting, refer‑by, activity arguments, continuation tests).
- 4. Add everyday language layer (if/case/while/for/repeat, wait until, expressions).
- 5. Build a concurrent runtime with threading and asyncio primitives.
- 6. Create a CLI with parse/compile/run/demo/fmt/gen commands.
- 7. Develop a TUI demo that visualizes procedure execution on a fake satellite.
- 8. Publish a browser playground using Pyodide.
- 9. Write comprehensive docs with MkDocs and a Pygments lexer.
- 10. Add 164 unit tests and run them to ensure reliability.
证据
pluto-ecss is a transpiler and runtime for PLUTO — the procedure language standardised by ECSS
It started life in 2019 as a Google Summer of Code work product: a sample parser that built a tree from one hard‑coded script and "ran" it by walking the tree.
After — main today: a proper transpiler (PLUTO → parse tree → readable Python), a standalone runtime, and a real toolchain.
- 记录日期: 2026-09-08T11:31:55.320Z