Roadmap¶
Note
This document is a live production and may have items moved around, deprioritized or canceled.
The items development order below are not reflecting an incremental difficulty, but rather implementation relevance and priority for some key aspects of the language system. Not all items are being worked out at the same time or having the same priority. This document is for guidance purposes only.
Some abbreviations used throughout:
-
CLI: CLI Tooling
-
DOC: Documentation
-
QPI: Quantum Primitive Instructions
-
FEAT: Language Features
-
CF: Compiler Frontend
-
CB: Compiler Backend
-
LT: Language Toolkit
-
QBK: Quantum Backend (Target Architecture)
-
CBK: Classical Backend (Target Architecture)
-
Q3L: Quantum Low Level Language
-
CM: Community
Short-term¶
-
CLI: Provide commands to create, build, run and manage H-hat projects
-
CF: Define the syntax and grammar of the Heather dialect
-
FEAT: Implement minimum features of the language: type definitions, function definitions, constant definitions, (local) imports, modules
-
CB: Finalize frontend compilation (PEG parsing → HIR → MIR → Cranelift/Q3L IR)
-
CB + QBK + CBK: Implement quantum program logic (quantum + classical instructions)
-
LT: Add LSP for the dialect with basic functionalities for relevant IDEs
-
DOC: Revamp and expand the documentation in the website and the README files in the repository
-
QPI: Define and implement a minimum set of H-hat's quantum primitives to enable useful quantum data manipulation
-
FEAT: Implement minimum strict and lazy evaluation
-
FEAT: Implement a minimum cast engine workflow
-
QBK: Add minimum quantum backend targeting simulation for OpenQASM and NetQASM
Mid-term¶
-
LT: Implement H-hat's docs tooling to handle its unique documentation workflow
-
CLI: Ensure the CLI is available after installing the language
-
CF: Implement full parsing, semantic analysis, and code generation for Heather (Rust)
-
CB: Implement JIT compiler pipeline
-
FEAT: Finalize the cast engine
-
DOC: Create user guides for relevant topics, including: the CLI, Heather syntax and semantics, and core language concepts
-
QBK: Implement targeting of QPU devices
-
CBK: Finalize targeting of CPU architectures (x86_64, aarch64) and OS (macOS, Linux, BSD)
-
FEAT: Finalize language's native concurrency engine
-
FEAT: Finalize ownership/drop semantics for classical and quantum data
-
FEAT: Implement metaprogramming
-
FEAT: Develop sub‑compilers memory management and communication through the message‑passing engine
-
FEAT: Build initial optimization passes for quantum programs
Long-term¶
-
LT: Implement an AOT compiler
-
LT: Bootstrap the language?
-
LT: Build a central package registry and a command‑line interface for dependency management
-
CM: Foster dialects and libraries development
-
FEAT + LT: Provide language constructs and tools for formal verification of functions
-
LT + CLI: Finalize and integrate a proof assistant tool to enable algorithmic verifiability, in combination with the CLI tooling
-
FEAT + LT: Include customizable advanced optimization passes for both classical and quantum code