Quantum computers are becoming a reality. They have the potential to accelerate many computationally complex processes, and also to find better results in complex solution land- scapes. However, the kinds of problems which these computers are currently a good fit for, and the ways to express those problems, are substantially different from the kinds of prob- lems and expressions used in classical computing. Quantum annealers, in particular, are an interesting kind of quantum computers to considering how they are promising in solving spe- cific types of problems efficiently in the near term. However, they are also the most foreign compared to classical programs, as they require a different kind of computational thinking.In my work, I have created a novel formulation of the well known software engineering prob- lem of code clone detection by expressing it as an optimization problem in the framework of quantum annealing, a type of quantum computing. It also serves as an example of how soft- ware engineering problems can be formulated to be solved using quantum annealing. This thesis elaborates on how I rendered the code clone detection problem as a subgraph isomor- phism problem and formulated it as a quadratic optimization. The formulation compares the Abstract Syntax Tree (AST) representations of two given code fragments and reports an energy value indicative of their similarity. It is then implemented on a quantum annealer.
The motivation behind this research goes well beyond code duplicate detection: this novel approach to thinking about software engineering problems as optimization problems paves the way into expressing them as problems that an be solved using optimization architectures like quantum annealing.