|
ABSTRACT
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.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
|
| |
2
|
|
| |
3
|
|
| |
4
|
|
 |
5
|
Don Batory , Vivek Singhal , Marty Sirkin , Jeff Thomas, Scalable software libraries, Proceedings of the 1st ACM SIGSOFT symposium on Foundations of software engineering, p.191-199, December 08-10, 1993, Los Angeles, California, United States
|
| |
6
|
|
| |
7
|
Biggerstaff, T. "The library scaling problem and the limits of concrete component reuse," 3rd Int'l. Conf. on Software Reuse, ICSR'94, 1994, pp. 102--109.
|
| |
8
|
Bracha G. et al. "JSR 14: Add Generic Types to the Java™ Programming Language," Java Community Process, http://www.jcp.org/en/jsr/detail?id=14
|
| |
9
|
|
| |
10
|
|
| |
11
|
Case Studies on XVCL Website, http://fxvcl.sourceforge.net/CaseStudy.htm
|
| |
12
|
|
| |
13
|
|
| |
14
|
|
| |
15
|
|
| |
16
|
|
 |
17
|
Ronald Garcia , Jaakko Jarvi , Andrew Lumsdaine , Jeremy G. Siek , Jeremiah Willcock, A comparative study of language support for generic programming, Proceedings of the 18th annual ACM SIGPLAN conference on Object-oriented programing, systems, languages, and applications, October 26-30, 2003, Anaheim, California, USA
|
| |
18
|
Home page of SGI STL, http://www.sgi.com/tech/stl/
|
 |
19
|
|
| |
20
|
|
| |
21
|
|
 |
22
|
Anssi Karhinen , Alexander Ran , Tapio Tallgren, Configuring designs for reuse, Proceedings of the 19th international conference on Software engineering, p.701-710, May 17-23, 1997, Boston, Massachusetts, United States
[doi> 10.1145/253228.253839]
|
 |
23
|
|
| |
24
|
|
| |
25
|
|
| |
26
|
|
| |
27
|
Thompson, S., "Higher Order + Polymorphic = Reusable", unpublished manuscript available from the Computing Laboratory, University of Kent. http://www.cs.ukc.ac.uk/pubs/1997
|
| |
28
|
"XML-based Variant Configuration Language," XVCL Website, http://fxvcl.sourceforge.net
|
| |
29
|
|
| |
30
|
Zhang, H. and Jarzabek, S., "An XVCL-based Approach to Software Product Line Development", Proc. 15th International Conference on Software Engineering and Knowledge Engineering (SEKE'03), San Francisco, USA, 1-3 July, 2003.
|
CITED BY 10
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stan Jarzabek , Ulf Pettersson, Project-driven university-industry collaboration: modes of collaboration, outcomes, benefits, success factors, Proceedings of the 2006 international workshop on Summit on software engineering education, May 20-20, 2006, Shanghai, China
|
|
|
|
|
|
|
|
|
Hamid Abdul Basit , Simon J. Puglisi , William F. Smyth , Andrew Turpin , Stan Jarzabek, 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, September 03-07, 2007, Dubrovnik, Croatia
|
|