

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 OpenQASM 3.0 进行逐字记录编译
<a name="braket-openqasm-verbatim-compilation"></a>

当您在 Rigetti 和 IonQ 等供应商提供的量子计算机上运行量子电路时，您可以指示编译器完全按照定义运行您的电路，而无需做出任何修改。此功能称为*逐字记录编译*。使用Rigetti设备，您可以精确地指定要保留的内容——要么是整个电路，要么仅保留其中的特定部分。如果仅保留电路的特定部分，需要在保留区域内使用原生门。目前，IonQ 仅支持整个电路的逐字记录编译，因此电路中的每条指令都需要放在逐字记录框中。

使用 OpenQASM，您可以围绕代码框明确指定逐字记录编译指示，然后该代码保持不变，不会被硬件的低级编译例程优化。以下代码示例演示了如何使用 `#pragma braket verbatim` 指令实现这一点。

```
OPENQASM 3;

bit[2] c;

#pragma braket verbatim
box{
    rx(0.314159) $0;
    rz(0.628318) $0, $1;
    cz $0, $1;
}

c[0] = measure $0;
c[1] = measure $1;
```

有关逐字编译过程的更多详细信息，包括示例和最佳实践，请参阅 github 存储库中提供的 [Verbatim 编译](https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Verbatim_Compilation.ipynb)示例笔记本。 amazon-braket-examples