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.
翻译:本文的目的是介绍目前最新技术的概况,提供关于开发量子软件工具的经验报告,并概述开发量子程序制定工具支持量子计算技术需要的象征性编程的视角。本文件的主要重点是量子计算技术,因为它们能够最直接地从开发能够对量子电路进行象征性操纵的工具中获益,并为创建、优化和测试量子程序提供软件工具。我们对量子软件开发领域最受欢迎的方法进行简短的调查,我们的目标是指出这些方法的优缺点。这有助于拟定一份应当列入量子计算框架的可取特点清单。接下来,我们描述一个软件结构及其初步实施情况,支持使用象征性方法开发量子程序,鼓励功能性方案编制范式,同时使量子计算机与高性能和云计算相结合。所述软件包括若干套软件,以满足不同的需要,但共享共同的设计概念。我们还概述了在量子软件工程(即量子软件测试和量子电路构造)的任务中如何使用所提出的方法。