#REDIRECT [[Source-to-source compiler#Recursive transcompiling]]
Recursive Transcompiling is the process of applying the notion of [[Source-to-source compiler|Transcompiling]] recursively, to create a pipeline of transformations which repeatedly turn one technology into another.
{{R from merge}}
By repeating this process, one can turn A -> B -> C -> D -> E -> F and then back into A(v2). Some information will be preserved through this pipeline, from A -> A(v2), and that information (at an abstract level) demonstrates what each of the components A-F agree on.<ref>Digital Research (1981): ''XLT86 - 8080 to 8086 Assembly Language Translator - User's Guide''. Digital Research Inc, Pacific Grove ([http://www.s100computers.com/Software%20Folder/Assembler%20Collection/Digital%20Research%20XLT86%20Manual.pdf]).</ref>
{{R to section}}
In each of the different versions that the [[Source-to-source compiler|Transcompiler]] pipeline produces, that information is preserved<ref>{{cite web | url=http://martinfowler.com/bliki/TransparentCompilation.html | title=Transparent Compilation | date=February 12, 2013 | accessdate=February 13, 2013 | author=Fowler, Martin}}</ref>. It might take on many different shapes and sizes, but by the time it comes back to A (v2), having been transcompiled 6 times in the pipeline above, the information returns to it's original state.
This information which survives the transform through each format, from A-F-A(v2), is (by definition) derivative content or [[derivative code]].
Recursive transcompiling takes advantage of the fact that Transcompilers may either keep translated code as close to the source code as possible to ease development and [[debugging]] of the original source code, or else they may change the structure of the original code so much, that the translated code does not look like the source code.<ref>{{cite web | url=http://martinfowler.com/bliki/TransparentCompilation.html | title=Transparent Compilation | date=February 12, 2013 | accessdate=February 13, 2013 | author=Fowler, Martin}}</ref> There are also debugging utilities that map the transpiled source code back to the original code; for example, [[JavaScript]] source maps allow mapping of the JavaScript code executed by a [[web browser]] back to the original source in a transpiled-to-JavaScript language.<ref name="javascript-sourcemaps">{{cite web | url=http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/ | title=Introduction to JavaScript Source Maps | publisher=html5rocks.com | date=21 March 2012 | accessdate=21 January 2015 | author=Seddon, Ryan}}</ref>
{{stub}}
[[Category:Computer programming]]
|