Oak Ridge National Laboratory Knoxville, United States of America
We present a service-oriented software architecture for the prototypical quantum-classical programming, compilation, and execution workflow. Specifically, we detail the internal architecture of XACC, a software framework that exposes core service (plugin) interfaces in C++ for quantum languages, compiled intermediate representations and syntax trees, general IR transformations, backend physical (and virtual) execution, and automated error-mitigation. We provide high-level details of this architecture - the specific service interfaces enabling it - and examine concrete implementations with a focus on algorithmic expression, quantum optimal control, and streamlined error-mitigation. The extensibility and modularity presented here directly enable an organic and robust software infrastructure for the continuously evolving quantum computing research landscape. As time progresses, the architecture defined here remains flexible and adaptable to novel insights and results coming out of quantum computing research efforts.