Pluto‑ecss: A Transpiler and Runtime for PLUTO Procedure Language
Описание и применение
Pluto‑ecss превратил прототип PLUTO в полноценный, pip‑устанавливаемый инструмент, компилирующий 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