I've referred to some programming language recommendation questions on here, so I thought I'd post a follow-up question here. I'm a total beginner to the field but want to seriously learn it. Is there a low-level, QC-equivalent of assembly language, and is it worth it to learn that at this stage? Do existing QC programming languages provide that low-level functionality?

And a minor second clarification - if I commit to learning any particular framework like Qiskit or Q#/QDK - is there a risk of that framework going obsolete depending on which company wins out in this QC race in the future?


1 Answer 1


I will provide answer for IBM Q. There is a language callled QASM. As you can see from the name of the language, it is similar to assembly language known from classical computer.

The language statements are very simple - they involve an operation (i.e. quantum gate) and affected qubits. For example to apply $X$ gate on qubit no. 0, you have to put in x q[0], for CNOT gate with control qubit no. 0 and target qubit 1, the statement is cnot q[0], q[1] etc. Also special stataments are used for measurement, setting number of qubits in qubit register and bits in classical register. You can also define subroutines which are called custom gates. This all means that you operates on qubit and gate level although logical ones. It is also possible to write a program in QASM using only basic gates which are $U3$ and CNOT on IBM Q (although $U3$ is still not physical gate).

IBM Q also enables you to program a quantum processor with microwave pulses directly (only processor Armonk offers this capability now) which is really physical level, something like programming classical computer by switching particular transistors.

Concerning the possibility of a something going to be obsolete. There is always such risk in any segment of industry, particularly in IT which evolves rapidly.

As I see it, it think to learn QASM/Qiskit is useful as it allows you to get insight how quantum computers work. Then, it would be easy to switch to another language.

  • $\begingroup$ Thanks for the detailed response! I'm also inclined to learn QASM, but as a beginner I'm not sure about the "easy to switch to another language" part. But now that I think about it, the same was true with assembly language in classical computing too - different architectures had different instruction sets. $\endgroup$ Mar 3, 2021 at 7:58
  • $\begingroup$ @user9343456: You are absolutely right concerning classical architecture. However, basics instruction were more or less same. This is also true for QC. Any quantum assembly language should know gates X, Y, Z, H, S, T, CNOT, maybe rotations, which are very basics buiding blocks of gate-based quantum computing. $\endgroup$ Mar 3, 2021 at 8:04

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.