  We introduce an abstract machine architecture for classical/quantum
computations---including compilation---along with a quantum instruction
language called Quil for explicitly writing these computations. With this
formalism, we discuss concrete implementations of the machine and non-trivial
algorithms targeting them. The introduction of this machine dovetails with
ongoing development of quantum computing technology, and makes possible
portable descriptions of recent classical/quantum algorithms.
