

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 OpenQASM 3.0 逐字編譯
<a name="braket-openqasm-verbatim-compilation"></a>

當您在 Rigetti、 和 等廠商提供的量子電腦上執行量子電路時IonQ，您可以指示編譯器完全依照定義執行您的電路，無需進行任何修改。此功能稱為*逐字編譯*。使用 Rigetti 裝置，您可以精確地指定保留的內容 - 整個電路或只保留其中的特定部分。若要僅保留電路的特定部分，您需要在保留區域內使用原生閘道。目前， IonQ 僅支援整個電路的逐字編譯，因此電路中的每個指令都需要用逐字方塊括住。

使用 OpenQASM，您可以明確地在程式碼方塊周圍指定一字不差的 pragma，然後讓硬體的低階編譯常式保持未處理且未最佳化。下列程式碼範例示範如何使用 `#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;
```

如需逐字編譯程序的詳細資訊，包括範例和最佳實務，請參閱 amazon-braket-examples github 儲存庫中提供的[逐字編譯](https://github.com/aws/amazon-braket-examples/blob/main/examples/braket_features/Verbatim_Compilation.ipynb)範例筆記本。