Imperative Quantum Programming with Ownership and Borrowing in Guppy
summary
Guppy implements an imperative quantum type system that enforces ownership and borrowing so you cannot measure or deallocate a qubit you don’t own, borrows cannot be measured, moved ownership forbids further use, and owned qubits must be explicitly consumed or returned. The team ships a Python-embedded compiler that infers lifetimes automatically, handles mid-circuit measurements and dynamic allocation, functionalizes into value semantics for optimization, and the implementation is production-ready and open source on GitHub.
AI-written summary · about
chapters (13)
- 0:00Quantum programming semantics
- 1:25Value vs reference semantics
- 2:50Dynamic quantum features
- 4:15Guppy design goals
- 6:44Type system needs
- 7:29Cubit lifetime tracking
- 9:13Ownership for cubits
- 12:45Borrowing rules
- 14:29Structs in Guppy
- 15:33Ownership and leaks
- 17:18Imperative to functional
- 19:25Summary
- 19:46Q&A
related talks
15mAssertion-Based Optimization of Quantum Programs
17mQVM: Quantum Gate Virtualization Machine
48mHello, Quantum World!
22mQuantum Controlled Measurements via Program Transformation
39mBuilding a Compiler for Quantum Computers
19mQuantum Virtual Machines
16mCompiling and Running High-level Quantum Programs
32mOptimal Quantum Programs
