Li, Huiqing, Thompson, Simon (2011) Incremental Code Clone Detection and Elimination for Erlang Programs. In: Giannakopoulou, Dimitra and Orejas, Fernando, eds. Proceedings of the Conference on Fundamental Approaches to Software Engineering (FASE'11). Lecture Notes in Computer Science . pp. 182-196. Springer (KAR id:30770)
PDF
Language: English |
|
Download this file (PDF/428kB) |
|
Request a format suitable for use with assistive technology e.g. a screenreader | |
Official URL: http://www.cs.kent.ac.uk/pubs/2011/3087 |
Abstract
A well-known bad code smell in refactoring and software maintenance is the existence of code clones, which are code fragments that are identical or similar to one another. This paper describes an approach to incrementally detecting 'similar' code based on the notion of least-general common abstraction, or anti-unification, as well as a framework for user-controlled incremental elimination of code clones within the context of Erlang programs. The clone detection algorithm proposed in this paper achieves 100 precision, high recall rate, and is user-customisable regarding the granularity of the clone classes reported. By detecting and eliminating clones in an incremental way, we make it possible for the tool to be used in an interactive way even with large codebases. Both the clone detection and elimination functionalities are integrated with Wrangler, a tool for interactive refactoring of Erlang programs. We evaluate the approach with various case studies.
Item Type: | Conference or workshop item (UNSPECIFIED) |
---|---|
Uncontrolled keywords: | determinacy analysis, Craig interpolants |
Subjects: | Q Science > QA Mathematics (inc Computing science) > QA 76 Software, computer programming, |
Divisions: | Divisions > Division of Computing, Engineering and Mathematical Sciences > School of Computing |
Depositing User: | Huiqing Li |
Date Deposited: | 21 Sep 2012 09:49 UTC |
Last Modified: | 16 Nov 2021 10:08 UTC |
Resource URI: | https://kar.kent.ac.uk/id/eprint/30770 (The current URI for this page, for reference purposes) |
- Link to SensusAccess
- Export to:
- RefWorks
- EPrints3 XML
- BibTeX
- CSV
- Depositors only (login required):