2,027 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.
On Repairing Quantum Programs Using ChatGPT
Automated Program Repair (APR) is a vital area in software engineering aimed
at generating automatic patches for vulnerable programs. While numerous
techniques have been proposed for repairing classical programs, the realm of
quantum programming lacks a comparable automated repair technique. In this
initial exploration, we investigate the use of ChatGPT for quantum program
repair and evaluate its performance on Bugs4Q, a benchmark suite of quantum
program bugs. Our findings demonstrate the feasibility of employing ChatGPT for
quantum program repair. Specifically, we assess ChatGPT's ability to address
bugs within the Bugs4Q benchmark, revealing its success in repairing 29 out of
38 bugs. This research represents a promising step towards automating the
repair process for quantum programs.Comment: The 5th International Workshop on Quantum Software Engineering (Q-SE
2024
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
- …