Falcon DSL Overview¶
The Falcon DSL (.fal) is a domain-specific language for defining state machines used in quantum device autotuning.
Key Features¶
- Typed Inputs & Outputs — Explicit type signatures for autotuners and routines
- State Machine Control — Sequential execution through named states with explicit transitions
- Composability — Import routines and structs across modules
- Generic Types — Parameterized structs for reusable data structures
- FFI Integration — Direct C++ hardware binding via
ffimport
Quick Start¶
- Learn the Language: Read the Language Reference
- Follow a Tutorial: Build your first autotuner with the Tutorial
- Run Autotuners: Use the CLI Reference for
falcon-run - Manage Dependencies: Use the Package Manager
- Set Up Your Editor: Install Language Server Protocol support
Components¶
Core Tools¶
falcon-run— Execute autotuners from the command linefalcon-pm— Manage imports and dependenciesfalcon-lsp— Language server for IDE integration
Syntax Highlighting & IDE Support¶
- TreeSitter Grammar (treesitter/) — Syntax parsing and highlighting
- Language Server (lsp/) — IDE features: diagnostics, completion, go-to-definition
File Structure¶
A typical project layout: