Back to Search
Start Over
Proto-Quipper with Dynamic Lifting
- Source :
- Proceedings of the ACM on Programming Languages. 7:309-334
- Publication Year :
- 2023
- Publisher :
- Association for Computing Machinery (ACM), 2023.
-
Abstract
- Quipper is a functional programming language for quantum computing. Proto-Quipper is a family of languages aiming to provide a formal foundation for Quipper. In this paper, we extend Proto-Quipper-M with a construct called dynamic lifting , which is present in Quipper. By virtue of being a circuit description language, Proto-Quipper has two separate runtimes: circuit generation time and circuit execution time. Values that are known at circuit generation time are called parameters , and values that are known at circuit execution time are called states . Dynamic lifting is an operation that enables a state, such as the result of a measurement, to be lifted to a parameter, where it can influence the generation of the next portion of the circuit. As a result, dynamic lifting enables Proto-Quipper programs to interleave classical and quantum computation. We describe the syntax of a language we call Proto-Quipper-Dyn. Its type system uses a system of modalities to keep track of the use of dynamic lifting. We also provide an operational semantics, as well as an abstract categorical semantics for dynamic lifting based on enriched category theory. We prove that both the type system and the operational semantics are sound with respect to our categorical semantics. Finally, we give some examples of Proto-Quipper-Dyn programs that make essential use of dynamic lifting.
- Subjects :
- FOS: Computer and information sciences
Quantum Physics
Computer Science::Emerging Technologies
Computer Science - Programming Languages
FOS: Mathematics
FOS: Physical sciences
Computer Science::Programming Languages
Category Theory (math.CT)
Mathematics - Category Theory
Quantum Physics (quant-ph)
Safety, Risk, Reliability and Quality
Software
Programming Languages (cs.PL)
Subjects
Details
- ISSN :
- 24751421
- Volume :
- 7
- Database :
- OpenAIRE
- Journal :
- Proceedings of the ACM on Programming Languages
- Accession number :
- edsair.doi.dedup.....3de7f5e0b4d3d2e92978a42bba42bf66
- Full Text :
- https://doi.org/10.1145/3571204