Clone Detection via Structural Abstraction

  • Will Evans | University of British Columbia

Software clones are repeated fragments of code. They arise, for example, when one uses a copy-paste programming style and they create problems for software maintenance, clarity, and ownership. Finding and removing or updating clones can help solve these problems. Rewriting them as a single procedure, called procedural abstraction, can help reduce the size of a program. I will talk about a tool, called Asta, that finds clones that are not identical but, nonetheless, can be abstracted as procedures. The procedure for a set of clones may take different parameters in order to represent all of the clones in the set. These parameters may be structural rather than simply lexical. Asta finds these types of clones by looking for repeated subtrees in the abstract syntax tree of the program.

Joint work with Christopher W. Fraser and Fei Ma

Speaker Details

William Evans received a PhD in computer science from the University of California at Berkeley in 1994. He was an assistant professor at the University of Arizona and is currently an associate professor at the University of British Columbia. He works mainly on computational geometry, information theory, code compression, clone detection, and theoretical computer science in general.

    • Portrait of Jeff Running

      Jeff Running