  The DiVincenzo criteria for implementing a quantum computer have been seminal
in focussing both experimental and theoretical research in quantum information
processing. These criteria were formulated specifically for the circuit model
of quantum computing. However, several new models for quantum computing
(paradigms) have been proposed that do not seem to fit the criteria well. The
question is therefore what are the general criteria for implementing quantum
computers. To this end, a formal operational definition of a quantum computer
is introduced. It is then shown that according to this definition a device is a
quantum computer if it obeys the following four criteria: Any quantum computer
must (1) have a quantum memory; (2) facilitate a controlled quantum evolution
of the quantum memory; (3) include a method for cooling the quantum memory; and
(4) provide a readout mechanism for subsets of the quantum memory. The criteria
are met when the device is scalable and operates fault-tolerantly. We discuss
various existing quantum computing paradigms, and how they fit within this
framework. Finally, we lay out a roadmap for selecting an avenue towards
building a quantum computer. This is summarized in a decision tree intended to
help experimentalists determine the most natural paradigm given a particular
physical implementation.
