Source-to-source compiler: Difference between revisions

Content deleted Content added
Digital Research XLT86: added wikilink
Line 27:
 
=== Digital Research XLT86 ===
{{anchor|XLT86}}Much more sophisticated and the first to introduce [[optimizing compiler]] technologies into the source translation process was [[Digital Research]]'s XLT86&nbsp;1.0 in September 1981. XLT86&nbsp;1.1 was available by April 1982<!-- possibly earlier -->.<ref name="Barry_1982_XLT86"/> The program was written by [[Gary Kildall]]<ref name="Freiberger_1981_Translators"/><ref name="Swaine_1982_CPM"/><ref name="Bunnell_1982_CPM"/><ref name="Laws_2014_IEEE"/> and translated {{Not a typo|.ASM}} source code for the Intel 8080 processor (in a format compatible with ASM, MAC or RMAC assemblers) into {{Not a typo|[[A86 (software)|.A86]]}} source code for the 8086 (compatible with ASM86). Using [[global data flow analysis]] on 8080 register usage,<ref name="Digital_Research_1981_News"/><ref name="Freiberger_1981_Translators"/><ref name="Kildall_1973_Optimization"/><ref name="Kildall_1972_Optimization"/> the five-phase [[multi-pass compiler|multi-pass]] translator would also optimize the output for code size and take care of calling conventions (CP/M-80 [[BDOS]] calls were mapped into BDOS calls for [[CP/M-86]]), so that CP/M-80 and MP/M-80 programs could be ported to the CP/M-86 and [[MP/M-86]] platforms automatically. XLT86.COM itself was written in [[PL/I-80]] for CP/M-80 platforms.<ref name="XLT86_1981"/><ref name="Taylor_1982_Translators"/><ref name="Barry_1982_XLT86"/><ref name="Digital_Research_XLT86"/> The program occupied 30&nbsp;KB of RAM for itself plus additional memory for the [[control-flow graph|program graph]]. On a 64&nbsp;KB memory system, the maximum source file size supported was about 6&nbsp;KB,<ref name="XLT86_1981"/><ref name="Taylor_1982_Translators"/><ref name="Goldfarb_1982"/><ref name="Barry_1982_XLT86"/> so that larger files had to be broken down accordingly before translation.<ref name="Taylor_1982_Translators"/><ref name="Barry_1982_XLT86"/> Alternatively, XLT86 was also available for [[Digital Equipment Corporation|DEC]] [[VAX/VMS]].<ref name="Taylor_1982_Translators"/><ref name="Barry_1982_XLT86"/> Although XLT86's input and output worked on source-code level, the translator's in-memory representation of the program and the applied code optimizing technologies set the foundation to [[binary recompilation]].<ref name="Wharton_1994"/><ref name="SPA_1995"/><ref name="Swaine_1997"/>
 
=== Others ===