Yes, it's possible (but slow). There are a couple of existing (this is only a partial list) emulators:
- QDD: A Quantum Computer Emulation Library
QDD is a C++ library which provides a relatively intuitive set of quantum computing constructs within the context of the C++ programming environment. QDD is unique in that the its emulation of quantum computing is based upon a Binary Decision Diagram (BDD) representation of the quantum state.
- jQuantum
jQuantum is a program which simulates a quantum computer. You can design quantum circuits with it and let them run. The current state of the quantum register is illustrated.
- QCE
QCE is a software tool that emulates various hardware designs of Quantum Computers. QCE simulates the physical processes that govern the operation of a hardware quantum processor, strictly according to the laws of quantum mechanics. QCE also provides an environment to debug and execute quantum algorithms under realistic experimental conditions.
(In addition, Q# only works with MS's QDK, thanks @Pavel)
The downside to all of these is simple: they still run on binary (non-quantum) circuits. To the best of my knowledge, there's no easily accessible quantum computer to use for running these things. And since it takes multiple binary bits to express a single qubit, the amount of computational power needed to simulate a quantum program gets large very quickly.
I'll quote a paper on the subject (J. Allcock, 2010):
Our evaluation shows that our implementations are very accurate, but at the same time we use a significant amount of additional memory in order to achieve this. Reducing our aims for accuracy would allow us to decrease representation size, and therefore emulate more qubits with the same amount of memory.
p 89, section 5.1
As our implementations get more accurate, they also get slower.
TL;DR: it's possible, and some emulators exist, but none are very efficient for large amounts of qubits.