  Quantum computing is an emerging paradigm with the potential to offer
significant computational advantage over conventional classical computing by
exploiting quantum-mechanical principles such as entanglement and
superposition. It is anticipated that this computational advantage of quantum
computing will help to solve many complex and computationally intractable
problems in several areas such as drug design, data science, clean energy,
finance, industrial chemical development, secure communications, and quantum
chemistry. In recent years, tremendous progress in both quantum hardware
development and quantum software/algorithm have brought quantum computing much
closer to reality. Indeed, the demonstration of quantum supremacy marks a
significant milestone in the Noisy Intermediate Scale Quantum (NISQ) era - the
next logical step being the quantum advantage whereby quantum computers solve a
real-world problem much more efficiently than classical computing. As the
quantum devices are expected to steadily scale up in the next few years,
quantum decoherence and qubit interconnectivity are two of the major challenges
to achieve quantum advantage in the NISQ era. Quantum computing is a highly
topical and fast-moving field of research with significant ongoing progress in
all facets. This article presents a comprehensive review of quantum computing
literature, and taxonomy of quantum computing. Further, the proposed taxonomy
is used to map various related studies to identify the research gaps. A
detailed overview of quantum software tools and technologies, post-quantum
cryptography and quantum computer hardware development to document the current
state-of-the-art in the respective areas. We finish the article by highlighting
various open challenges and promising future directions for research.
