Loading…

Beyond templates: a study of clones in the STL and some general implications

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...

Full description

Saved in:
Bibliographic Details
Main Authors: Basit, H.A., Rajapakse, D.C., Jarzabek, S.
Format: Conference Proceeding
Language:English
Subjects:
Online Access:Request full text
Tags: Add Tag
No Tags, Be the first to tag this record!
cited_by
cites
container_end_page 459
container_issue
container_start_page 451
container_title
container_volume
creator Basit, H.A.
Rajapakse, D.C.
Jarzabek, S.
description 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.
doi_str_mv 10.1109/ICSE.2005.1553588
format conference_proceeding
fullrecord <record><control><sourceid>ieee_CHZPO</sourceid><recordid>TN_cdi_ieee_primary_1553588</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><ieee_id>1553588</ieee_id><sourcerecordid>1553588</sourcerecordid><originalsourceid>FETCH-LOGICAL-i105t-6c728b28863035c95153769080a466e680e0d94b628f4a08da274d5d509498ec3</originalsourceid><addsrcrecordid>eNotkMtOwzAURC0eEmnhAxAb_0DC9eM6NjuIClSKxKJlXbnJDRjlUcVhkb8nEl3NLM6cxTB2LyATAtzjtthtMgmAmUBUaO0FS5ZmUyElXrKVQIdOOaPkFUtA5pCixPyGrWL8AQCjnUtY-ULz0Nd8ou7U-oniE_c8Tr_1zIeGV-3QU-Sh59M38d2-5H5h49AR_6KeRt_ysOxC5acw9PGWXTe-jXR3zjX7fN3si_e0_HjbFs9lGgTglJoql_YorTUKFFYOBarcOLDgtTFkLBDUTh-NtI32YGsvc11jjeC0s1SpNXv49wYiOpzG0PlxPpxfUH-JX00N</addsrcrecordid><sourcetype>Publisher</sourcetype><iscdi>true</iscdi><recordtype>conference_proceeding</recordtype></control><display><type>conference_proceeding</type><title>Beyond templates: a study of clones in the STL and some general implications</title><source>IEEE Xplore All Conference Series</source><creator>Basit, H.A. ; Rajapakse, D.C. ; Jarzabek, S.</creator><creatorcontrib>Basit, H.A. ; Rajapakse, D.C. ; Jarzabek, S.</creatorcontrib><description>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.</description><identifier>ISSN: 0270-5257</identifier><identifier>ISBN: 1595939632</identifier><identifier>EISSN: 1558-1225</identifier><identifier>DOI: 10.1109/ICSE.2005.1553588</identifier><language>eng</language><publisher>IEEE</publisher><subject>Cloning ; Computer languages ; Computer science ; Java ; Permission ; Software design ; Software engineering ; Software libraries ; Software maintenance ; Software reusability</subject><ispartof>Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005, 2005, p.451-459</ispartof><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://ieeexplore.ieee.org/document/1553588$$EHTML$$P50$$Gieee$$H</linktohtml><link.rule.ids>309,310,776,780,785,786,4035,4036,23910,23911,25119,27904,54533,54910</link.rule.ids><linktorsrc>$$Uhttps://ieeexplore.ieee.org/document/1553588$$EView_record_in_IEEE$$FView_record_in_$$GIEEE</linktorsrc></links><search><creatorcontrib>Basit, H.A.</creatorcontrib><creatorcontrib>Rajapakse, D.C.</creatorcontrib><creatorcontrib>Jarzabek, S.</creatorcontrib><title>Beyond templates: a study of clones in the STL and some general implications</title><title>Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005</title><addtitle>ICSE</addtitle><description>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.</description><subject>Cloning</subject><subject>Computer languages</subject><subject>Computer science</subject><subject>Java</subject><subject>Permission</subject><subject>Software design</subject><subject>Software engineering</subject><subject>Software libraries</subject><subject>Software maintenance</subject><subject>Software reusability</subject><issn>0270-5257</issn><issn>1558-1225</issn><isbn>1595939632</isbn><fulltext>true</fulltext><rsrctype>conference_proceeding</rsrctype><creationdate>2005</creationdate><recordtype>conference_proceeding</recordtype><sourceid>6IE</sourceid><recordid>eNotkMtOwzAURC0eEmnhAxAb_0DC9eM6NjuIClSKxKJlXbnJDRjlUcVhkb8nEl3NLM6cxTB2LyATAtzjtthtMgmAmUBUaO0FS5ZmUyElXrKVQIdOOaPkFUtA5pCixPyGrWL8AQCjnUtY-ULz0Nd8ou7U-oniE_c8Tr_1zIeGV-3QU-Sh59M38d2-5H5h49AR_6KeRt_ysOxC5acw9PGWXTe-jXR3zjX7fN3si_e0_HjbFs9lGgTglJoql_YorTUKFFYOBarcOLDgtTFkLBDUTh-NtI32YGsvc11jjeC0s1SpNXv49wYiOpzG0PlxPpxfUH-JX00N</recordid><startdate>2005</startdate><enddate>2005</enddate><creator>Basit, H.A.</creator><creator>Rajapakse, D.C.</creator><creator>Jarzabek, S.</creator><general>IEEE</general><scope>6IE</scope><scope>6IH</scope><scope>CBEJK</scope><scope>RIE</scope><scope>RIO</scope></search><sort><creationdate>2005</creationdate><title>Beyond templates: a study of clones in the STL and some general implications</title><author>Basit, H.A. ; Rajapakse, D.C. ; Jarzabek, S.</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-i105t-6c728b28863035c95153769080a466e680e0d94b628f4a08da274d5d509498ec3</frbrgroupid><rsrctype>conference_proceedings</rsrctype><prefilter>conference_proceedings</prefilter><language>eng</language><creationdate>2005</creationdate><topic>Cloning</topic><topic>Computer languages</topic><topic>Computer science</topic><topic>Java</topic><topic>Permission</topic><topic>Software design</topic><topic>Software engineering</topic><topic>Software libraries</topic><topic>Software maintenance</topic><topic>Software reusability</topic><toplevel>online_resources</toplevel><creatorcontrib>Basit, H.A.</creatorcontrib><creatorcontrib>Rajapakse, D.C.</creatorcontrib><creatorcontrib>Jarzabek, S.</creatorcontrib><collection>IEEE Electronic Library (IEL) Conference Proceedings</collection><collection>IEEE Proceedings Order Plan (POP) 1998-present by volume</collection><collection>IEEE Xplore All Conference Proceedings</collection><collection>IEEE/IET Electronic Library</collection><collection>IEEE Proceedings Order Plans (POP) 1998-present</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext_linktorsrc</fulltext></delivery><addata><au>Basit, H.A.</au><au>Rajapakse, D.C.</au><au>Jarzabek, S.</au><format>book</format><genre>proceeding</genre><ristype>CONF</ristype><atitle>Beyond templates: a study of clones in the STL and some general implications</atitle><btitle>Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005</btitle><stitle>ICSE</stitle><date>2005</date><risdate>2005</risdate><spage>451</spage><epage>459</epage><pages>451-459</pages><issn>0270-5257</issn><eissn>1558-1225</eissn><isbn>1595939632</isbn><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.</abstract><pub>IEEE</pub><doi>10.1109/ICSE.2005.1553588</doi><tpages>9</tpages></addata></record>
fulltext fulltext_linktorsrc
identifier ISSN: 0270-5257
ispartof Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005, 2005, p.451-459
issn 0270-5257
1558-1225
language eng
recordid cdi_ieee_primary_1553588
source IEEE Xplore All Conference Series
subjects Cloning
Computer languages
Computer science
Java
Permission
Software design
Software engineering
Software libraries
Software maintenance
Software reusability
title Beyond templates: a study of clones in the STL and some general implications
url http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-24T06%3A55%3A26IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-ieee_CHZPO&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=proceeding&rft.atitle=Beyond%20templates:%20a%20study%20of%20clones%20in%20the%20STL%20and%20some%20general%20implications&rft.btitle=Proceedings.%2027th%20International%20Conference%20on%20Software%20Engineering,%202005.%20ICSE%202005&rft.au=Basit,%20H.A.&rft.date=2005&rft.spage=451&rft.epage=459&rft.pages=451-459&rft.issn=0270-5257&rft.eissn=1558-1225&rft.isbn=1595939632&rft_id=info:doi/10.1109/ICSE.2005.1553588&rft_dat=%3Cieee_CHZPO%3E1553588%3C/ieee_CHZPO%3E%3Cgrp_id%3Ecdi_FETCH-LOGICAL-i105t-6c728b28863035c95153769080a466e680e0d94b628f4a08da274d5d509498ec3%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_id=info:pmid/&rft_ieee_id=1553588&rfr_iscdi=true