<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM15Reichenbach</id>
	<title>WG211/M15Reichenbach - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://mw.hh.se/wg211/index.php?action=history&amp;feed=atom&amp;title=WG211%2FM15Reichenbach"/>
	<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M15Reichenbach&amp;action=history"/>
	<updated>2026-04-05T20:55:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.5</generator>
	<entry>
		<id>http://mw.hh.se/wg211/index.php?title=WG211/M15Reichenbach&amp;diff=1274&amp;oldid=prev</id>
		<title>Eric: Created page with &quot;&#039;&#039;Copy and Paste Redeemed&#039;&#039; by Christoph Reichenbach  Software development and, especially, generative programming leverage abstractions as a means for re-using information.  How...&quot;</title>
		<link rel="alternate" type="text/html" href="http://mw.hh.se/wg211/index.php?title=WG211/M15Reichenbach&amp;diff=1274&amp;oldid=prev"/>
		<updated>2015-09-07T15:11:06Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;Copy and Paste Redeemed&amp;#039;&amp;#039; by Christoph Reichenbach  Software development and, especially, generative programming leverage abstractions as a means for re-using information.  How...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;Copy and Paste Redeemed&amp;#039;&amp;#039; by Christoph Reichenbach&lt;br /&gt;
&lt;br /&gt;
Software development and, especially, generative programming leverage&lt;br /&gt;
abstractions as a means for re-using information.  However, such&lt;br /&gt;
abstractions can be challenging to develop and maintain.  An&lt;br /&gt;
alternative is to re-use existing source code by copy-paste-modify, a&lt;br /&gt;
methodology in which source code is explicitly duplicated and one of&lt;br /&gt;
the duplicates adapted for a new but similar purpose.&lt;br /&gt;
&lt;br /&gt;
We have conducted a user study that suggest that software engineers&lt;br /&gt;
find copy-paste-modify to be faster than manual abstraction for common&lt;br /&gt;
re-use tasks.  We therefore propose that software engineers should&lt;br /&gt;
forego hand-written abstractions in favour of copying and pasting.  To&lt;br /&gt;
address the potential maintenance and comprehension challenges caused&lt;br /&gt;
by massive code duplication, we propose a software tool that `folds&lt;br /&gt;
together&amp;#039; similar pieces of code and automatically creates suitable&lt;br /&gt;
abstrations.  This allows software developers to get the best of both&lt;br /&gt;
worlds: custom abstraction, together with easy re-use.&lt;br /&gt;
&lt;br /&gt;
We have evaluated the tool with a number of abstraction tasks taken&lt;br /&gt;
from popular Open Source projects and found it to be effective;&lt;br /&gt;
moreover, project maintainers are generally willing to incorporate&lt;br /&gt;
abstractions introduced by our tool into their revision control&lt;br /&gt;
repositories.&lt;/div&gt;</summary>
		<author><name>Eric</name></author>
	</entry>
</feed>