The Open Quantum Assembly Language, a custom programming language, is designed specifically to minimally describe quantum circuits. OpenQASM can be used to write a quantum program, and then execute it on IBM QX. It can also be used as a non-graphical way to describe any circuit specified in the Quantum Composer on IBM QX. Since it is a general, non graphical language, it is useful to describe quantum algorithms. Several of OpenQASM's advanced features are not available on IBM QX, including resetting qubits, if statements, user-defined gates, and access to the only gates in OpenQASM's specification: CX and U. Instead IBM QX imports a header file with some user-defined gates (defined by IBM) called qelib1.inc, which allows the user to have access to all the gates this book has covered in detail: I, X, Y, Z, H, S, S†, T, T†, and CNOT.
In the next chapter, we will go over Qiskit and quantum computer simulation.