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.
翻译:本文旨在概述当前研究现状,提供量子软件开发工具的经验报告,并展望支持符号化程序设计的量子编程工具在量子计算技术需求下的发展前景。本文主要关注量子计算技术,因为这些技术能够最直接地受益于支持量子电路符号化操作以及提供用于创建、优化和测试量子程序的软件工具的开发。我们简要梳理了量子软件开发领域的主流方法,并指出其优势与不足,据此提炼出量子计算框架应具备的理想特性清单。随后,我们描述了一种软件架构及其初步实现,该架构支持采用符号化方法开发量子程序,鼓励函数式编程范式,同时实现与高性能计算及云计算的集成。该软件由多个软件包组成,这些软件包针对不同需求开发,但共享统一的设计理念。我们进一步阐述了所提方法在量子软件工程任务中的应用前景,包括量子软件测试与量子电路构建。