量子程序通常使用量子开发框架以 Python 或 C++ 等常用语言编写。大多数框架都允许用户指定基本量子操作(门)。一些框架采用更加功能性的方法,还允许用户指定高级内核(有时称为“oracle”)。此类内核封装了执行更高级功能所需的大量门,意味着程序员不必担心门级别的细节。在视觉上,程序通常用构成门或常用内核的量子电路表示。
要在量子计算机上运行程序,必须对其进行编译,以便将抽象的门级操作转换为一组特定于设备的指令。此编译任务使用传统计算机执行。不同的量子设备具有独特的编译要求和指令集,因此,用于编写量子程序的出色开发平台应该能够将同一代码尽可能多地编译为量子设备上的各种指令集,包括特定于设备的优化。
编译后的代码将由设备的控制系统在其量子硬件上执行。在未来的大规模量子计算机中,该执行阶段还包括用于实施量子纠错的其他控制指令(参阅下节)。借助量子纠错,可以在不受噪音干扰的情况下完成大型量子程序。
在量子程序结束时,会读出 QPU 中的量子位。在某些算法中,将基于概率执行这种读出结果的操作,有时需要多次重复该算法。在大多数算法中,读出结果需要由传统计算机在后期进行处理,以将数据解释为有意义的解决方案。找到能够使用尽可能少的量子位和门生成有意义结果的量子电路,是量子算法设计面临的主要挑战之一。