  Languages, compilers, and computer-aided design tools will be essential for
scalable quantum computing, which promises an exponential leap in our ability
to execute complex tasks. LIQUi|> is a modular software architecture designed
to control quantum hardware. It enables easy programming, compilation, and
simulation of quantum algorithms and circuits, and is independent of a specific
quantum architecture. LIQUi|> contains an embedded, domain-specific language
designed for programming quantum algorithms, with F# as the host language. It
also allows the extraction of a circuit data structure that can be used for
optimization, rendering, or translation. The circuit can also be exported to
external hardware and software environments. Two different simulation
environments are available to the user which allow a trade-off between number
of qubits and class of operations. LIQUi|> has been implemented on a wide range
of runtimes as back-ends with a single user front-end. We describe the
significant components of the design architecture and how to express any given
quantum algorithm.
