SIGSOFT '93 Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering
Refactoring object-oriented frameworks
Refactoring object-oriented frameworks
The mythical man-month (anniversary ed.)
The mythical man-month (anniversary ed.)
Framing software reuse: lessons from the real world
Framing software reuse: lessons from the real world
ICSE '97 Proceedings of the 19th international conference on Software engineering
ICSE '94 Proceedings of the 16th international conference on Software engineering
Refactoring: improving the design of existing code
Refactoring: improving the design of existing code
Generative programming: methods, tools, and applications
Generative programming: methods, tools, and applications
STL tutorial and reference guide, second edition: C++ programming with the standard template library
STL tutorial and reference guide, second edition: C++ programming with the standard template library
Design and implementation of generics for the .NET Common language runtime
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
An Empirical Analysis of C Preprocessor Use
IEEE Transactions on Software Engineering
CCFinder: a multilinguistic token-based code clone detection system for large scale source code
IEEE Transactions on Software Engineering
Substring Matching for Clone Detection and Change Tracking
ICSM '94 Proceedings of the International Conference on Software Maintenance
Adaptable Components for Software Product Line Engineering
SPLC 2 Proceedings of the Second International Conference on Software Product Lines
On finding duplication and near-duplication in large software systems
WCRE '95 Proceedings of the Second Working Conference on Reverse Engineering
Partial Redesign of Java Software Systems Based on Clone Analysis
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Advanced Clone-Analysis to Support Object-Oriented System Refactoring
WCRE '00 Proceedings of the Seventh Working Conference on Reverse Engineering (WCRE'00)
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Comprehending Reality " Practical Barriers to Industrial Adoption of Software Maintenance Automation
IWPC '03 Proceedings of the 11th IEEE International Workshop on Program Comprehension
Eliminating redundancies with a "composition with adaptation" meta-programming technique
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
A comparative study of language support for generic programming
OOPSLA '03 Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications
An XVCL Approach to Handling Variants: A KWIC Product Line Example
APSEC '03 Proceedings of the Tenth Asia-Pacific Software Engineering Conference Software Engineering Conference
Detecting higher-level similarity patterns in programs
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
An empirical study of code clone genealogies
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Industrial experience with building a web portal product line using a lightweight, reactive approach
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Using a clone genealogy extractor for understanding and supporting evolution of code clones
MSR '05 Proceedings of the 2005 international workshop on Mining software repositories
Research journey towards industrial application of reuse technique
Proceedings of the 28th international conference on Software engineering
Proceedings of the 28th international conference on Software engineering
Proceedings of the 2006 international workshop on Summit on software engineering education
Efficient token based clone detection with flexible tokenization
Proceedings of the the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
Efficient token based clone detection with flexible tokenization
The 6th Joint Meeting on European software engineering conference and the ACM SIGSOFT symposium on the foundations of software engineering: companion papers
Software Reuse beyond Components with XVCL (Tutorial)
Generative and Transformational Techniques in Software Engineering II
"Cloning considered harmful" considered harmful: patterns of cloning in software
Empirical Software Engineering
Code clones in feature-oriented software product lines
GPCE '10 Proceedings of the ninth international conference on Generative programming and component engineering
University-industry collaboration journey towards product lines
ICSR'11 Proceedings of the 12th international conference on Top productivity through software reuse
Applying a generative technique for enhanced genericity and maintainability on the J2EE platform
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
A fuzzy model for high-level clones in software
ACM SIGSOFT Software Engineering Notes
Hi-index | 0.00 |
Templates (or generics) help us write compact, generic code, which aids both reuse and maintenance. The STL is a powerful example of how templates help achieve these goals. Still, our study of the STL revealed substantial, and in our opinion, counter-productive repetitions (so-called clones) across groups of similar class or function templates. Clones occurred, as variations across these similar program structures were irregular and could not be unified by suitable template parameters in a natural way. We encountered similar problems in other class libraries as well as in application programs, written in a range of programming languages. In the paper, we present quantitative and qualitative results from our study. We argue that the difficulties we encountered affect programs in general. We present a solution that can treat such template-unfriendly cases of redundancies at the meta-level, complementing and extending the power of language features, such as templates, in areas of generic programming.