  The universal quantum computer is a device capable of simulating any physical
system and represents a major goal for the field of quantum information
science. Algorithms performed on such a device are predicted to offer
significant gains for some important computational tasks. In the context of
quantum information, "universal" refers to the ability to perform arbitrary
unitary transformations in the system's computational space. The combination of
arbitrary single-quantum-bit (qubit) gates with an entangling two-qubit gate is
a gate set capable of achieving universal control of any number of qubits,
provided that these gates can be performed repeatedly and between arbitrary
pairs of qubits. Although gate sets have been demonstrated in several
technologies, they have as yet been tailored toward specific tasks, forming a
small subset of all unitary operators. Here we demonstrate a programmable
quantum processor that realises arbitrary unitary transformations on two
qubits, which are stored in trapped atomic ions. Using quantum state and
process tomography, we characterise the fidelity of our implementation for 160
randomly chosen operations. This universal control is equivalent to simulating
any pairwise interaction between spin-1/2 systems. A programmable multi-qubit
register could form a core component of a large-scale quantum processor, and
the methods used here are suitable for such a device.
