1,971 research outputs found
Control-Flow Analysis and Representation for Aspect-Oriented Programs
Aspect-oriented programming (AOP) has been proposed as a technique for improving the separation of concerns in software design and implementation. The field of AOP has, so far, focused primarily on problem analysis, lan-guage design, and implementation. Even though the im-portance of program comprehension and software main-tenance is known, it has received little attention in the aspect-oriented paradigm. However, as the software sys-tems coded in AOP languages are accumulated, the devel-opment of techniques and tools to support program compre-hension and software maintenance tasks for aspect-oriented software will become important. In order to understand and maintain aspect-oriented programs, abstract models for representing these programs are needed. In this paper, we present techniques to construct control-flow representa-tions for aspect-oriented programs, and discuss some appli-cations of the representations in a program comprehension and maintenance environment.
Static Entanglement Analysis of Quantum Programs
Quantum entanglement plays a crucial role in quantum computing. Entangling
information has important implications for understanding the behavior of
quantum programs and avoiding entanglement-induced errors. Entanglement
analysis is a static code analysis technique that determines which qubit may
entangle with another qubit and establishes an entanglement graph to represent
the whole picture of interactions between entangled qubits. This paper presents
the first static entanglement analysis method for quantum programs developed in
the practical quantum programming language Q\#. Our method first constructs an
interprocedural control flow graph (ICFG) for a Q\# program and then calculates
the entanglement information not only within each module but also between
modules of the program. The analysis results can help improve the reliability
and security of quantum programs
Testing Multi-Subroutine Quantum Programs: From Unit Testing to Integration Testing
Quantum computing has emerged as a promising field with the potential to
revolutionize various domains by harnessing the principles of quantum
mechanics. As quantum hardware and algorithms continue to advance, the
development of high-quality quantum software has become crucial. However,
testing quantum programs poses unique challenges due to the distinctive
characteristics of quantum systems and the complexity of multi-subroutine
programs. In this paper, we address the specific testing requirements of
multi-subroutine quantum programs. We begin by investigating critical
properties through a survey of existing quantum libraries, providing insights
into the challenges associated with testing these programs. Building upon this
understanding, we present a systematic testing process tailored to the
intricacies of quantum programming. The process covers unit testing and
integration testing, with a focus on aspects such as IO analysis, quantum
relation checking, structural testing, behavior testing, and test case
generation. We also introduce novel testing principles and criteria to guide
the testing process. To evaluate our proposed approach, we conduct
comprehensive testing on typical quantum subroutines, including diverse
mutations and randomized inputs. The analysis of failures provides valuable
insights into the effectiveness of our testing methodology. Additionally, we
present case studies on representative multi-subroutine quantum programs,
demonstrating the practical application and effectiveness of our proposed
testing processes, principles, and criteria.Comment: 53 page
Graph Regularized Non-negative Matrix Factorization By Maximizing Correntropy
Non-negative matrix factorization (NMF) has proved effective in many
clustering and classification tasks. The classic ways to measure the errors
between the original and the reconstructed matrix are distance or
Kullback-Leibler (KL) divergence. However, nonlinear cases are not properly
handled when we use these error measures. As a consequence, alternative
measures based on nonlinear kernels, such as correntropy, are proposed.
However, the current correntropy-based NMF only targets on the low-level
features without considering the intrinsic geometrical distribution of data. In
this paper, we propose a new NMF algorithm that preserves local invariance by
adding graph regularization into the process of max-correntropy-based matrix
factorization. Meanwhile, each feature can learn corresponding kernel from the
data. The experiment results of Caltech101 and Caltech256 show the benefits of
such combination against other NMF algorithms for the unsupervised image
clustering
QChecker: Detecting Bugs in Quantum Programs via Static Analysis
Static analysis is the process of analyzing software code without executing
the software. It can help find bugs and potential problems in software that may
only appear at runtime. Although many static analysis tools have been developed
for classical software, due to the nature of quantum programs, these existing
tools are unsuitable for analyzing quantum programs. This paper presents
QChecker, a static analysis tool that supports finding bugs in quantum programs
in Qiskit. QChecker consists of two main modules: a module for extracting
program information based on abstract syntax tree (AST), and a module for
detecting bugs based on patterns. We evaluate the performance of QChecker using
the Bugs4Q benchmark. The evaluation results show that QChecker can effectively
detect various bugs in quantum programs.Comment: This paper will be appeared in the proceedings of the 4th
International Workshop on Quantum Software Engineering (Q-SE 2023) on May 14,
202
- …