Patent attributes
A compiler translates programs for execution on a quantum processing system. To facilitate portability of quantum programs across differently configured quantum processors, the compiler accepts a specification of the quantum processor as input along with a quantum program for compilation. A specification may include information about the type of each qubit device in the quantum processor, the number of qubits, the qubit topology, coherence times of individual qubits, and operations that the quantum processor supports. The compilation process may include manipulating operations of the input program to generate equivalent operations that can be performed by the quantum gates and qubit devices on the quantum processor for which the program is being compiled.