MarketOpenQASM
Company Profile

OpenQASM

Open Quantum Assembly Language is a programming language designed for describing quantum circuits and algorithms for execution on quantum computers.

Language
It is designed to be an intermediate representation that can be used by higher-level compilers to communicate with quantum hardware, and allows for the description of a wide range of quantum operations, as well as classical feed-forward flow control based on measurement outcomes. The language includes a mechanism for describing explicit timing of instructions, and allows for the attachment of low-level definitions to gates for tasks such as calibration. The language was first described in a paper published in July 2017, The language has similar qualities to traditional hardware description languages such as Verilog. OpenQASM defines its version at the head of a source file as a number, as in the declaration: OPENQASM 3; The level of OpenQASM's original published implementations is OpenQASM 2.0. Version 3.0 of the specification is the current one and can be viewed at the OpenQASM repository on GitHub. == Examples ==
Examples
The following is an example of OpenQASM source code from the official library. The program adds two four-bit numbers. /* * quantum ripple-carry adder * Cuccaro et al, quant-ph/0410184 */ OPENQASM 3; include "stdgates.inc"; gate majority a, b, c { cx c, b; cx c, a; ccx a, b, c; } gate unmaj a, b, c { ccx a, b, c; cx c, a; cx a, b; } qubit[1] cin; qubit[4] a; qubit[4] b; qubit[1] cout; bit[5] ans; uint[4] a_in = 1; // a = 0001 uint[4] b_in = 15; // b = 1111 // initialize qubits reset cin; reset a; reset b; reset cout; // set input states for i in [0: 3] { if(bool(a_in[i])) x a[i]; if(bool(b_in[i])) x b[i]; } // add a to b, storing result in b majority cin[0], b[0], a[0]; for i in [0: 2] { majority a[i], b[i + 1], a[i + 1]; } cx a[3], cout[0]; for i in [2: -1: 0] { unmaj a[i], b[i + 1], a[i + 1]; } unmaj cin[0], b[0], a[0]; measure b[0:3] -> ans[0:3]; measure cout[0] -> ans[4]; == See also ==
tickerdossier.comtickerdossier.substack.com