Pragmatic source code reuse via execution record and replay
A key problem during copy–paste source code reuse is that, to reuse even a small section of code from a program as opposed to an API, a programmer must include a huge amount of additional source code from elsewhere in the same program. This additional code is notoriously large and complex, and porti...
Gespeichert in:
Veröffentlicht in: | Journal of software : evolution and process 2016-08, Vol.28 (8), p.642-664 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | 664 |
---|---|
container_issue | 8 |
container_start_page | 642 |
container_title | Journal of software : evolution and process |
container_volume | 28 |
creator | Armaly, Ameer McMillan, Collin |
description | A key problem during copy–paste source code reuse is that, to reuse even a small section of code from a program as opposed to an API, a programmer must include a huge amount of additional source code from elsewhere in the same program. This additional code is notoriously large and complex, and portions can only be identified at runtime. In this paper, we propose execution record/replay as a solution to this problem. We describe a novel reuse technique that allows programmers to reuse functions from a C or C++ program, by recording the execution of the program and selectively modifying how its functions are replayed. We have implemented our technique and evaluated it in an empirical study in which eight programmers used our tool to complete four tasks over four hours each. The participants found our technique to be easier than manually reusing the code as part of their project. We also found that the resulting code was smaller and less complex than it would have been had the participants manually reused the code. Copyright © 2016 John Wiley & Sons, Ltd.
Instead of copy‐pasting code into a new program, \texttt{Flashback} makes it possible to reuse functions from previously recorded executions. The two main advantages are (i) the new program can be made much smaller; and (ii) there is no need to port legacy code during reuse. |
doi_str_mv | 10.1002/smr.1790 |
format | Article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_1811847538</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>4149381271</sourcerecordid><originalsourceid>FETCH-LOGICAL-c3310-8289780833abe3d7fb433a05d6762bb3c4ce6a64ece463b12db57b6ffee38be63</originalsourceid><addsrcrecordid>eNp1kE1LAzEQhoMoWGrBn7DgxcvWfG2S4kmKrUKtWhXBS0iys7J1263Jrrb_3pRKwYNzmYfhYWZ4EToluE8wphdh4ftEDvAB6lDMZSq5Iod7luwY9UKY41iC4oxnHXT54M37wjSlS0LdegeJq3NIPLQBkq_SJLAG1zZlvYwzV_s8Mcs84qoymxN0VJgqQO-3d9HL6Pp5eJNO7se3w6tJ6hgjOFVUDaTCijFjgeWysDwiznIhBbWWOe5AGMHBARfMEprbTFpRFABMWRCsi852e1e-_mwhNHoeX13Gk5ooQhSXGVPROt9ZztcheCj0ypcL4zeaYL1NR8d09DadqKY79busYPOvp5_uZn_9MjSw3vvGf2ghmcz063SsH9UbHc7wSE_ZDyoEdDU</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>1811847538</pqid></control><display><type>article</type><title>Pragmatic source code reuse via execution record and replay</title><source>Wiley Online Library Journals Frontfile Complete</source><creator>Armaly, Ameer ; McMillan, Collin</creator><creatorcontrib>Armaly, Ameer ; McMillan, Collin</creatorcontrib><description>A key problem during copy–paste source code reuse is that, to reuse even a small section of code from a program as opposed to an API, a programmer must include a huge amount of additional source code from elsewhere in the same program. This additional code is notoriously large and complex, and portions can only be identified at runtime. In this paper, we propose execution record/replay as a solution to this problem. We describe a novel reuse technique that allows programmers to reuse functions from a C or C++ program, by recording the execution of the program and selectively modifying how its functions are replayed. We have implemented our technique and evaluated it in an empirical study in which eight programmers used our tool to complete four tasks over four hours each. The participants found our technique to be easier than manually reusing the code as part of their project. We also found that the resulting code was smaller and less complex than it would have been had the participants manually reused the code. Copyright © 2016 John Wiley & Sons, Ltd.
Instead of copy‐pasting code into a new program, \texttt{Flashback} makes it possible to reuse functions from previously recorded executions. The two main advantages are (i) the new program can be made much smaller; and (ii) there is no need to port legacy code during reuse.</description><identifier>ISSN: 2047-7473</identifier><identifier>EISSN: 2047-7481</identifier><identifier>DOI: 10.1002/smr.1790</identifier><language>eng</language><publisher>Chichester: Blackwell Publishing Ltd</publisher><subject>execution record and replay ; reusable execution ; source code reuse</subject><ispartof>Journal of software : evolution and process, 2016-08, Vol.28 (8), p.642-664</ispartof><rights>Copyright © 2016 John Wiley & Sons, Ltd.</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c3310-8289780833abe3d7fb433a05d6762bb3c4ce6a64ece463b12db57b6ffee38be63</citedby><cites>FETCH-LOGICAL-c3310-8289780833abe3d7fb433a05d6762bb3c4ce6a64ece463b12db57b6ffee38be63</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktopdf>$$Uhttps://onlinelibrary.wiley.com/doi/pdf/10.1002%2Fsmr.1790$$EPDF$$P50$$Gwiley$$H</linktopdf><linktohtml>$$Uhttps://onlinelibrary.wiley.com/doi/full/10.1002%2Fsmr.1790$$EHTML$$P50$$Gwiley$$H</linktohtml><link.rule.ids>314,776,780,1411,27903,27904,45553,45554</link.rule.ids></links><search><creatorcontrib>Armaly, Ameer</creatorcontrib><creatorcontrib>McMillan, Collin</creatorcontrib><title>Pragmatic source code reuse via execution record and replay</title><title>Journal of software : evolution and process</title><addtitle>J. Softw. Evol. and Proc</addtitle><description>A key problem during copy–paste source code reuse is that, to reuse even a small section of code from a program as opposed to an API, a programmer must include a huge amount of additional source code from elsewhere in the same program. This additional code is notoriously large and complex, and portions can only be identified at runtime. In this paper, we propose execution record/replay as a solution to this problem. We describe a novel reuse technique that allows programmers to reuse functions from a C or C++ program, by recording the execution of the program and selectively modifying how its functions are replayed. We have implemented our technique and evaluated it in an empirical study in which eight programmers used our tool to complete four tasks over four hours each. The participants found our technique to be easier than manually reusing the code as part of their project. We also found that the resulting code was smaller and less complex than it would have been had the participants manually reused the code. Copyright © 2016 John Wiley & Sons, Ltd.
Instead of copy‐pasting code into a new program, \texttt{Flashback} makes it possible to reuse functions from previously recorded executions. The two main advantages are (i) the new program can be made much smaller; and (ii) there is no need to port legacy code during reuse.</description><subject>execution record and replay</subject><subject>reusable execution</subject><subject>source code reuse</subject><issn>2047-7473</issn><issn>2047-7481</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2016</creationdate><recordtype>article</recordtype><recordid>eNp1kE1LAzEQhoMoWGrBn7DgxcvWfG2S4kmKrUKtWhXBS0iys7J1263Jrrb_3pRKwYNzmYfhYWZ4EToluE8wphdh4ftEDvAB6lDMZSq5Iod7luwY9UKY41iC4oxnHXT54M37wjSlS0LdegeJq3NIPLQBkq_SJLAG1zZlvYwzV_s8Mcs84qoymxN0VJgqQO-3d9HL6Pp5eJNO7se3w6tJ6hgjOFVUDaTCijFjgeWysDwiznIhBbWWOe5AGMHBARfMEprbTFpRFABMWRCsi852e1e-_mwhNHoeX13Gk5ooQhSXGVPROt9ZztcheCj0ypcL4zeaYL1NR8d09DadqKY79busYPOvp5_uZn_9MjSw3vvGf2ghmcz063SsH9UbHc7wSE_ZDyoEdDU</recordid><startdate>201608</startdate><enddate>201608</enddate><creator>Armaly, Ameer</creator><creator>McMillan, Collin</creator><general>Blackwell Publishing Ltd</general><general>Wiley Subscription Services, Inc</general><scope>BSCLL</scope><scope>AAYXX</scope><scope>CITATION</scope><scope>7SC</scope><scope>8FD</scope><scope>JQ2</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope></search><sort><creationdate>201608</creationdate><title>Pragmatic source code reuse via execution record and replay</title><author>Armaly, Ameer ; McMillan, Collin</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c3310-8289780833abe3d7fb433a05d6762bb3c4ce6a64ece463b12db57b6ffee38be63</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2016</creationdate><topic>execution record and replay</topic><topic>reusable execution</topic><topic>source code reuse</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>Armaly, Ameer</creatorcontrib><creatorcontrib>McMillan, Collin</creatorcontrib><collection>Istex</collection><collection>CrossRef</collection><collection>Computer and Information Systems Abstracts</collection><collection>Technology Research Database</collection><collection>ProQuest Computer Science Collection</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><jtitle>Journal of software : evolution and process</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Armaly, Ameer</au><au>McMillan, Collin</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Pragmatic source code reuse via execution record and replay</atitle><jtitle>Journal of software : evolution and process</jtitle><addtitle>J. Softw. Evol. and Proc</addtitle><date>2016-08</date><risdate>2016</risdate><volume>28</volume><issue>8</issue><spage>642</spage><epage>664</epage><pages>642-664</pages><issn>2047-7473</issn><eissn>2047-7481</eissn><abstract>A key problem during copy–paste source code reuse is that, to reuse even a small section of code from a program as opposed to an API, a programmer must include a huge amount of additional source code from elsewhere in the same program. This additional code is notoriously large and complex, and portions can only be identified at runtime. In this paper, we propose execution record/replay as a solution to this problem. We describe a novel reuse technique that allows programmers to reuse functions from a C or C++ program, by recording the execution of the program and selectively modifying how its functions are replayed. We have implemented our technique and evaluated it in an empirical study in which eight programmers used our tool to complete four tasks over four hours each. The participants found our technique to be easier than manually reusing the code as part of their project. We also found that the resulting code was smaller and less complex than it would have been had the participants manually reused the code. Copyright © 2016 John Wiley & Sons, Ltd.
Instead of copy‐pasting code into a new program, \texttt{Flashback} makes it possible to reuse functions from previously recorded executions. The two main advantages are (i) the new program can be made much smaller; and (ii) there is no need to port legacy code during reuse.</abstract><cop>Chichester</cop><pub>Blackwell Publishing Ltd</pub><doi>10.1002/smr.1790</doi><tpages>23</tpages></addata></record> |
fulltext | fulltext |
identifier | ISSN: 2047-7473 |
ispartof | Journal of software : evolution and process, 2016-08, Vol.28 (8), p.642-664 |
issn | 2047-7473 2047-7481 |
language | eng |
recordid | cdi_proquest_journals_1811847538 |
source | Wiley Online Library Journals Frontfile Complete |
subjects | execution record and replay reusable execution source code reuse |
title | Pragmatic source code reuse via execution record and replay |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-21T17%3A52%3A54IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Pragmatic%20source%20code%20reuse%20via%20execution%20record%20and%20replay&rft.jtitle=Journal%20of%20software%20:%20evolution%20and%20process&rft.au=Armaly,%20Ameer&rft.date=2016-08&rft.volume=28&rft.issue=8&rft.spage=642&rft.epage=664&rft.pages=642-664&rft.issn=2047-7473&rft.eissn=2047-7481&rft_id=info:doi/10.1002/smr.1790&rft_dat=%3Cproquest_cross%3E4149381271%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=1811847538&rft_id=info:pmid/&rfr_iscdi=true |