4

Many scientific programmers get by fine without having a computer science background, i.e. they don't need to know the machinery behind the prevailing paradigm of 0's and 1's (bits), let alone basic logic, to code.

Given this lack of awareness of classical computing's inner workings, what are stand-out concepts from classical computing that every aspiring quantum programmer should know?

Adrien Suau
  • 4,927
  • 20
  • 58
develarist
  • 987
  • 7
  • 15
  • 1
    related: https://quantumcomputing.stackexchange.com/questions/1367/programming-quantum-computers-for-non-physics-majors – glS Dec 03 '19 at 10:11

1 Answers1

4

I take your statement that programmers "don't need to know the machinery behind the prevailing paradigm" to mean that most scientific programmers need not know how a $\mathsf{NAND}$ gate is realized, with, say, a set of $6$ or so transistors.

However, probably a concept that is fundamental in quantum computing, that can be understood by anyone familiar with logical operations like $\mathsf{AND}$, $\mathsf{OR}$, etc. is that of reversible computing. For example quantum computing logical gates must be reversible, and gates like $\mathsf{NAND}$ etc. are ruled out. Information is lost in such gates.

However, gates like $\mathsf{XNOR}$ are still allowed in quantum computing (because they are reversible, and the input could be recovered.)

Because information cannot be erased in quantum circuits, it becomes difficult, though not impossible, to program recursive subroutines with reversible gates. See e.g. this Quanta article on the problems of recursion in quantum computing, and the recent breakthrough of Gidney.

Mark Spinelli
  • 11,947
  • 2
  • 19
  • 65