Symbolic quantum programming for supporting applications of quantum computing technologies

The goal of this paper is to deliver the overview of the current state of the art, to provide experience report on developing quantum software tools, and to outline the perspective for developing quantum programming tools supporting symbolic programming for the needs of quantum computing technologies. The main focus of this paper is on quantum computing technologies, as they can in the most direct way benefit from developing tools enabling the symbolic manipulation of quantum circuits and providing software tools for creating, optimizing, and testing quantum programs. We deliver a short survey of the most popular approaches in the field of quantum software development and we aim at pointing their strengths and weaknesses. This helps to formulate a list of desirable characteristics which should be included in quantum computing frameworks. Next, we describe a software architecture and its preliminary implementation supporting the development of quantum programs using symbolic approach, encouraging the functional programming paradigm, and, at the same, time enabling the integration with high-performance and cloud computing. The described software consists of several packages developed to address different needs, but nevertheless sharing common design concepts. We also outline how the presented approach could be used in tasks in quantum software engineering, namely quantum software testing and quantum circuit construction.

[1]  Jiang Nan,et al.  Quantum Symbolic Execution , 2022, 2209.08582.

[2]  David Sutter,et al.  Circuit knitting with classical communication , 2022, IEEE Transactions on Information Theory.

[3]  T. Yue,et al.  When software engineering meets quantum computing , 2022, Commun. ACM.

[4]  Ozlem Salehi,et al.  A Computer Science-Oriented Approach to Introduce Quantum Computing to a New Audience , 2020, IEEE Transactions on Education.

[5]  Sukhpal Singh Gill,et al.  Quantum computing: A taxonomy, systematic review and future directions , 2020, Softw. Pract. Exp..

[6]  T. Yue,et al.  Muskit: A Mutation Analysis Tool for Quantum Software Testing , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[7]  Xinyi Wang,et al.  Quito: a Coverage-Guided Test Generator for Quantum Programs , 2021, 2021 36th IEEE/ACM International Conference on Automated Software Engineering (ASE).

[8]  Lea M. Trenkwalder,et al.  Reinforcement learning for optimization of variational quantum circuit architectures , 2021, NeurIPS.

[9]  Keisuke Fujii,et al.  Qulacs: a fast and versatile quantum circuit simulator for research purpose , 2020, Quantum.

[10]  Vincent Russo,et al.  toqito - Theory of quantum information toolkit: A Python package for studying quantum information , 2021, J. Open Source Softw..

[11]  Teresa Tamayo-Mendoza,et al.  TEQUILA: a platform for rapid development of quantum algorithms , 2020, Quantum Science and Technology.

[12]  Jianjun Zhao,et al.  Quantum Software Engineering: Landscapes and Horizons , 2020, ArXiv.

[13]  Jin-Guo Liu,et al.  Yao.jl: Extensible, Efficient Framework for Quantum Algorithm Design , 2019, Quantum.

[14]  Margherita Zorzi,et al.  Quantum Calculi—From Theory to Language Design , 2019, Applied Sciences.

[15]  Luca Paolini,et al.  QPCF: Higher-Order Languages and Quantum Circuits , 2018, Journal of Automated Reasoning.

[16]  Ryan LaRose,et al.  Overview and Comparison of Gate Level Quantum Software Platforms , 2018, Quantum.

[17]  Adam Glos,et al.  QSWalk.jl: Julia package for quantum stochastic walks analysis , 2018, Comput. Phys. Commun..

[18]  H. Ritsch,et al.  QuantumOptics.jl: A Julia framework for simulating open quantum systems , 2017, Comput. Phys. Commun..

[19]  Aram W. Harrow,et al.  Quantum computational supremacy , 2017, Nature.

[20]  Jingbo B. Wang,et al.  QSWalk: A Mathematica package for quantum stochastic walks on arbitrary graphs , 2016, Comput. Phys. Commun..

[21]  Matthias Troyer,et al.  ProjectQ: An Open Source Software Framework for Quantum Computing , 2016, ArXiv.

[22]  Matthias Troyer,et al.  A software methodology for compiling quantum programs , 2016, ArXiv.

[23]  Jonathan M. Smith,et al.  Programming the quantum future , 2015, Commun. ACM.

[24]  Benoît Valiron,et al.  Quipper: a scalable quantum programming language , 2013, PLDI.

[25]  Jaroslaw Adam Miszczak,et al.  RandFile package for Mathematica for accessing file-based sources of randomness , 2013, ArXiv.

[26]  Franco Nori,et al.  QuTiP 2: A Python framework for the dynamics of open quantum systems , 2012, Comput. Phys. Commun..

[27]  Jaroslaw Adam Miszczak Employing online quantum random number generators for generating truly random quantum states in Mathematica , 2012, Comput. Phys. Commun..

[28]  Jaroslaw Adam Miszczak,et al.  High-level Structures for Quantum Computing , 2012, High-level Structures for Quantum Computing.

[29]  Jaroslaw Adam Miszczak Generating and using truly random quantum states in Mathematica , 2011, Comput. Phys. Commun..

[30]  Jerzy Karczmarczuk,et al.  Specific "scientific" data structures, and their processing , 2011, DSL.

[31]  Jaroslaw Adam Miszczak,et al.  SINGULAR VALUE DECOMPOSITION AND MATRIX REORDERINGS IN QUANTUM INFORMATION THEORY , 2010, 1011.1585.

[32]  Konrad Hinsen,et al.  The Promises of Functional Programming , 2009, Computing in Science & Engineering.

[33]  Peter Nyman,et al.  A Symbolic Classical Computer Language for Simulation of Quantum Algorithms , 2009, QI.

[34]  Hynek Mlnařík,et al.  SEMANTICS OF QUANTUM PROGRAMMING LANGUAGE LANQ , 2008 .

[35]  Renato Portugal,et al.  The QWalk simulator of quantum walks , 2008, Comput. Phys. Commun..

[36]  André van Tonder,et al.  A Lambda Calculus for Quantum Computation , 2003, SIAM J. Comput..

[37]  Amr Sabry,et al.  Modeling quantum computing in Haskell , 2003, Haskell '03.

[38]  Bernhard Ömer,et al.  A Procedural Formalism for Quantum Computing , 2002 .

[39]  Bernhard Ömer,et al.  Quantum Programming in QCL , 2000 .

[40]  Jerzy Karczmarczuk,et al.  Scientific computation and functional programming , 1999, Comput. Sci. Eng..

[41]  Philip Z. Maymin Extending the Lambda Calculus to Express Randomized and Quantumized Algorithms , 1996, quant-ph/9612052.

[42]  R. Hughes,et al.  The Structure and Interpretation of Quantum Mechanics , 1989 .