0% found this document useful (0 votes)
4 views11 pages

Rchitecture of Application Systems PatternsQuantumSE

Uploaded by

i248072
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views11 pages

Rchitecture of Application Systems PatternsQuantumSE

Uploaded by

i248072
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

Institute of Architecture of Application Systems

Patterns for Quantum Software Development

Fabian Bühler, Johanna Barzen, Martin Beisel,


Daniel Georg, Frank Leymann, Karoline Wild
Institute of Architecture of Application Systems,
University of Stuttgart, Germany,
{firstname.lastname}@iaas.uni-stuttgart.de

:
@inproceedings{Buehler2023_QuantumSoftwareEngineeringPatterns,
author = {B{\"u}hler, Fabian and Barzen, Johanna and Beisel, Martin and
Georg, Daniel and Leymann, Frank and Wild, Karoline},
title = {{Patterns for Quantum Software Development}},
booktitle = {Proceedings of the 15th International Conference on Pervasive
Patterns and Applications (PATTERNS 2023)},
year = {2023},
month = jun,
pages = {30--39},
publisher = {Xpert Publishing Services (XPS)},
isbn = {978-1-68558-049-0}
}

© 2023 Xpert Publishing Services

The published version is available in the Thinkmind Digital Library:

https://www.thinkmind.org/index.php?view=article&articleid=patterns_2023_2_30_70009
PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

Patterns for Quantum Software Development


Fabian Bühler, Johanna Barzen, Martin Beisel, Daniel Georg, Frank Leymann, and Karoline Wild
Institute of Architecture of Application Systems, University of Stuttgart
Universitätsstrasse 38, 70569 Stuttgart, Germany
email: {firstname.lastname}@iaas.uni-stuttgart.de

Abstract—Quantum algorithms have the potential to out- easily be integrated directly into applications also implemented
perform classical algorithms for certain problems. However, in Python. Another aspect is the reusability for different
implementing quantum algorithms in a reusable manner and in- problem instances. Reusable implementations of quantum al-
tegrating them into applications poses new challenges. To ensure
reusability and integrability, quantum algorithm implementations gorithms, e.g., to solve the maximum cut problem [10], should
must handle different problem sizes, be able to be processed by be able to process graphs of different sizes, which may affect
different quantum computers, and should also be able to be used the number of qubits required. Moreover, reusable algorithm
and integrated by non-quantum experts. In classical software implementations should be executable on different hardware,
engineering a variety of best practices and design principles to i.e., quantum computers of different vendors.
achieve reusability of classical software components are well-
known and documented as patterns. However, quantum software To achieve a high degree of reusability, classical software
engineering currently lacks best practices for creating reusable engineering provides many well-documented and well-known
implementations of quantum algorithms. To close this gap, this best practices for structuring the code of classical applications,
paper presents five patterns that describe proven solutions for such as modularization to achieve separation of concerns.
modularization, integration, and translation of quantum algo- To the best of our knowledge, similar best practices for
rithm implementations, further extending the existing quantum
computing pattern language. implementing quantum algorithms and integrating them into
Index Terms—Quantum Computing; Pattern Language; Quan- applications are neither well-established nor well-documented
tum Software Engineering; Quantum Computing Patterns. in the emerging field of quantum software engineering.
An established method to document best practices for
I. I NTRODUCTION solving recurring problems are patterns [11]. They provide a
Quantum algorithms have the potential to outperform their structured way to capture design and architectural knowledge
classical counterparts by exploiting quantum mechanical phe- in a human-readable format. Patterns have been originally
nomena such as entanglement. Most quantum algorithms are introduced by Alexander [12] in the domain of building
hybrid, comprising classical and quantum computations. This architectures. Today they are widely used in different domains
includes not only variational quantum algorithms (VQAs) [1], including software engineering, e.g., for the design of object-
e.g., the Variational Quantum Eigensolver (VQE) and Quan- oriented applications [13], the integration of enterprise appli-
tum Approximate Optimization Algorithm (QAOA) [2], but cations [14], or cloud computing [15]. Typically, patterns of a
also Shor’s algorithm for prime factorization [3][4] and Grover certain domain are organized in a pattern language. Patterns
search [5], which require classical pre- and post-processing within a pattern language are interconnected, to facilitate the
steps and are therefore also hybrid [6]. combination of related patterns and ease the understanding of
Implementing a quantum algorithm is a complex task requir- similar problems and their solutions.
ing expertise in the field of quantum computing and software In the quantum computing domain, Leymann [16] intro-
engineering. Implementations consist of code that represents duced a pattern language, which has since been extended
quantum circuits, and code defining the classical logic of the several times [2][17][18][19][20][21]. The pattern language
quantum algorithm. These algorithm implementations can then contains patterns of different categories, e.g., patterns related
be integrated in hybrid quantum-classical applications [7] to to quantum operations or specific quantum algorithm classes.
solve specific problems. Thus, the reusability of implementa- However, patterns documenting best practices to improve the
tions of quantum algorithms and their integration into appli- reusability of quantum algorithm implementations are not yet
cations, where their hybrid nature on the level of algorithms part of the language. To close this gap, we extend the quantum
and applications poses additional challenges [8], are of great computing pattern language by five new patterns that cover
importance to quantum software engineering [9]. different aspects of reusability of such implementations.
Reusability in the context of quantum algorithm imple- The structure of this paper is as follows: Section II provides
mentations comprises multiple aspects: One aspect is the fundamentals on quantum software engineering and introduces
reusability of an implementation in different applications. The the used pattern format and authoring process. Next, Sec-
programming language used for the implementation has a large tion III explains the new patterns in detail, followed by a short
influence on its reusability, e.g., quantum algorithms imple- discussion in Section IV. Then, related work is presented in
mented in a Python-based quantum programming language can Section V and Section VI provides a conclusion.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 30


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

II. BACKGROUND The inputs of a quantum algorithm, e.g., the problem in-
This section introduces fundamentals of quantum software stance, must be encoded into the quantum circuit. Therefore,
engineering. Additionally, the concept of patterns, the pattern reusable quantum algorithm implementations require a dy-
format used in this paper, and the pattern authoring process namic generation of quantum circuits based on the given input.
are described in more detail.
B. Pattern Format and Authoring Method
A. Quantum Software Engineering Patterns provide proven solutions for recurring problems in
Quantum software engineering is an emerging field that a structured, human-readable manner. Alexander et al. [12]
aims to apply software engineering principles to the devel- originally introduced the concept of patterns in the domain of
opment of applications using quantum algorithm implemen- building architectures. This concept has then been adopted by
tations [22]. In particular, the reusability of such implemen- the information technology domain. For documenting patterns
tations is a main goal of quantum software engineering [9]. in this domain, Coplien [11] provides guidelines for writing
One aspect of reusability is the ability to integrate quantum al- software patterns. In this work, the already established pat-
gorithm implementations into different applications. Typically, tern format of the quantum computing pattern language that
quantum algorithm implementations are integrated into hybrid follows these guidelines for documenting patterns is used.
quantum-classical applications [7], or hybrid applications for Each pattern has a descriptive name and a mnemonic icon.
short, to solve problems that can only be solved efficiently A short question briefly introduces the problem solved by
using a quantum computer, while classical computers are used the pattern. Next, the context in which the problem occurs
for general purpose computation and data storage. and the forces acting in that context are described in detail.
Most quantum algorithms are hybrid algorithms, including Forces are aspects of the problem context that require special
variational algorithms as well as all algorithms that require focus. Understanding these forces is crucial as solutions often
classical computing for pre- and post-processing [6]. Thus, a cannot resolve the forces but rather balance the forces with
quantum algorithm implementation is divided into a quantum varying tradeoffs [11]. Then, the solution is presented along
part and a classical part. Although both classical and quantum with a solution sketch, followed by a paragraph describing
parts can be implemented in similar text-based programming the result of applying that solution. The solution is presented
languages, developing quantum parts requires expert knowl- in an abstract, technology-independent manner so that it can
edge of quantum computing and its mathematical foundations be applied in a broad context. Finally, real world occurrences
in addition to software engineering knowledge. of the pattern are listed in known uses and relationships to
Quantum computers use unique instruction sets. To make patterns solving similar problems or that are recommended to
use of synergies with the existing patterns this paper focuses be used in combination are provided in related patterns.
on gate-based quantum computing. For the gate-based quan- To identify patterns for quantum software engineering solv-
tum computing model, quantum gates represent the operations ing recurring problems, we empirically inspected quantum
performed on qubits and together with the measurements to algorithm implementations of well-established libraries like
retrieve the results of the quantum computation, they form the Qiskit [23] and Amazon Braket [24]. Additionally, we an-
quantum circuit that can be processed by a quantum computer. alyzed algorithm descriptions from scientific literature and
However, quantum computers of different vendors support quantum computing tutorials. Moreover, we evaluated the
different gates natively, which can lead to vendor lock-in when potential applications of established best practices of classical
implementing quantum algorithms. software engineering in the context of quantum computing.
Development
Quantum Quantum Hybrid CC
Classical-Quantum
Module Module Template Module Interface
Program Flow Execution
Quantum
Quantum- Warm- ... Circuit ...
CC
Classic Split QAOA VQA Start A B
Translator
Quantum States Data Encodings
Uniform Creating Angle Basis ...
Superposition Entanglement Encoding Encoding
Unitary Transformations Error Handling Measurement
Oracle Amplitude ... Error ... Post-selective
f(x) Amplification Correction Measurement

Figure 1. Overview of the quantum computing pattern language [16] including the new patterns.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 31


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

III. PATTERNS FOR Q UANTUM S OFTWARE D EVELOPMENT Forces: Quantum circuits to be processed by a quantum
computer must already contain all appropriately encoded input
As a first step to capture best practices for quantum software values. A static implementation of a quantum circuit that does
development and execution, five new patterns are introduced not allow the quantum circuit to be changed based on some in-
in this section that extends the existing quantum computing put values cannot be reused to solve different problems. Thus,
pattern language [2][16][17][18][19][20][21]. Figure 1 shows a reusable implementation of the quantum part of a quantum
an overview of the categories of the quantum computing algorithm needs to be able to adapt the quantum circuit to
pattern language, including the new Development and the different input values. The input values that need to be encoded
extended Execution category. The existing patterns mostly in a quantum circuit are, first, the problem to be solved, e.g., an
focus on the program flow, which uses unitary transformations implementation of Shor’s algorithm [3] would require as input
to manipulate quantum states, e.g., to create specific data the number to be factored into primes, and second, parameters
encodings for an algorithm, and measurements to read out used for optimization or machine learning, e.g., for QAOA [2].
the results of a quantum computation. The new patterns focus Moreover, implementing the quantum part of a quantum
on modularization, reusability, and the integration of quantum algorithm requires in depth knowledge of quantum computing
algorithm implementations into hybrid applications. and the underlying mathematical concepts. Thus, quantum
The two patterns Q UANTUM M ODULE and Q UANTUM computing experts are required in the development teams.
M ODULE T EMPLATE focus on encapsulating the implemen- However, other parts of the algorithm that only require clas-
tation of the quantum part of a quantum algorithm as reusable sical computation, e.g., classical optimizers, may not require
modules. Q UANTUM M ODULES can generate quantum cir- quantum computing knowledge at all and can be implemented
cuits with a known structure and behavior, while Q UAN - by different teams without a quantum computing expert.
TUM M ODULE T EMPLATES allow the integration of arbitrary Solution: Separate the implementation of the quantum part
behavior into the generated quantum circuit. In contrast, a of the quantum algorithm into one or more Q UANTUM
H YBRID M ODULE is used to package a complete quantum M ODULES. These modules contain the code that generates
algorithm implementation containing the quantum as well as quantum circuits based on input values provided to the module.
the classical parts, such as the continued fraction expansion Quantum modules can also be used to reduce the number of
of Shor’s algorithm [3], of the quantum algorithm. Its main code duplicates by implementing common parts of a quantum
use case is distribution and deployment of a quantum algo- circuit as a reusable quantum module.
rithm implementation for integration into hybrid applications. The solution sketch in Figure 2 depicts that a Q UANTUM
The implementation of a H YBRID M ODULE can again be M ODULE receives input values and uses generative code to
modularized, e.g., using Q UANTUM M ODULES or Q UAN - construct quantum circuits depending on these input values.
TUM M ODULE T EMPLATES . A C LASSICAL -Q UANTUM I N - This ensures the reusability of the Q UANTUM M ODULE, as
TERFACE facilitates the use of quantum algorithms by non- the implementation can create quantum circuits for different
quantum computing experts. Last, a Q UANTUM C IRCUIT problem sizes as well as parameters.
T RANSLATOR enables the execution of quantum circuits on
quantum computers of different vendors by translating the
circuits into a compatible format. In the following subsections
these patterns are presented in detail.
Code X

A. Quantum Module Inputs


Quantum
Quantum Circuit
Problem: How can the implementation of Module Inputs
the quantum part of a quantum algorithm Figure 2. Solution sketch: Q UANTUM M ODULE.
be packaged for reuse independent of con-
crete input values? Result: A quantum algorithm implementation is partitioned
into (i) Q UANTUM M ODULES containing the implementations
Context: Each quantum algorithm is a hybrid algorithm, of the quantum part, and (ii) additional classical code required
i.e., parts of the algorithm require quantum computers and for the control flow and other classical computations of the
other parts require classical computers for their execution. quantum algorithm. The quantum modules are independent of
For the execution of the quantum part, a quantum circuit the concrete input values, which increases their reusability for
implementing the required operations is needed. However, different quantum algorithm implementations.
quantum circuits are problem-specific and, thus, depend on The separation of code that generates quantum circuits
various inputs, e.g., the problem instance or initial values for into quantum modules can thus also be reflected in the
parameterized quantum gates, which are then optimized by organizational structure of the development teams. Only
a classical optimizer. Therefore, the implementation of the the teams working on the quantum modules need quantum
quantum part of a quantum algorithm must be input-agnostic computing experts, while other teams mainly need experts in
in order to be reusable. classical software engineering.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 32


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

Known Uses: Q UANTUM M ODULES can already be found Forces: Quantum algorithms may intentionally leave parts of
in several libraries for building quantum circuits. In Amazon the behavior of the quantum part unspecified until a later
Braket [24], the Grover algorithm [5] is offered as a module point in time. For example, the Grover search [5] uses an
with functions to build the oracle and execute the Grover unspecified placeholder gate, as the specific function that
search. Another example of a Q UANTUM M ODULE for cre- marks the correct values cannot be known before it has been
ating oracles is the PhaseOracle in Qiskit [23]. Generic parts decided what to search for. In the case of QAOA, the choice of
used in multiple quantum algorithms, such as the quantum a suitable ansatz depends on information that is only available
fourier transformation used in Shor’s algorithm [3] are avail- at runtime. However, for the algorithms to be executed, the
able in Amazon Braket [24] and Qiskit [23]. The quantum missing behavior must be integrated before the execution of
phase estimation, which is also part of Shor’s algorithm can be the quantum circuits on a quantum computer. Note, that similar
constructed in Qiskit [23] with the PhaseEstimation module. situations can arise if the development of a quantum algorithm
Related Patterns: A Q UANTUM M ODULE generating specific is split between different teams.
quantum circuits for a quantum algorithm can be used inside Integrating quantum behavior into an existing circuit re-
a H YBRID M ODULE that contains the implementation of the quires a specification of the requirements an implementation
overall quantum algorithm with its quantum and classical has to fulfill to be integrated and function correctly. This
parts. Quantum circuits generated by a Q UANTUM M ODULE includes the specification of the input qubits available, possible
can be integrated into a Q UANTUM M ODULE T EMPLATE to ancilla qubits, on which qubits and in what form the output
create a complete quantum circuit, if the Q UANTUM M ODULE is expected, and any other requirements or restrictions, e.g.,
only generates a part of a quantum circuit. The boundary on the creation of entanglement between quantum bits. Some
of a Q UANTUM M ODULE is directly corresponding to the of the restrictions, e.g., the number of available ancilla qubits,
Q UANTUM -C LASSIC S PLIT [16]. The Q UANTUM -C LASSIC may additionally depend on the quantum computer used for
S PLIT pattern states, that there is necessarily a separation – execution, as a quantum computer with more qubits can
a split – between code executed on classical computers and allocate more ancilla qubits if the number of qubits used in
code executed on quantum computers. Thus, the Q UANTUM the circuit is otherwise constant.
M ODULE pattern is related to this pattern. Solution: Implement the generic behavior of the quantum part
B. Quantum Module Template of a quantum algorithm in a Q UANTUM M ODULE T EMPLATE.
This module accepts inputs, that define the unspecified be-
Problem: How can the implementation of havior to be integrated into the final quantum circuit. The
the quantum part of a quantum algorithm behavior can either be specified as a quantum circuit or as
be packaged for reuse when some of the a Q UANTUM M ODULE that generates the required quantum
behavior is determined later? circuit. This circuit then gets integrated by the Q UANTUM
M ODULE T EMPLATE into the main quantum circuit that
Context: Some quantum algorithms can be implemented in a represents the generic behavior.
reusable manner, but their behavior may be partially modified To ensure that the behavior input, in form of a quantum
depending on the problem to which the algorithm is applied. circuit, can be integrated to correctly perform the operations
For example, the Grover search algorithm [5] contains an it contains, the Q UANTUM M ODULE T EMPLATE must include
unspecified oracle. The information required for defining the specifications in the documentation that can be used to build a
concrete behavior of this oracle may not be available until a compatible quantum circuit, as outlined in the pattern forces.
later point in time. Similar cases are algorithms like QAOA [2], This specification is mainly a contract that needs to be fulfilled
which do not specify a concrete ansatz to use. Thus, imple- by the quantum circuit serving as input for the template.
mentations of the quantum part of such algorithms, where the Similar contracts, e.g., plugin contracts [25], are also used
unspecified behavior can be integrated later, are required. in classical software engineering.

Incomplete
Quantum
Circuit
Inputs
Code

H
H H
H
Quantum H H
Behavior Module Template Inputs
Inputs Behavior Inputs Quantum Circuit

Figure 3. Solution sketch: Q UANTUM M ODULE T EMPLATE.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 33


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

Figure 3 sketches the essential building blocks of a Q UAN - C. Hybrid Module


TUM M ODULE T EMPLATE. The template requires two kinds
of inputs: (i) the input values representing the problem to be Problem: How can the implementation of a
solved as well as parameters affecting the circuit generation, quantum algorithm requiring both classical
as used in the Q UANTUM M ODULE, and (ii) behavior inputs and quantum computations be packaged so
partially specifying the behavior of the algorithm, provided that it can be integrated into applications?
in the form of a quantum circuit or a Q UANTUM M ODULE.
Much like the Q UANTUM M ODULE, the Q UANTUM M ODULE Context: Quantum algorithms often require classical computa-
T EMPLATE uses the input values to generate a quantum tion for pre- and post-processing of the quantum computation
circuit, which is still incomplete as it does not include the results [6]. This means that almost all quantum algorithms are
behavior from the behavior inputs yet. If the behavior inputs hybrid. Thus, any implementation of a quantum algorithm has
are provided in the form of a quantum module, this module is to contain both the quantum and the classical parts for the
used to generate a quantum circuit from the inputs. Finally, the algorithm to be functional.
quantum circuit is integrated into the incomplete main circuit. Forces: Quantum algorithms typically require a classical com-
However, implementations of the template are not limited to puter for some parts of their computation. This means that they
the exemplary steps shown here. can have multiple quantum and classical parts. For example,
VQAs, such as VQE and QAOA, alternate between quantum
Result: The generic behavior of the quantum part of a
and classical computations [1][2]. Both, the quantum and the
quantum algorithm is implemented as Q UANTUM M ODULE
classical part, are required for the algorithm to work correctly.
T EMPLATE that requires behavior inputs to generate an exe-
This also includes the control flow of the algorithm, which is
cutable complete quantum circuit. The behavior inputs specify
included in the classical part of the algorithm.
the parts of the algorithm’s behavior that cannot be known in
advance. Thereby, their influence on the resulting quantum Integrating a quantum algorithm into an application requires
circuit can be significantly higher than with a Q UANTUM the implementation of the entire algorithm. A dedicated inter-
M ODULE. The behavior inputs must be compatible with the face is required to enable the integration into applications.
required input definitions of the template. Deploying the algorithm to a hybrid runtime, which can exe-
cute both the quantum and the classical part of the algorithm,
The integration of the behavior inputs can be done at design even requires both parts to be deployed together.
time if the behavior is provided as Q UANTUM M ODULE, since Solution: Package the entire quantum algorithm, i.e., both the
the Q UANTUM M ODULE generates the circuit based on the quantum parts and the classical parts, as a H YBRID M ODULE.
input values. Templates can be nested inside other templates This module can be composed of smaller modules, e.g.,
to compose quantum circuits from Q UANTUM M ODULES Q UANTUM M ODULES. It also contains the control flow logic
implementing higher level circuit functions. This facilitates the to orchestrate the quantum and classical computation. The
replacement of a part of a quantum circuit if that part should H YBRID M ODULE should provide an interface that facilitates
be generated by a new Q UANTUM M ODULE implementing an its integration into applications. This interface should mainly
improved algorithm, e.g., a more efficient state preparation. accept the required problem-specific input values, i.e., the
problem that should be processed by the algorithm. Moreover,
Known Uses: Various quantum algorithms, e.g., the algorithm the interface of a H YBRID M ODULE can also allow behavior
of Deutsch [26] or the Grover search [5], use an unspecified inputs to the classical as well as quantum computation, similar
unitary gate as placeholder. Implementations of the generic to the Q UANTUM M ODULE T EMPLATES.
behavior of these algorithms are available in Amazon An exemplary sketch of a H YBRID M ODULE is shown in
Braket [24] and Qiskit [23]. These algorithms need oracle Figure 4. It includes the control flow logic and implemen-
circuits to replace the placeholder gate, which are described in tations of classical and quantum parts with a loop between
the O RACLE pattern [16]. The oracle replacement is described quantum and classical computation. The implementation of
in [27] in an Oracle Expansion Task for workflows using the such a hybrid module can consist of multiple smaller modules,
Quantum Modeling Extension. Generic parts of QAOA [2], e.g., the three classical and one quantum computation steps
such as state preparation and the mixer operator are imple- shown can each be implemented in a separate module.
mented in Amazon Braket [24] and Qiskit [23] and can be used
by providing a quantum circuit encoding the cost function.

Related Patterns: A Q UANTUM M ODULE T EMPLATE is a


special kind of Q UANTUM M ODULE that additionally accepts Inputs
behavior inputs, which are integrated into the generated quan- Classical
tum circuit. Q UANTUM M ODULE T EMPLATES can be used to Program
integrate, e.g., O RACLES [16] and S TATE P REPARATION [16] Hybrid
Module
circuits into an executable quantum circuit allowing circuits
to be built from smaller modules. Figure 4. Solution sketch: H YBRID M ODULE.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 34


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

Result: The entire quantum algorithm implementation is pack- the quantum part, e.g., by enabling certain error mitigation
aged as a H YBRID M ODULE. It contains both the quantum methods. The effects of the changes, e.g., on resource require-
and the classical parts, as well as the control flow logic. ments or runtime, are difficult to estimate without knowledge
H YBRID M ODULES can be used to deploy the algorithm as of quantum computers. Thus, to facilitate the integration of
a standalone service, e.g., in a hybrid runtime environment quantum algorithms by problem-domain experts without quan-
that can execute both the classical and the quantum part [28]. tum computing knowledge, such an interface is not sufficient.
Furthermore, a H YBRID M ODULE can be distributed as a Solution: Use a C LASSICAL -Q UANTUM I NTERFACE that
library that implements the quantum algorithm and can be hides the quantum implementation details. Inputs can be
integrated into classical applications. It provides an interface provided to the interface in formats specific to the problem
for the application to use. To facilitate the integration of a H Y- domain. These problem domain-specific inputs are internally
BRID M ODULE by problem-domain experts, a C LASSICAL - converted into inputs in the formats required by the imple-
Q UANTUM I NTERFACE can be used as the modules’ interface. mentation of the quantum part.
Known Uses: One concrete example are implementations of The documentation of interface inputs that affect the quan-
Shor’s algorithm [3] which computes the prime factors of tum part requires special consideration, since understanding
the input number. The period-finding calculated on the quan- their impact on algorithm execution is important informa-
tum computer and the classical post-processing performing tion when integrating the quantum algorithm implementation.
the continued fraction expansion is packaged as a H YBRID Thus, the impact of these inputs on the algorithm should be
M ODULE in Amazon Braket [24], Qiskit [23] and Q# [29]. documented in a comprehensible and easily understandable
Other examples of H YBRID M ODULES are implementa- manner by the interface developer. For example, a parameter
tions of VQAs [1], e.g., QAOA and VQE implementations that increases the accuracy of the result, but also increases the
for the Qiskit Runtime contain the full quantum algorithm number of gates in the generated circuits, which can result
implementation [23]. Beisel et al. [30] showcase a service in increased errors with current quantum computers, could
ecosystem enabling a workflow-based composition of H YBRID be documented as follows: “Increasing this parameter can
M ODULES for VQAs. increase the accuracy of the result. However, it also increases
Related Patterns: The quantum part of the algorithm imple- the probability of computation errors accumulating, which can
mentation inside a H YBRID M ODULE can be organized into negate any improvement in accuracy.“
Q UANTUM M ODULES and Q UANTUM M ODULE T EMPLATES. Figure 5 shows the interaction of a classical program with
To facilitate their integration into applications by problem- a quantum algorithm implemented as a H YBRID M ODULE
domain experts without quantum computing knowledge, the through a C LASSICAL -Q UANTUM I NTERFACE. It transforms
H YBRID M ODULE can expose a problem domain-specific the problem domain-specific input of the classical program
C LASSICAL -Q UANTUM I NTERFACE. into the inputs required by the quantum algorithm. This inter-
face can also be integrated directly into the H YBRID M ODULE.
D. Classical-Quantum Interface

Problem: How can a quantum algorithm CC Problem- Transformed


specific Input
implementation be used by developers with- Input
out quantum computing knowledge?
Classical Classical-Quantum
Program Interface Hybrid Module
Context: Using a quantum algorithm implementation often
requires in depth quantum computing knowledge. For Figure 5. Solution sketch: C LASSICAL -Q UANTUM I NTERFACE.
example, the Grover search algorithm requires that the
user provides a quantum circuit for the missing oracle [5]. Result: The quantum algorithm implementation can be uti-
Other algorithms, like QAOA, require choosing an ansatz, lized using a C LASSICAL -Q UANTUM I NTERFACE. Problem
which also requires quantum computing knowledge [1][2]. domain experts can make use of this quantum algorithm im-
However, software developers who want to integrate a plementation through the C LASSICAL -Q UANTUM I NTERFACE
quantum algorithm implementation into an application have a created for their domain. The knowledge required to utilize
deep understanding of the problem domain rather than deep the algorithm implementation is presented in the interface
knowledge of quantum computing. documentation, and the format of input parameters is familiar
Forces: To integrate a quantum algorithm implementation to problem-domain experts.
into an application, a compatible interface is required. A Known Uses: Domain-specific libraries for quantum com-
H YBRID M ODULE already provides an interface enabling its puting are among the first having implemented this pattern.
integration into applications, however, using this interface may Examples for already implemented C LASSICAL -Q UANTUM
still require considerable quantum computing knowledge. For I NTERFACES can be found in the chemistry domain in Qiskit,
example, it may require the problem instance to be provided Amazon Braket, and Q# [31][32][33]. They offer transforma-
in the form of a behavior input to the quantum part of an tion modules that map the electronic structure of molecules
algorithm, or it may have parameters that otherwise influence to qubits. Furthermore, Qiskit [23] provides a finance module

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 35


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

enabling portfolio optimization by implementing a transformer


that takes a generic optimization problem as input and outputs
a cost operator that can be used in a quantum algorithm.
As many classical problems can be formulated as such an Quantum Quantum Circuit Quantum
Circuit Translator Circuit
optimization problem, this can be used as a C LASSICAL -
Q UANTUM I NTERFACE for different problem domains. Figure 6. Solution sketch: Q UANTUM C IRCUIT T RANSLATOR.
Related Patterns: The C LASSICAL -Q UANTUM I NTERFACE
enables the integration of quantum algorithm implementations
T RANSLATOR increases the reusability of Q UANTUM M OD -
into applications. It can be used as an interface for a
ULES, as it enables their use with different quantum computers.
quantum algorithm implemented as a H YBRID M ODULE.
However, the translated circuits do not need to be executed
This interface provides a bridge between the different
directly, but can instead be used as inputs for a Q UAN -
programming paradigms separated by the Q UANTUM -
TUM M ODULE T EMPLATE. Therefore, a Q UANTUM C IRCUIT
C LASSIC S PLIT [16]. It is a special kind of FACADE [13] for
T RANSLATOR enables the composition of quantum algorithms
quantum algorithms that not only hides the complexity of the
based on modules implemented in different programming
algorithm, but also translates between the quantum computing
languages. Thus, a Q UANTUM C IRCUIT T RANSLATOR can be
domain and the problem domain.
used to increase the interoperability of Q UANTUM M ODULES.
E. Quantum Circuit Translator Known Uses: A widely used format for defining quantum
circuits is OpenQASM [35], an open quantum assembly
language. It can be imported and exported by many
Problem: How can a quantum circuit be
quantum software development kits (SDKs) such as Amazon
executed by different quantum computers
A B Braket [24], Qiskit [23] and Cirq [36]. For estimating whether
with different instruction sets?
a quantum circuit can be executed, the NISQ Analyzer [34]
needs the transpiled circuit for the respective quantum device.
Context: Quantum circuits can be implemented in different It includes multiple circuit translators. For the Python SDK
programming languages and with different quantum gates. Pennylane [37] there is a plugin enabling the support for
However, quantum computers typically only support specific IBM quantum computers without additional libraries. Explicit
circuit formats and instruction sets, which hinders interoper- translation is supported by pytket [38] from and to Cirq [36].
ability and leads to vendor lock-in [34]. Thus, executing a Qconvert [39] can convert from pyQuil or OpenQASM to
quantum circuit on different quantum computers often requires several other formats by using their web tool.
a translation of the quantum circuit. Related Patterns: The Q UANTUM C IRCUIT T RANSLATOR
Forces: There are a multitude of quantum programming pattern is related to the M ESSAGE T RANSLATOR pattern
languages available for implementing quantum algorithms [7]. from the enterprise integration pattern language [14]. With
A quantum circuit may be implemented in a programming a C ANONICAL DATA M ODEL [14] quantum circuits of any
language that is incompatible with the targeted quantum com- language can be translated into any other language using at
puter. The circuit needs to be re-implemented in a compatible most two translators for each language. A circuit translator can
quantum programming language and instruction set. However, be used to translate circuits generated by a Q UANTUM M OD -
a manual re-implementation is error-prone, time-consuming, ULE implemented in one programming language before using
and requires expertise in quantum computing, and, hence, them with a Q UANTUM M ODULE T EMPLATE implemented in
is not feasible for real-world problem sizes. Therefore, an a different programming language.
automatic translation, transforming unsupported gates into
gates natively supported by the quantum computer, is required. IV. D ISCUSSION
Solution: Use a translator to convert the quantum circuit The validity of a software engineering pattern strongly
into the target language and transpile the circuit to the target depends on the number of real-world uses of that pattern [11].
instruction set, i.e., replace unsupported gates with equivalent Each of the newly introduced patterns has a number of known
gates from the target instruction set. real-world uses documented in the known uses section.
The solution sketch in Figure 6 shows the application of a Except for quantum computing libraries aiming for a larger
Q UANTUM C IRCUIT T RANSLATOR that translates a quantum user base such as Qiskit, most quantum software development
circuit between two programming languages and instruction is currently ad-hoc, e.g., for a one-time experimental algorithm
sets. The SWAP gate connecting the outer qubit wires in the implementation without applying best practices from classical
left quantum circuit has been decomposed into three C-NOT software engineering. The prevalence of ad-hoc development
gates in the right target quantum circuit. can be partly explained by the fact that only today’s largest
Result: A Q UANTUM C IRCUIT T RANSLATOR is able to au- quantum computers have surpassed the amount of qubits that
tomatically translate a quantum circuit into a target format, can be simulated on a classical computer [28]. Additionally,
enabling components with different circuit formats and in- these qubits are still noisy, which further limits their potential
struction sets to use the same circuit. A Q UANTUM C IRCUIT applications [6]. Therefore, most quantum algorithms cannot

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 36


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

show their quantum advantage for relevant problem sizes on documented as patterns in the sense of the definition provided
today’s quantum computers. Thus, current implementations of by Alexander et al. [12] to guide developers in implementing
quantum algorithms are often single-use, e.g., for a proof- quantum algorithms. Furthermore, Huang et al. [42] describe
of-concept, as the limited hardware available today can only methods for validating quantum programs using anti-patterns.
process small problems. Therefore, the majority of examples Similar approaches documented for the field of quantum
of the Q UANTUM M ODULE and H YBRID M ODULE patterns computing are also established in other areas of information
have been found in the larger quantum computing libraries. technology. The Q UANTUM C IRCUIT T RANSLATOR is based
As stated above, implementing quantum algorithms requires a on the same concept as the M ESSAGE T RANSLATOR presented
deep understanding of quantum computing, its mathematical in the enterprise integration patterns by Hohpe and Woolf [14].
foundations, and software engineering, which is a rare com- It enables the communication between systems using different
bination of skills. Thus, many implementations are created by message formats. Other related enterprise integration patterns,
physicists without a software engineering background. such as the C ANONICAL DATA M ODEL and the N ORMAL -
Quantum algorithms are expected to be an essential part IZER , can also be adapted to the quantum computing domain.
of many applications in various domains once they can solve Leymann and Barzen [43] present the Pattern Atlas, a pub-
problems of relevant size. Since applications integrating quan- licly available [44] tool to facilitate the visualization of con-
tum algorithms do not depend on the algorithms’ implemen- nections between patterns within a pattern language as well
tation details, the H YBRID M ODULE pattern that can hide all as between different pattern languages. Moreover, it enables
this complexity inside the module will be useful here. the creation of Pattern Views [45], i.e., a collection combining
Splitting the implementation of an algorithm into multiple individual patterns and connections from different languages.
modules is an established technique used to reduce the com- Sánches et al. [46] define the term quantum module and
plexity of an implementation. To refine this established de- its properties to describe how to modularize the design of
sign principle with quantum computing-specific requirements, quantum circuits. The Q UANTUM M ODULE pattern defined in
we introduced the module patterns to the growing quantum our work differs significantly, as it includes classical code to
software engineering discipline. The two patterns, Q UANTUM generate quantum circuits. However, the properties they identi-
M ODULE and Q UANTUM M ODULE T EMPLATE, can be used fied for their quantum module definition must also be fulfilled
to modularize quantum algorithm implementations. Modular- by any behavior inputs to Q UANTUM M ODULE T EMPLATES.
ization can be used on multiple levels. For example, Q UAN - Piattini et al. [9] outline the importance of quantum software
TUM M ODULES can be used to build a H YBRID M ODULE. engineering. They provide principles of quantum software
To ensure the interoperability of modules, they must expose engineering, e.g., that quantum software has a hybrid nature
an interface that can be used by other modules. A well-defined and suggest that reusable parts of quantum applications should
interface improves reusability and hides complexity, such that be identified for creating libraries and to provide reference
quantum algorithm implementations can be used without deep examples. The patterns presented in this work can be a part
quantum computing knowledge. The C LASSICAL -Q UANTUM of the answer towards creating reusable quantum algorithm
I NTERFACE pattern is crucial for creating algorithm imple- implementations. Beisel et al. [30] modularize recurring tasks
mentations that ease the integration into existing applications. of VQAs in various microservices and integrate them using
The last pattern, the Q UANTUM C IRCUIT T RANSLATOR, workflows. Thereby, they follow established engineering con-
is mainly used for executing quantum circuits on different cepts to provide VQAs as reusable, automatically executable
quantum computers. It is required as hardware vendors have workflows. Hence, their approach is an exemplary implemen-
not agreed upon a standard format for representing quantum tation of a H YBRID M ODULE.
circuits. OpenQASM [35] is at the moment the most promising Georg et al. [21] describe the execution of quantum ap-
candidate for such a format. However, even if all existing quan- plications. The P RE - DEPLOYED E XECUTION and the P RI -
tum computers can interpret OpenQASM, we will most likely ORITIZED E XECUTION pattern can be applied to execute a
still have many quantum programming languages with dif- quantum application created by using the H YBRID M ODULE
ferent properties. A Q UANTUM C IRCUIT T RANSLATOR that pattern, which packages the algorithm together with classical
translates quantum circuits between two such languages can dependencies inside a single module.
also be used during the development of quantum algorithms. The quantum software lifecycle proposed by Weder et
With such a translator it becomes possible to use Q UANTUM al. [22] describes the development process of quantum
M ODULES implemented in other programming languages. applications in ten phases. The patterns in this work
document best practices for the implementation phases with
V. R ELATED W ORK more detailed instructions, e.g., for the Hardware-independent
The patterns introduced in this work extend the exist- Implementation phase by providing a Q UANTUM M ODULE
ing quantum computing pattern language originally intro- which has a generative classical part for building the
duced by Leymann [16] which is continuously growing quantum circuit, or for the Quantum Circuit Enrichment
[2][17][18][19][20][21]. There are also other publications phase by using the Q UANTUM M ODULE and Q UANTUM
defining terms and summarizing concepts in the quantum M ODULE T EMPLATE to better split the responsibility for the
computing domain [40][41]. However, these concepts are not implementation of oracles and state preparation.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 37


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

VI. C ONCLUSION AND F UTURE W ORK [7] D. Vietz, J. Barzen, F. Leymann, and K. Wild, “On Decision Support
for Quantum Application Developers: Categorization, Comparison, and
Due to the novelty of quantum computing, there are so far Analysis of Existing Technologies,” in Computational Science – ICCS
2021. Springer International Publishing, Jun. 2021, pp. 127–141.
few, if any, established principles for quantum software devel- [8] B. Weder, J. Barzen, F. Leymann, and M. Zimmermann, “Hybrid
opment. Implementing a quantum algorithm requires expert Quantum Applications Need Two Orchestrations in Superposition: A
knowledge in quantum computing and software engineering, Software Architecture Perspective,” in Proceedings of the 18th IEEE
International Conference on Web Services (ICWS 2021). IEEE, Sep.
which makes it a multidisciplinary task. Currently, quantum 2021, pp. 1–13.
applications are often implemented ad hoc by physicists with- [9] M. Piattini et al., “The Talavera Manifesto for Quantum Software
out in-depth software engineering knowledge. Thus, this work Engineering and Programming,” Mar. 2020.
extends the quantum computing pattern language by five new [10] E. Farhi, J. Goldstone, and S. Gutmann, “A Quantum Approximate
Optimization Algorithm,” Nov. 2014, arXiv:1411.4028.
patterns to support quantum software engineers in their work [11] J. O. Coplien, Software Patterns. SIGS Books & Multimedia, 1996.
by making relevant knowledge easily accessible and digestible. [12] C. Alexander, S. Ishikawa, and M. Silverstein, A Pattern Language:
The four patterns in the development category, aiding devel- Towns, Buildings, Construction. Oxford University Press, Aug. 1977.
[13] E. Gamma, R. Helm, R. Johnson, and J. Vlissides, Design Patterns:
opers in creating modularized and reusable implementations Elements of Reusable Object-oriented Software. Addison-Wesley, Oct.
of quantum algorithms, incorporate knowledge from classical 1994.
software engineering adapted to the quantum computing do- [14] G. Hohpe and B. Woolf, Enterprise Integration Patterns: Designing,
main. The fifth pattern, Q UANTUM C IRCUIT T RANSLATOR, Building, and Deploying Messaging Solutions. Addison-Wesley, 2004.
[15] C. Fehling, F. Leymann, R. Retter, W. Schupeck, and P. Arbitter, Cloud
is part of the execution category and enables quantum circuits Computing Patterns: Fundamentals to Design, Build, and Manage Cloud
to be executed on quantum computers of different vendors. Its Applications. Springer International Publishing, Jan. 2014.
main use case is related to the execution of quantum circuits, [16] F. Leymann, “Towards a Pattern Language for Quantum Algorithms,”
in First International Workshop, QTOP 2019, Munich, Germany, March
but it can also be used during development. 18, 2019, Proceedings. Springer International Publishing, Apr. 2019,
In the future, we will make the patterns available through pp. 218–230.
the Pattern Atlas [43] repository integrated into the PlanQK [17] M. Weigold, J. Barzen, F. Leymann, and M. Salm, “Data Encoding Pat-
terns For Quantum Algorithms,” in Proceedings of the 27th Conference
platform [47]. This repository already contains all previously on Pattern Languages of Programs (PLoP ’20). HILLSIDE, Oct. 2020,
published patterns. By introducing the patterns to the public, pp. 1–11.
we can receive valuable feedback in order to further refine the [18] M. Weigold, J. Barzen, F. Leymann, and M. Salm, “Encoding patterns
for quantum algorithms,” IET QuantumCommunication, vol. 2, no. 4,
existing patterns. It allows a continuous re-evaluation of the pp. 141–152, Dec. 2021.
patterns, including an analysis of the usability of the patterns. [19] M. Weigold, J. Barzen, F. Leymann, and M. Salm, “Expanding data
Especially in such a new and rapidly growing domain as encoding patterns for quantum algorithms,” in 2021 IEEE 18th Inter-
national Conference on Software Architecture Companion (ICSA-C).
quantum software engineering, any pattern language can be IEEE, Mar. 2021, pp. 95–101.
expected to evolve with the domain as new best practices [20] M. Beisel et al., “Patterns for Quantum Error Handling,” in Proceedings
emerge over time. Additionally, we plan to build a quantum of the 14th International Conference on Pervasive Patterns and Applica-
tions (PATTERNS 2022). Xpert Publishing Services (XPS), Apr. 2022,
computing solution language [48] that can provide concrete pp. 22–30.
solutions to the problems presented in the pattern language. [21] D. Georg et al., “Execution Patterns for Quantum Applications,” in Pro-
ceedings of the 18th International Conference on Software Technologies
(ICSOFT 2023). SciTePress, 2023, accepted.
ACKNOWLEDGEMENTS [22] B. Weder, J. Barzen, F. Leymann, M. Salm, and D. Vietz, “The
Quantum Software Lifecycle,” in Proceedings of the 1st ACM SIGSOFT
This work was partially funded by the BMWK projects International Workshop on Architectures and Paradigms for Engineering
SeQuenC (01MQ22009B), EniQmA (01MQ22007B), and Quantum Software (APEQS 2020). ACM, Nov. 2020, pp. 2–9.
PlanQK (01MK20005N). [23] Qiskit, “Qiskit: An Open-source Framework for Quantum Computing,”
https://qiskit.org/documentation/, [accessed: 2023.05.25].
[24] AWS, “Amazon Braket Usage Overview,” https://docs.aws.amazon.com/
R EFERENCES braket/latest/developerguide/braket-using.html, [accessed: 2023.05.25].
[25] K. Marquardt, “Patterns for Plug-ins,” in Proceedings of the Fourth
[1] M. Cerezo et al., “Variational quantum algorithms,” Nature Reviews European Conference on Pattern Languages of Programming and Com-
Physics, vol. 3, no. 9, pp. 625–644, Aug. 2021. puting, 1999.
[2] M. Weigold, J. Barzen, F. Leymann, and D. Vietz, “Patterns for Hybrid [26] D. Collins, K. W. Kim, and W. C. Holton, “Deutsch-Jozsa algorithm as a
Quantum Algorithms,” in Proceedings of the 15th Symposium and test of quantum computation,” Phys. Rev. A, vol. 58, pp. R1633–R1636,
Summer School on Service-Oriented Computing (SummerSOC 2021). Sep 1998.
Springer International Publishing, Sep. 2021, pp. 34–51. [27] B. Weder, U. Breitenbücher, F. Leymann, and K. Wild, “Integrating
[3] P. W. Shor, “Polynomial-Time Algorithms for Prime Factorization Quantum Computing into Workflow Modeling and Execution,” in Pro-
and Discrete Logarithms on a Quantum Computer,” SIAM Journal on ceedings of the 13th IEEE/ACM International Conference on Utility and
Computing, vol. 26, no. 5, pp. 1484–1509, oct 1997. Cloud Computing (UCC 2020). IEEE, Dec. 2020, pp. 279–291.
[4] J. Barzen and F. Leymann, “Continued Fractions and Probability Esti- [28] H. Riel, “Quantum Computing Technology and Roadmap,” in ESSDERC
mations in Shor’s Algorithm: A Detailed and Self-Contained Treatise,” 2022 - IEEE 52nd European Solid-State Device Research Conference
AppliedMath, vol. 2, no. 3, pp. 393–432, Jul. 2022. (ESSDERC), 2022, pp. 25–30.
[5] L. K. Grover, “A fast quantum mechanical algorithm for database [29] Microsoft, “Microsoft Quantum Development Kit
search,” in Proceedings of the twenty-eighth annual ACM symposium Overview,” https://learn.microsoft.com/en-us/azure/quantum/
on Theory of computing, 1996, pp. 212–219. overview-what-is-qsharp-and-qdk, [accessed: 2023.05.25].
[6] F. Leymann and J. Barzen, “The bitter truth about gate-based quantum [30] M. Beisel et al., “Quokka: A Service Ecosystem for Workflow-Based
algorithms in the NISQ era,” Quantum Science and Technology, pp. 1– Execution of Variational Quantum Algorithms,” in Service-Oriented
28, Sep. 2020. Computing – ICSOC 2022 Workshops. Springer, Mar. 2023,

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 38


PATTERNS 2023 : The Fifteenth International Conference on Pervasive Patterns and Applications

Demonstration, pp. 369–373. [Online]. Available: https://link.springer.


com/chapter/10.1007/978-3-031-26507-5 35
[31] Qiskit, “Qiskit Nature Overview,” https://qiskit.org/documentation/
nature/index.html, [accessed: 2023.05.25].
[32] AWS, “Amazon Braket Chemistry Example,” https://github.com/
aws/amazon-braket-examples/blob/main/examples/hybrid quantum
algorithms/VQE Chemistry/VQE chemistry braket.ipynb, [accessed:
2023.05.25].
[33] Microsoft, “Microsoft Quantum Development Kit: Quantum Chemistry
Library,” https://learn.microsoft.com/en-us/azure/quantum/user-guide/
libraries/chemistry/, [accessed: 2023.05.25].
[34] M. Salm et al., “The NISQ Analyzer: Automating the Selection of
Quantum Computers for Quantum Algorithms,” in Proceedings of the
14th Symposium and Summer School on Service-Oriented Computing
(SummerSOC 2020). Springer International Publishing, Dec. 2020, pp.
66–85.
[35] A. Cross et al., “OpenQASM 3: A Broader and Deeper Quantum As-
sembly Language,” ACM Transactions on Quantum Computing, vol. 3,
no. 3, pp. 1–50, Sep. 2022.
[36] Google, “Cirq,” https://quantumai.google/cirq, [accessed: 2023.05.25].
[37] V. Bergholm et al., “PennyLane: Automatic differentiation of hybrid
quantum-classical computations,” 2018, arxiv:1811.04968.
[38] Cambridge Quantum, Quantum Software and Technologies, “Pytket Ex-
tensions,” https://github.com/CQCL/pytket-cirq, [accessed: 2023.05.25].
[39] Quantastica, “Quantum programming language converter,” https://github.
com/quantastica/qconvert, [accessed: 2023.05.25].
[40] S. Perdrix, “Quantum patterns and types for entanglement and separa-
bility,” Electronic Notes in Theoretical Computer Science, vol. 170, pp.
125–138, 2007.
[41] S. S. Gill et al., “Quantum Computing: A Taxonomy, Systematic Review
and Future Directions,” 2020, arxiv:2010.15559.
[42] Y. Huang and M. Martonosi, “Statistical assertions for validating patterns
and finding bugs in quantum programs,” in Proceedings of the 46th
International Symposium on Computer Architecture, 2019, pp. 541–553.
[43] F. Leymann and J. Barzen, Pattern Atlas. Springer International
Publishing, Apr. 2021, pp. 67–76.
[44] PlanQK, “PlanQK - Pattern Atlas,” https://patterns.platform.planqk.de/
pattern-languages, [accessed: 2023.05.25].
[45] M. Weigold et al., “Pattern Views: Concept and Tooling of Intercon-
nected Pattern Languages,” in Proceedings of the 14th Symposium and
Summer School on Service-Oriented Computing (SummerSOC 2020).
Springer International Publishing, Dec. 2020, pp. 86–103.
[46] P. Sánchez and D. Alonso, “On the Definition of Quantum Programming
Modules,” Applied Sciences, vol. 11, no. 13, 5843, 2021.
[47] PlanQK, “PlanQK - Platform and Ecosystem for Quantum Applica-
tions,” https://platform.planqk.de/, [accessed: 2023.05.25].
[48] M. Falkenthal, J. Barzen, U. Breitenbücher, and F. Leymann, “Solution
Languages: Easing Pattern Composition in Different Domains,” Inter-
national Journal on Advances in Software, vol. 10, no. 3, pp. 263–274,
Dec. 2017.

Copyright (c) IARIA, 2023. ISBN: 978-1-68558-049-0 39

You might also like