The advances in quantum hardware with functional quantum processors integrating tens of noisy qubits, together with the availability of near-term quantum algorithms have allowed the development of the so-called full-stacks that bridge quantum applications with quantum devices. A central layer of this stack is the quantum compiler that not only translates high-level code into low-level instructions that are executable on the quantum processor, but more importantly performs a series of transformations to the quantum circuit to meet the quantum hardware constraints and deal with its impairments. In this talk, after providing an overview of the different layers of the quantum computing full-stack, we will focus on the quantum compilation process. We will then discuss the need for optimal physical-aware and algorithm-driven compilation techniques in the midst of the NISQ (Noisy Intermediate-scale quantum) era. Finally, we will talk about scalable quantum computing systems based on multi-core architectures and the compilation requirements to perform distributed quantum computing.