Content deleted Content added
No edit summary |
m clean up |
||
Line 1:
{{Distinguish|Cross compiler|Compiler-compiler|Transcoder|Transputer}}▼
{{Short description|Translator that takes source code of a program and produces an equivalent source code in the same or a different programming language}}
▲{{Distinguish|Cross compiler|Compiler-compiler|Transcoder|Transputer}}
{{Use dmy dates|date=January 2020|cs1-dates=y}}
{{Use list-defined references|date=January 2022}}
Line 11:
Transcompilers may either keep translated code structure as close to the source code as possible to ease development and [[debugging]] of the original source code or may change the structure of the original code so much that the translated code does not look like the source code.<ref name="Fowler_2013"/> There are also debugging utilities that map the transcompiled source code back to the original code; for example, the [[JavaScript]] Source Map standard{{Citation needed|reason=Not a standard|date=September 2020}} allows mapping of the JavaScript code executed by a [[web browser]] back to the original source when the JavaScript code was, for example, minified or produced by a transcompiled-to-JavaScript language.{{Citation needed|date=September 2020}}
Examples include [[Google Closure Tools|Closure Compiler]], [[CoffeeScript]], [[Dart (programming language)|Dart]], [[Haxe]], [[
== {{Anchor|Translator}}Assembly language translators ==
Line 203:
<ref name="Warren_1982_Sorcim">{{cite journal |author-first=Jim C. |author-last=Warren, Jr. |author-link=Jim Warren (computer specialist) |title=Sorcim' Somethin' |series=Rumors Mongered Here |date=July 1982 |journal=[[Silicon Gulch Gazette]] |volume=7<!-- derived, not printed on journal --> |number=30<!-- absolute number, not relative to volume --> |publisher=[[West Coast Computer Faire|Computer Faire]] |___location=Woodside, California, USA |pages=1, 2, 4, 6, 11, 14, 15 [11<!-- quote taken from page 11 -->] |url=https://amaus.net/static//S100/MAGAZINE/silicon%20gulch/30%20198207%20silicon%20gulch.pdf |access-date=2020-01-15 |quote=[…] [[Sorcim]] just completed the purchase of [[Innovative Software Applications|ISA]]. […] They have also had an 8080-to-8086 translator – Trans-86 – operational for over a year […]}}</ref>
<ref name="CompuPro_1982">{{cite magazine |title=CompuPro |type=Advertisement |magazine=[[PC: The Independent Guide To IBM Computers]] |issn=<!-- not assigned at this time, but already applied for --> |volume=1 |number=1 |id=Premiere/Charter issue |publisher=[[Software Communications, Inc.]] |date=February–March 1982 |pages=70–71 |url=https://archive.org/details/bub_gb_w_OhaFDePS4C |access-date=2020-01-23 |quote=[…] WHY? FLEXIBILITY. [[CompuPro]]'s 85/88 CPU runs CP/M 80, 86, MP/M II and MP/M 86. We offer WORDSTAR dBASE II SUPERCALC a host of languages, 8080 to 8088 translators and more! COMPATIBILITY. Our systems can use CP/M 2.2 utilities to write programs for the IBM PC. You simply create 8088 source (either write it with your favorite CP/M 80 editor or translate it with [[Sorcim]]'s TRANS 86), cross-assemble your source (with Sorcim's ACT86), link your hex file (with CP/M 80's LOAD command), translate it to the IBM PC (with G&G's CPM-IBM program), and run it on your IBM PC! This procedure DOES NOT require MS-DOS! […] WHY? FLEXIBILITY. [[CompuPro]]'s 85/88 CPU runs CP/M 80 & 86 or MS-DOS. We offer WORDSTAR, dBASE II, TRANS86, XLT86, ACT86, SUPERCALC, CBASIC, MBASIC, MFORTRAN and more! […]}} [https://archive.org/stream/bub_gb_w_OhaFDePS4C/bub_gb_w_OhaFDePS4C_djvu.txt] [https://archive.org/download/bub_gb_w_OhaFDePS4C/bub_gb_w_OhaFDePS4C.pdf]</ref>
<ref name="Swaine_1982_CPM">{{cite news |title=Digital Research founder discusses his view of the business |series=Special section: CP/M |editor1-first=Michael |editor1-last=Swaine |editor-link1=Michael Swaine (technical author) |editor2-first=Paul |editor2-last=Freiberger |editor-link2=Paul Freiberger |editor3-first=John Gregory |editor3-last=Markoff |editor-link3=John Gregory Markoff |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall |date=1982-04-19 |newspaper=[[InfoWorld]] – The Newsweekly for Microcomputer Users |issn=0199-6649 |publisher=[[Popular Computing, Inc.]] |volume=4 |issue=15 |
<ref name="Hughes_1982_MS-DOS">{{cite magazine |title=CP/M-86 And MS-DOS: A Comparative Analysis |series=Operating Systems |author-first=David B. |author-last=Hughes |date=November 1982 |magazine=[[PC Magazine]] |publisher=[[Software Communications, Inc.]] |issn=<!-- not assigned at this time, but already applied for --> |volume=1 |number=7 |pages=181–182, 187–190 [189<!-- quote taken from page 189 -->] |url=https://books.google.com/books?id=vy3cBZkjbZgC&pg=PA189 |access-date=2020-02-10 |url-status=live |archive-url=https://web.archive.org/web/20200210202327/https://books.google.de/books?id=vy3cBZkjbZgC&pg=PA189&dq=combined+CP/M-80+DOS+opcode+program&hl=de&sa=X&ved=2ahUKEwjO7N2Q6MfnAhVS-6QKHTPADzcQ6AEwAHoECAAQAQ#v=onepage&q=combined%20CP%2FM-80%20DOS%20opcode%20program&f=false |archive-date=2020-02-10 |quote=[…] An impressive and useful array of software development utilities is a standard feature of [[MS-DOS]]. A program that translates [[8080]] or [[Z80]] code into [[8086]] source code, a linker, and a library runtime combine with a powerful assembler to give the programmer everything needed to take full advantage of the PC's 16-bit processor. The MS-DOS translation program allows the user to translate code developed under [[CP/M-80]] or [[SB-80]] […] 8-bit operating system […] to [[MS-DOS 1.2]] or [[MS-DOS 2.0|2.0]]. Some modification beyond simple translation may be necessary to get the programs to run on 16-bit systems, so I suggest that this tool be used primarily by a technically trained user. […]}}</ref>
<ref name="Bunnell_1982_CPM">{{cite magazine |title=Gary Kildall – The Man Who Created CP/M: CP/M's Creator – An Indepth PC-Exclusive Interview with Software Pioneer Gary Kildall |series=Operating Systems |editor1-first=David Hugh |editor1-last=Bunnell |editor-link=David Hugh Bunnell |editor2-first=Jim |editor2-last=Edlin |author-first=Gary Arlen |author-last=Kildall |author-link=Gary Arlen Kildall |date=June–July 1982 |magazine=[[PC Magazine]] |publisher=[[Software Communications, Inc.]] |issn=<!-- not assigned at this time, but already applied for --> |volume=1 |number=3 |pages=32–38, 40 [35<!-- quote taken from page 35 -->] |url=https://archive.org/stream/PC-Mag-1982-06/PC-Mag-1982-06_djvu.txt |access-date=2020-01-17 |quote=[…] PC: What are some of the complexities involved in translating a program from [[8080]] to [[8086]] form? [[Gary Arlen Kildall|Kildall]]: Straight translations at the source program level you can do pretty much mechanically. For example, an 8080 "Add immediate 5" instruction turns into an "Add AL 5" on the 8086 — very straightforward translation of the op codes themselves. The complexity in [[mechanical translation]] comes from situations such as this: The 8080 instruction DAD H takes the HL register and adds DE to it. For the 8086 the equivalent instruction would be something like ADD DX BX, which is fine, no particular problem. You just say the DX register is the same as HL and BX the same as DE. The problem is that the 8086 instruction has a side effect of setting the zero flag, and the 8080 instruction does not. In mechanical translation you end up doing something like saving the flags, restoring the flags, doing some shifts and rotates, and so forth. These add about five or six extra instructions to get the same semantic effect. There are a lot of sequences in 8080 code that produce very strange sequences in 8086 code; they just don't map very well because of flag registers and things of that sort. The way we get software over is a thing called XLT-86. It's been out six months or so. PC: By "better" code do you mean smaller? Kildall: Twenty percent smaller than if you just took every op code and did a straight translation, saving the registers to preserve semantics. PC: How does the size of the translated program compare to the 8080 version? Kildall: If you take an 8080 program, move it over to 86 land and do an XLT-86 translation, you'll find that it is roughly 10 to 20 percent larger. With 16-bit machines it's more difficult to address everything; you get op codes that are a little bit bigger on the average. An interesting phenomenon is that one of the reasons you don't get a tremendous speed increase in the 16-bit world is because you're running more op codes over the data bus. […]}}</ref>
Line 224:
<ref name="ARC_1988_Transpiler">{{anchor|ARC-1988}}{{cite magazine |title=Aus BASIC mach C: B→C Transpiler |trans-title=Turn BASIC into C: B→C Transpiler |author=ARC-Softwaresystems |___location=Esslingen, Germany |type=Advertisement |language=de |journal={{ill|Amiga-Magazin|de}} - das Computermagazin für Amiga-Fans |publisher=[[Markt & Technik Verlag Aktiengesellschaft]] |issn=0933-8713 |date=June 1988 |volume=1988 |issue=6 |page=101 |url=https://archive.org/details/AmigaMagazin198806 |access-date=2020-01-18 |url-status=live |archive-url=https://web.archive.org/web/20200201131207/https://archive.org/details/AmigaMagazin198806 |archive-date=2020-02-01 |quote=[…] Achtung [[C (language)|C]]- und [[Basic (language)|Basic]]-Programmierer! […] Jetzt gibt es den B→C TRANSPILER das einzigartige Umwandlungs-Software-System von ARC […] Der B→C TRANSPILER übersetzt lauffähige [[Amiga|AMIGA]]-Basicprogramme in compilierbaren C-Code. […] Durch Spezialbefehle kann C-Code in Basicproqramme direkt integriert werden. […] Basic-Befehle werden erweitert transpiliert. ([[HAM mode|HAM-Modus]], [[Interchange File Format|IFF]]<!-- or [[If and only if|IFF]]? -->, usw. werden unterstützt). […] Mit diesem Konzept neuester Generation verbindet der B→C TRANSPILER auf einzigartige Weise die Vorteile eines Interpreters mit denen eines Compilers […]}} [https://archive.org/details/AmigaMagazin198806]</ref>
<ref name="Pountain_1989">{{anchor|Pountain-1989}}{{cite magazine |title=Configuring parallel programs, Part 1: The Occam Transpiler, now under development, will make writing software for parallel processing easier |author-first=Dick |author-last=Pountain |magazine=[[BYTE (magazine)|BYTE]] |publisher=[[McGraw-Hill, Inc.]] |issn=0360-5280 |volume=14 |number=13 |series= |date=December 1989 |id=<!-- |ia=byte-magazine-1989-12 --> ark:/13960/t34188734 |pages=349–352 |url=https://archive.org/details/byte-magazine-1989-12/page/n382/mode/1up |access-date=2022-01-06 |quote-page=350 |quote=[…] The name ''Transpiler'' is meant to suggest a combination of [[transputer]] and [[compiler]], in just the same way that ''transputer'' was coined from ''[[transistor]]'' and ''[[computer]]'' (i.e., a computer that is also a component). […]}} (NB. Uses the term ''Occam transpiler'' as a synonym for a source-to-source compiler working as a [[pre-processor]] that takes a normal [[occam (programming language)|Occam]] program as input and derives a new Occam source code as output with link-to-channel assignments etc. added to it thereby ''[[computer configuration|configuring]]'' it for [[parallel processing (computing)|parallel processing]] to run as efficient as possible on a network of [[transputer]]s.)</ref>
<ref name="Sector7_1993_Transpiler">{{cite
<ref name="Ocam1">{{cite web |title=Js_of_ocaml |url=http://ocsigen.org/js_of_ocaml/manual/overview |access-date=2014-10-08 |url-status=dead |archive-url=https://web.archive.org/web/20181208123603/http://ocsigen.org/js_of_ocaml/manual/overview |archive-date=2018-12-08}}</ref>
<ref name="J2EIF">{{cite book |title=J2Eif Research Page – Chair of Software Engineering |doi=10.1007/978-3-642-21952-8_4 |publisher=Se.inf.ethz.ch |url=http://se.inf.ethz.ch/research/j2eif/ |access-date=2014-07-08 |url-status=live |archive-url=https://web.archive.org/web/20200101165402/http://se.inf.ethz.ch/research/j2eif/ |archive-date=2020-01-01}}</ref>
Line 236:
<ref name="Zilog_1980_Brief">{{cite book |title=PDS 8000 Development System – The integrated approach to systems design |type=Product Brief |date=January 1980 |publisher=[[Zilog]] |url=https://archive.org/details/TNM_PDS_8000_development_system_for_systems_desig_20180331_0008 |access-date=2020-01-24 |quote=[…] Z8000 TRANSLATOR: Provides a quick means to convert an existing [[Z80]] Assembly Language program to [[Z8000]] code and the PLZ/ASM program format. […]}} [https://archive.org/stream/TNM_PDS_8000_development_system_for_systems_desig_20180331_0008/TNM_PDS_8000_development_system_for_systems_desig_20180331_0008_djvu.txt] [https://archive.org/details/TNM_PDS_8000_development_system_for_systems_desig_20180331_0008]</ref>
<!-- <ref name="Zilog_1979_PLZ">{{cite book |title=Z8000 PLZ/ASM Assembly Language – Programming Manual |publisher=[[Zilog]] |date=1979-07-02 |id=DCN Number: E3-3055-01. Publication Number: 03-3055-01 |url=http://oldcomputers-ddns.org/public/pub/rechner/zilog/zds/manuals/z8000asm.pdf |access-date=2020-01-24 |quote=[…]}}</ref> -->
<ref name="Thomas_1981_CPM">{{cite news |title=Books, Boards and Software for The New 16-Bit Processors |author-first1=Rebecca A. |author-last1=Thomas |author-first2=Jean L. |author-last2=Yates |newspaper=[[InfoWorld]] – The Newspaper for the Microcomputing Community |issn=0199-6649 |publisher=[[Popular Computing, Inc.]] |date=1981-05-11 |volume=3 |issue=9 |
<ref name="Orlansky_1979_Z8000">{{cite book |title=Proceedings 27–29 November 1979 – 1st Interservice/Industry Training Equipment Conference |id=Technical report NAVTRAEQUIPCEN |editor-first=Jesse |editor-last=Orlansky |publisher=The Center |date=1979 |page=413 |url=https://books.google.com/books?id=O7MgcxB_ZlYC&pg=PA413 |access-date=2020-01-24 |url-status=live |archive-url=https://web.archive.org/web/20200201170423/https://books.google.com/books?id=O7MgcxB_ZlYC&pg=PA413&lpg=PA413 |archive-date=2020-02-01 |quote=[…] Table 1. 16-Bit Microprocessor Characteristics […] [[Zilog]] 8000 […] Software […] Zilog expects to support [[Z8000]] with translators for PLZ, [[BASIC]], [[COBOL]] and [[FORTRAN]]. These will permit conversion of [[Z80]] code to Z8000 code, since Z8000 set is superset to Z80. […]}}</ref>
<ref name="ADSoft_1982_TRANS-206b">{{cite web |title=2500 A.D. Software 8080/Z-80 to Z8000 source code translator v2.06b |publisher=2500 A.D. Software, Inc. |date=1982 |url=http://www.vintagecomputer.net/fjkraan/comp/mirror/z80cpu.eu/archive/rlee/L/LOOSECPM/300/U4/TRANS.COM |access-date=2020-01-24 |url-status=live |archive-url=https://web.archive.org/web/20200201170533/http://www.vintagecomputer.net/fjkraan/comp/mirror/z80cpu.eu/archive/rlee/L/LOOSECPM/300/U4/TRANS.COM |archive-date=2020-02-01}} [https://web.archive.org/web/20151226171312/http://www.vintagecomputer.net/fjkraan/comp/mirror/z80cpu.eu/archive/rlee/L/LOOSECPM/300/U4/<!-- http://www.vintagecomputer.net/fjkraan/comp/mirror/z80cpu.eu/archive/rlee/L/LOOSECPM/300/U4/-->]</ref>
|