Source-to-Source-Compiler

A Quelle-zu-Source-Übersetzer, Source-to-Source-Compiler (S2S -Compiler), Transkompiler, oder Transpiler[1][2][3] ist eine Art von Art von Übersetzer das nimmt das Quellcode eines Programms in a Programmiersprache als Eingabe und erzeugt einen äquivalenten Quellcode in derselben oder einer anderen Programmiersprache. Ein Quell-zu-Quelle-Übersetzer konvertiert zwischen Programmiersprachen, die bei ungefähr dem gleichen Niveau von funktionieren Abstraktionwährend ein traditioneller Compiler übersetzt von a Programmiersprache höherer Ebene zu einem Programmiersprache niedrigerer Ebene. Zum Beispiel kann ein Übersetzer für Quelle zu Quelle eine Übersetzung eines Programms ausführen Python zu JavaScript, während ein traditioneller Compiler aus einer Sprache wie übersetzt C zu Assembler oder Java zu Bytecode.[4] Ein automatische Parallelisierung Der Compiler nimmt häufig ein hochstufiges Sprachprogramm als Eingabe auf und transformiert dann den Code und kommentiert ihn mit parallelen Code -Anmerkungen (z. B.,. OpenMP) oder Sprachkonstrukte (z. Forran's für alle Aussagen).[2][5]

Ein weiterer Zweck von Quelle-to-Source-Kompilieren ist die Übersetzung des Legacy-Codes, um die nächste Version der zugrunde liegenden Programmiersprache oder eine API zu verwenden, die die Kompatibilität nach hinten bricht. Es wird automatisch durchgeführt Code Refactoring Dies ist nützlich, wenn die Programme zum Refactor außerhalb der Kontrolle des ursprünglichen Implementierers (z. unpraktisch oder zeitaufwändig, um es von Hand neu zu überarbeiten.

Transkompiler können entweder die übersetzte Codestruktur so nahe wie möglich am Quellcode halten, um die Entwicklung zu erleichtern und Debuggen vom ursprünglichen Quellcode oder kann die Struktur des ursprünglichen Code so sehr ändern, dass der übersetzte Code nicht wie der Quellcode aussieht.[6] Es gibt auch Debugging -Dienstprogramme, die den transkompilierten Quellcode zum ursprünglichen Code zurückzuordnen. Zum Beispiel die JavaScript Quellkarte Standard ermöglicht die Zuordnung des von a ausgeführten JavaScript -Codes Webbrowser Zurück zur ursprünglichen Quelle, wenn der JavaScript-Code beispielsweise durch eine transkompilierte Sprache von JavaScript abgebrochen oder hergestellt wurde.

Beispiele beinhalten Verschluss Compiler, CoffeeScript, Pfeil, Haxe, Opal, Typoskript und Emscripten.[7]

Montagesprachübersetzer

Sogenannt Montagesprachübersetzer sind eine Klasse von Quell-zu-Source-Übersetzern, die Code von einem konvertieren Montagesprache in einen anderen, einschließlich (aber nicht beschränkt auf) verschiedene Prozessorfamilien und Systemplattformen.

Intel Conv86

Intel vermarktete ihren 16-Bit-Prozessor 8086 sein Quelle kompatibel zum 8080, ein 8-Bit-Prozessor.[8] Um dies zu unterstützen, hatte Intel eine Isis-II-basierter Übersetzer von 8080 bis 8086 Quellcode mit dem Namen Conv86[9][10][11] (Auch als CONV-86 bezeichnet[12] und konvertieren 86[13][14]) verfügbar für OEM Kunden seit 1978, möglicherweise das früheste Programm dieser Art.[NB 1] Es unterstützte mehrere Übersetzungsebenen und lief bei einem Intel -Mikroprozessorentwicklungssystem bei 2 MHz MDS-800 mit 8 Zoll Floppy -Laufwerke. Laut Nutzerberichten funktionierte es nicht sehr zuverlässig.[15][16]

SCP Trans86

Seattle Computerprodukte'(SCP) angeboten trans86.com,[14][17][18] geschrieben von Tim Paterson 1980 während der Entwicklung 86-dos.[19][20][21] Das Dienstprogramm könnte Intel 8080 und übersetzen Zilog Z80 Quellcode für Montage (mit Zilog/Mostek Mnemonik) in .asm Quellcode für den Intel 8086 (in einem Format nur kompatibel mit SCPs Cross-Assembler ASM86 für CP/M-80), aber nur eine Teilmenge von unterstützt Opcodes, Register und Modi und erforderten häufig immer noch eine signifikante manuelle Korrektur und überarbeiten danach.[22][19] Auch nur eine bloße Leistung Transliteration,[13][17][9][10] die Brute-Force Einzelpass Der Übersetzer hat keine Register- und Sprungoptimierungen durchgeführt.[23][24] Es dauerte ungefähr 24 KB RAM.[14] Die SCP-Version 1 von trans86.com wurde auf Z80-basierten Systemen durchgeführt.[14][17] Sobald 86-dos lief, Paterson, in a Selbsthosting-Inspirierter Ansatz, verwendet Trans86, um sich in ein Programm unter 86-dos umzuwandeln.[21][17] Nummerierte Version 2, dies wurde stattdessen trans.com bezeichnet.[17][24][23][25][26] Später im Jahr 1982 war der Übersetzer anscheinend auch erhältlich Microsoft.[14][27]

Sorcim Trans86

Auch trans86 genannt, Sorcim bot seit Dezember 1980 auch einen 8080 bis 8086 Übersetzer an.[28][13] Wie das SCP-Programm wurde es für den Port-CP/M-80-Anwendungscode (in ASM, Mac, RMAC oder ACT80 Assembly-Format) ausgelegt MS-DOS (in einem Format, das mit ACT86 kompatibel ist).[28][14][29][30] Im ACT80 -Format unterstützte es auch einige Z80 Mnemonics. Die Übersetzung ereignete sich auf der Basis von Anweisungen durch die Instrukturierung, wobei eine gewisse Optimierung auf bedingte Sprünge angewendet wurde. Das Programm lief unter CP/M-80, MP/M-80 und Cromemco dos mit mindestens 24 KB RAM und hatten keine Einschränkungen für die Quelldateigröße.[14][31]

Digitale Forschung XLT86

Viel raffinierter und die ersten, die vorgestellt werden Compiler optimieren Technologien in den Quellübersetzungsprozess waren Digitale Forschung's XLT86 1.0 im September 1981. XLT86 1.1 war bis April 1982 erhältlich.[32] Das Programm wurde von geschrieben von Gary Kildall[13][33][34][35] und übersetzt .masmaser Quellcode für den Intel 8080 -Prozessor (in einem Format, das mit ASM-, MAC- oder RMAC -Assembierern kompatibel ist) in .A86 Quellcode für den 8086 (kompatibel mit ASM86). Verwendung Globale Datenflussanalyse auf 8080 Register -Nutzung,[36][13][37][38] die fünfphasige Multi-Pass Übersetzer würde auch die Ausgabe für die Codegröße optimieren und sich um Anrufkonventionen kümmern (CP/M-80 Bdos Anrufe wurden in BDOs -Anrufe zugeordnet CP/M-86), damit CP/M-80- und MP/M-80-Programme auf CP/M-86 portiert werden können und MP/M-86 Plattformen automatisch. Xlt86.com selbst wurde geschrieben in PL/I-80 Für CP/M-80-Plattformen.[39][14][32][40] Das Programm besetzte 30 KB RAM für sich selbst sowie zusätzlichen Speicher für das Programmdiagramm. Bei einem 64 -KB -Speichersystem betrug die gestützte maximale Quelldateigröße ca. 6 KB,[39][14][41][32] so dass größere Dateien vor der Übersetzung entsprechend abgebaut werden mussten.[14][32] Alternativ war XLT86 auch für verfügbar Dez Vax/vms.[14][32] Obwohl der Eingang und die Ausgabe von XLT86 auf der Quellcode-Ebene funktionierten, setzen die In-Memory-Darstellung des Programms und die angewandten Code-Optimierungstechnologien die Grundlage auf die Grundlage Binäre Neukompilation.[42][43][44]

Andere

2500 Anzeigensoftware bot einen Quellcode-Übersetzer von 8080 bis 8086 als Teil ihrer XASM-Suite für CP/M-80-Maschinen mit Z80 sowie für für Zilog Zeus und Olivetti PCOS Systeme.[45]

Seit 1979 bot Zilog einen Z80 an an Z8000 Übersetzer als Teil ihres PDS 8000 -Entwicklungssystems.[46][47][48][49][50][16] Erweiterte Mikrocomputer (AMC)[50][16] und 2500 -Anzeigen -Software bot auch Z80 bis Z8000 -Übersetzer an.[45] Letzteres wurde trans bezeichnet[51][52] und war für Z80 CP/M, CP/M-86, MS-DOS und PCOS erhältlich.[45]

Das Z88DK -Entwicklungskit bietet einen Z80 bis I486 Quellcode -Übersetzer Targeting Nasm Mit dem Namen "to86.awk", geschrieben 2008 von Stefano Bodrato.[53] Es basiert wiederum auf einem 2008 von Douglas Beattie, Jr. mit dem Namen "toz80.awk" geschriebenen Z80 -Konverter.[53]

Im Jahr 2021 schrieb Brian Callahan ein 8080 CP/M 2.2 bis MS-DOS-Quellcode-Übersetzer-Targeting Nasm genannt 8088ify.[54]

Programmiersprache Implementierungen

Die ersten Implementierungen einiger Programmiersprachen begannen als Transkompiler, und die Standardimplementierung für einige dieser Sprachen sind immer noch Transkompiler. Zusätzlich zu der folgenden Tabelle a CoffeeScript Warteur bietet eine Liste von Sprachen, die zu JavaScript kompilieren.[55]

Liste der Transkompiler[4]
Name Ausgangssprache Zielsprache
CFRONT C ++ C
Hip Hop für PHP (HPHPC) Php C ++
Babel Es6+ (JS)) Es5
ClojureScript Clojure JavaScript
Jssweet[56] Java Typoskript
Swiftify[57] Ziel c Schnell
J2OBJC[58] Java Ziel c
Haxe Haxe Aktionen 3, JavaScript, Java, C ++, C#, Php, Python, Lua
Maia[59] Maia Verilog
Cerberus x Cerberus JavaScript, Java, C ++, C#
H5[60] C# JavaScript
Nim Nim C, C ++, JavaScript
Pfeil Pfeil JavaScript
Rekript Ocaml JavaScript

Portierung einer Codebasis

Wenn Entwickler zu einer anderen Sprache wechseln möchten, während sie den größten Teil einer vorhandenen Codebasis beibehalten, ist es möglicherweise besser, einen Transkompiler zu verwenden, als die gesamte Software von Hand umzuschreiben. Abhängig von der Qualität des Transcompilers kann der Code eine manuelle Intervention benötigen oder nicht, um ordnungsgemäß zu arbeiten. Dies unterscheidet sich von "transkompilierten Sprachen", bei denen die Spezifikationen erfordern, dass der Ausgangsquellcode immer ohne Änderung funktioniert. Alle Transcompiler, die zum Anschluss einer Codebasis verwendet werden, erwarten eine manuelle Anpassung des Ausgangsquellcodees, wenn die maximale Codequalität in Bezug auf Lesbarkeit und Plattformkonvention erreicht werden muss.

Werkzeug Ausgangssprache Zielsprache Kommentare
2to3 Skript Python 2 Python 3 Obwohl 2to3 das Beste bei der Automatisierung des Übersetzungsprozesses tut, werden häufig weitere manuelle Korrekturen benötigt.
Emscripten Llvm Bytecode JavaScript Dadurch können Sie beispielsweise C/C ++ - Codebasen in einem Browser ausführen
C2GO[61] C gehen Vor der Veröffentlichung von 1.5 wurde der GO -Compiler in C geschrieben. Ein automatischer Übersetzer wurde entwickelt, um die Compiler -Codebasis automatisch von C in GO zu konvertieren.[62][63] Seit GO 1.5 sind der "Compiler und Laufzeit jetzt in Go and Assembler ohne C" implementiert.
C2rust[64] C Rost C2rust nimmt C -Code als Eingabe und Ausgänge auf unsicher Rostcode, der sich auf die Erhaltung der Kompatibilität mit der ursprünglichen Codebasis konzentriert. Für diesen Prozess gibt es mehrere dokumentierte Einschränkungen. Das Konvertieren des resultierenden Codes in den sicheren und idiomatischen Rust -Code ist ein manueller Aufwand nach der Übersetzung, obwohl ein automatisiertes Tool vorhanden ist, um diese Aufgabe zu erleichtern.[64]
Google Web Toolkit Java Programm, das eine bestimmte Verwendung verwendet API JavaScript Der Java -Code ist im Vergleich zum normalen Java -Code etwas eingeschränkt.
JS_OF_OCAML[65] von Ocsichen Ocaml JavaScript
J2eif[66] Java Eiffel Der daraus resultierende Eiffeltode -Code enthält Classerusts und Strukturen, die dem Java -Programm ähneln, jedoch nach Eiffeltax und Konventionen.
C2EF[67] C Eiffel Der daraus resultierende Eiffeltode hat Klassen und Strukturen, die versuchen, so sauber wie möglich zu sein. Das Tool ist vollständig und basiert auf dem Einbetten des C- und Montagecode, wenn es nicht ordnungsgemäß übersetzt werden kann.
Swiftify[68] Ziel c Schnell Swiftify ist eine Online-Quelle für die Quelle Conversion-Tool von Objective-C in Swift. Es hilft Entwicklern, die alle oder einen Teil ihrer iOS -Codebasis in Swift migrieren. Die Konvertierung richtet sich hauptsächlich darauf, die Syntax zwischen Objektiv-C und Swift zu konvertieren, und wird geholfen, weil Apple Anstrengungen unternommen hat, um die Kompatibilität zwischen Swift- und Objective-C-Laufzeiten sicherzustellen.
Laufzeitkonverter[69] Php Java Der Laufzeitkonverter ist ein automatisches Tool, das den PHP -Quellcode in Java -Quellcode umwandelt. Es gibt eine Java -Laufzeitbibliothek für bestimmte Merkmale der PHP -Sprache sowie die Möglichkeit, die PHP -Binärin selbst mit JNI für die PHP -Standardbibliotheks- und Erweiterungsfunktionsaufrufe aufzurufen.

Transkompiler -Pipelines

Eine Transkompiler -Pipeline ist das, was hervorgeht rekursive Transkompetenz. Durch das Zusammenfügen mehrerer Technologieschichten mit einem transkompilischen Schritt zwischen jeder Ebene kann die Technologie wiederholt transformiert werden, wodurch effektiv ein verteiltes Erstellen ist Sprachunabhängige Spezifikation.

Xslt ist ein allgemeines Transformationswerkzeug, das zwischen vielen verschiedenen Technologien verwendet werden kann, um eine solche zu erstellen Derivatcode Pipeline.

Rekursive Transkompetenz

Rekursive Transkompilation (oder rekursive Transporation) ist der Prozess der Anwendung des Begriffs der Transkompetenz rekursiv, um eine Pipeline von Transformationen zu erstellen (häufig von a beginnt einzelne Quelle der Wahrheit) die wiederholt eine Technologie in eine andere verwandeln.

Durch Wiederholung dieses Vorgangs kann man A → B → C → D → E → F verwandeln und dann wieder in a (v2). Einige Informationen werden über diese Pipeline aus A → A (V2) erhalten, und diese Informationen (auf abstrakter Ebene) zeigen, worauf jede der Komponenten A - F zustimmt.

In jeder der verschiedenen Versionen, die die Transcompiler -Pipeline erzeugt, bleiben diese Informationen erhalten. Es könnte viele verschiedene Formen und Größen annehmen, aber bis es zu einem (V2) zurückkommt und sechsmal in der obigen Pipeline umgesetzt wurde, kehren die Informationen in ihren ursprünglichen Zustand zurück.

Diese Informationen, die die Transformation durch jedes Format von A - F - A (V2) überlebt, ist (per Definition) Derivatinhalt oder Derivatcode.

Eine rekursive Transkompilation nutzt die Tatsache, dass Transkompiler entweder den übersetzten Code so nahe wie möglich am Quellcode halten können, um die Entwicklung zu erleichtern und Debuggen vom ursprünglichen Quellcode, sonst können sie die Struktur des ursprünglichen Code so sehr ändern, dass der übersetzte Code nicht wie der Quellcode aussieht. Es gibt auch Debugging -Dienstprogramme, die den transkompilierten Quellcode zum ursprünglichen Code zurückzuordnen. zum Beispiel, JavaScript Quellkarten ermöglichen die Zuordnung des von a ausgeführten JavaScript -Code Webbrowser Zurück zur ursprünglichen Quelle in einer transkompilierten zu JavaScript-Sprache.

Siehe auch

Anmerkungen

  1. ^ Ein kommerzielles Programm, von dem bekannt ist, dass er maschinell transliert wurde Isis-II aus 8080 CP/M-80 Quellcode an 8086 CP/M-86 Verwendung Intel's Conv86 war Mikropro's WordStar 3.0 Im September 1981.

Verweise

  1. ^ Bogen-SoftWaresystems (Juni 1988). "AUS Basic Mach C: B → C Transpiler" [Basic in C: B → C Transpiler]. Amiga-Magazin[DE] - Das Computermagazin für Amiga-Fans (Werbung) (auf Deutsch). Vol. 1988, Nr. 6. Esslingen, Deutschland: Markt & Technik Verlag AktiengeSellschaft. p. 101. ISSN 0933-8713. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-18. […] Achtung C- und Basic-Programmierer! […] JETZT GIBT ES Den B → C Transpiler Das Einzigartige Umwandlungs-Software-System von Arc […] der B → C Transpiler übersetzt laufdemige Amiga-Basicprogramm in Compilierbaren C-Code. […] Durchgepezialbefehle Kann C-Code in BasicProqramme Direkt Integrierer Werden. […] Basic-BeeHle Werden Erweitert transpilierert. (Ham-Modus, IFF, USW. Werden Unterstein). […] MIT Diesim Konzept Neuester Generation Verbindet der B → C Transpiler Auf Einzigartige Weise Die Vorhöhe Einer -Dolmetscher MIT Dener Einer Compiler […] [1]
  2. ^ a b Pountain, Dick (Dezember 1989). "Konfigurieren paralleler Programme, Teil 1: Der jetzt in der Entwicklung befindliche Occam -Transpiler erleichtert das Schreibsoftware für die parallele Verarbeitung". BYTE. Vol. 14, nein. 13. McGraw-Hill, Inc. S. 349–352. ISSN 0360-5280. Ark:/13960/t34188734. Abgerufen 2022-01-06. p. 350: […] Der Name Transpiler soll eine Kombination von vorschlagen Durchgang und Compilergenauso wie das Durchgang wurde geprägt von Transistor und Computer (d. H. Ein Computer, der ebenfalls eine Komponente ist). […] (NB. Verwendet den Begriff Occam Transpiler als Synonym für einen Compiler für Quelle zu Source als Synonym Präprozessor das braucht normal Occam Programm als Eingabe programmieren und einen neuen Occam-Quellcode als Ausgabe mit Link-to-Channel-Zuordnungen usw. abgeleitet Konfigurieren es für Parallelverarbeitung in einem Netzwerk von so effizient wie möglich laufen transputers.))
  3. ^ Sektor 7 Software Limited (1993-12-07) [1992-09-22]. "Transpiler". Offizielle Gazette des US -amerikanischen Patent- und Markenbüros. Klasse 9. Vol. 1157 (1 ed.). Bedford, Bedfordshire, Großbritannien: US -Patent- und Markenbüro. p. TM 81. SN 74-316.610. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-18. […] Priorität gemäß Sec. 44 (d) Über Anwendung Nr. 1495953 Großbritanniens, eingereicht 1992-03-31 Reg. Nr. A1495953, datiert 1992-03-31, lehnt 1999-03-31 ab. Für Computersoftware und -Programme (US -amerikanische Cl. 38). Erste Verwendung 1991-08-01, im Handel 1991-08-01. (NB. Dieses Unternehmen entwickelt Produkte wie VX/Basic, einen Basic-to-C-Transpiler für Dec VMs. Trotz ihrer Behauptung ist ihre nicht die erste öffentliche Verwendung des Begriffs Transpiler, siehe d.h. ARCs Basic-to-C-Transpiler für die Commodore Amiga im Jahr 1988 und der Occam Transpiler von Concurrent Technology Systems (CTS) im Jahr 1989.)
  4. ^ a b "Transpiler". Devopedia.org. 2017-03-17. Archiviert vom Original am 2019-11-05. Abgerufen 2019-06-22.
  5. ^ "Arten von Compilern". compiler.net. 1997–2005. Archiviert vom Original am 2019-07-19. Abgerufen 2010-10-28.
  6. ^ Fowler, Martin (2013-02-12). "Transparente Zusammenstellung". Archiviert vom Original am 2020-01-01. Abgerufen 2013-02-13.
  7. ^ Epische Spiele; Mozilla. "HTML5 Epic Citadel".
  8. ^ Scanlon, Leo J. (1988). 8086/8088/80286 Assemblersprache. Brady Books. p.12. ISBN 978-0-13-246919-7. […] Das 8086 ist softwarekompatibel mit dem 8080 auf der montagesprachigen Ebene. […]
  9. ^ a b MCS-86 Assembly Language Converter Betriebsanweisungen für ISIS-II-Benutzer. A30/379/10k TL. Santa Clara, Kalifornien, USA: Intel Corporation. März 1979 [1978]. Bestellung Nr. 9800642a. Abgerufen 2020-01-18. [2] (NB. Eine neuere Version dieses Handbuchs finden Sie hier.))
  10. ^ a b MCS-86 Assembly Language Converter Betriebsanweisungen für ISIS-II-Benutzer. A175/280/7.5 fl. Santa Clara, Kalifornien, USA: Intel Corporation. Februar 1980 [1978]. Bestellung Nr. 9800642-02. Abgerufen 2020-01-18. [3] [4] (NB. Eine ältere Version dieses Handbuchs kann gefunden werden hier.))
  11. ^ Nelson, Ross P. (Januar 1989) [1988]. Das 80386 Buch: Assemblersprachprogrammierer für den 80386. Microsoft Programming Series (1 Ed.). Microsoft Press. p. 2. ISBN 978-1-55615-138-5. […] Ein Intel Übersetzerprogramm könnte konvertieren 8080 Assembler -Programme in 8086 Assembler -Programme […]
  12. ^ Das 8086 -Familienbenutzerhandbuch. Intel Corporation. Oktober 1979 [1978]. S. 2-74, 2-92, B-176. Bestellung Nr. 9800722-03. Abgerufen 2020-01-18. […] Andere Programme runden die für die verfügbaren Softwareentwicklungs -Tools ab 8086 und 8088. […] CONV-86 kann den größten Teil der Umwandlung durchführen, die für die Übersetzung erforderlich sind 8080/8085 Quellmodule für Montagesprachen in ASM-86-Quellmodule. […] Erleichterung der Konvertierung von 8080A/8085A-Assembly-Sprachprogrammen für die Ausführung des ISBC 86/12A Board CURP-86 ist unter dem erhältlich Isis-II Betriebssystem. [5] [6]
  13. ^ a b c d e Freiberger, Paul (1981-10-19). "Programmübersetzer tun es wörtlich - und manchmal im Kontext". InfoWorld - Nachrichten für Mikrocomputerbenutzer. Spezieller Abschnitt: Computerkompatibilität. Vol. 3, nein. 22. Beliebtes Computing, Inc. p. 19. ISSN 0199-6649. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-15. […] "Wenn Sie ein Übersetzungsschema haben, das die besonderen Eigenheiten des Zielmikroprozessors berücksichtigt, kann ein automatischer Übersetzer auf keinen Fall arbeiten", erklärt Daniel Davis, ein Programmierer mit Digitale Forschung. "Sie werden direkt mit direktem enden Übersetzungen. Gary KildallDer XLT86 scheint Fortschritte gegenüber zuvor verfügbaren Software -Übersetzer -Technologien zu bieten. Wie Sorcimtrans und Intel's konvertieren 86, Kildalls Paket übersetzt Assembly-Sprache-Code aus einem 8080 Mikroprozessor zu an 8086. Kildall hat jedoch a angewendet Globale Flussanalyse Technik, die einige der wichtigsten Nachteile anderer Übersetzer berücksichtigt. Das Verfahren analysiert die Register- und Flag -Nutzung in Abschnitten des 8080 -Code, um den nicht essentiellen Code zu beseitigen. Laut Digital Research Programmer Davis ermöglicht der Algorithmus Kildall dem Übersetzer, den Kontext zu berücksichtigen, während er das Programm übersetzt. Bisher war eines der Hauptprobleme bei jedem Übersetzerprogramm die Unfähigkeit der Software, viel mehr als nur Transliteration zu tun. Wenn der neue Übersetzer der digitalen Forschung die Technologie tatsächlich so weit fährt, dass der Kontext berücksichtigt werden kann, können sich mehr Software -Übersetzer auf dem Mikrocomputermarkt vermehren.
  14. ^ a b c d e f g h i j k Taylor, Roger; Lemmons, Phil (Juni 1982). "Aufwärtsmigration-Teil 1: Übersetzer-Verwenden von Übersetzungsprogrammen zum Verschieben von CP/M-86-Programmen in CP/M und MS-DOS" [Verwenden von Übersetzungsprogrammen zum Verschieben von CP/M-Programmen in CP/M-86 und MS-DOS] (PDF). BYTE. Vol. 7, nein. 6. Byte Publications Inc. S. 321–322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344. ISSN 0360-5280. Coden Bytedj. Archiviert (PDF) vom Original am 2020-01-16. Abgerufen 2020-01-15. […] Digitale Forschung's XLT86 nimmt Standard ein 8080 Quellcode in einem Format, das mit ASM-, MAC- oder RMAC -Assembierern kompatibel ist, und konvertiert den 8080 -Quellcode in den Quellcode 8086 Quellcode in einem Format, das mit ASM86 kompatibel ist, der unter beiden arbeitet CP/M-80 oder CP/M-86. Da ist XLT86 in geschrieben PL/I-80Der Übersetzer kann entweder eigenständig unter CP/M-80 oder für Kreuzentwicklung unter vax/vms. Es erzeugt einen optimierten 8086-Code in einer Fünfphase. Multipass Prozess, tun Globale Datenflussanalyse Bestimmung optimaler Registerkennungsnutzung. Obwohl Makrodefinitionen nicht unterstützt werden, sind die Anweisungen zur Konditionalklemme […] Wenn Sie die Makroerweiterung wünschen, können Sie einen Durchgang über Mac oder RMAC verwenden, um eine PRN akzeptabel für xlt86. XLT86 erkennt nicht Z80 Anweisungen. XLT86 übergibt wiederholte Schleifen in den 8086 Quellcode. XLT86 analysiert das Quellprogramm in seiner Gesamtheit und bestimmt das Blockstruktur und die Register-/Flag -Verwendung. Aus diesen Informationen wird der Code optimiert in 8086 Assembler -Code übersetzt. Der Entscheidungsalgorithmus für jeden Befehlstyp ist in […] Das Handbuch […] Register Mapping folgt im Allgemeinen […] mit einer losen Beziehung zwischen dem 8086 AXT und der 8080 PSW; Die genaue Beziehung wird durch die Nutzung des Registers unter bestimmt Zeit übersetzen. Viele Laufzeit Optionen sind verfügbar, um den Übersetzungsprozess sowohl in der Befehlszeile als auch in den Quelltext 8080 eingebettet zu steuern. […] XLT86 ist ein ausgeklügeltes Programm, bei dem die Übersetzung des 8080 -Quellcodes in 8086 Quellcode angemessen optimiert wird. Bdos Anrufe von CP/M-80 werden in BDOS-Aufrufe abgebildet, die mit CP/M-86 kompatibel sind. XLT86 verfügt über spezielle Funktionen für die Umgang mit der Übersetzung von bedingten JMP- und Anrufanweisungen in 8080 Quellcode. In den Anweisungen von 8080 können JMP- und Anrufanweisungen in der 64K-Byte-Region eine Adresse erreichen. Die 8086 bedingten JMP -Anweisungen können auf beiden Seiten der nur 128 Bytes erreichen IP […] registrieren. XLT86 untersucht das Ziel des bedingten JMP. Wenn das Ziel nicht erreicht werden kann, ändert XLT86 das Gefühl des bedingten JMP und überspringt einen langen JMP an die Zieladresse. Da es im 8086 keinen bedingten Aufruf oder Anweisungen gibt, wird das Gefühl der Bedingung geändert und eine kurze bedingte JMP wird durchgeführt, um einen bedingungslosen Anruf oder Ret zu überspringen. […] Die Segmentregister ermöglichen die Trennung von Code- und Datenregionen. […] XLT86 untersucht einen Ausdruck und bestimmt das richtige Segment für die bestimmte Anweisung. […] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] (13 Seiten)
  15. ^ Guzis, Charles "Chuck" P. (2013-02-24). "Re: Was ist, wenn IBM die Intel -CPU nicht gewählt hat!". Vintage Computer Forum. Genre: andere. Archiviert vom Original am 2020-01-16. Abgerufen 2020-01-15. […] Das Original 8086 Assembler rannte auf einem 8080-Equipte MDS-80 Dev System. Eines der ersten Produkte war ein 8080 bis 8086 Quellpegelübersetzer. Ich erinnere mich, dass die Übersetzungsgeschwindigkeit phänomenal langsam war. […] Unser Vertriebsmann bot an, einen Conversion- und Überprüfungstest im örtlichen Vertriebsbüro durchzuführen […] Wir […] haben den Job auf dem Isis-II Die MDS 200-Serie dort-sie hatten sogar eine Festplatte, was eine unglaublich teure Option für einen MDS […] war, der immer noch knirrte, als wir für die Nacht abreisten. Es war immer noch nicht am nächsten Morgen […] ungefähr 2 Wochen später nach der Intel Software -Leute haben sich den Übersetzer angesehen, Ed kehrte mit dem übersetzten Programm zurück. Es war etwa 50% größer als das Original 8085 Version, die sich den Behauptungen von Intel für den Übersetzer entgegenbrachte. […]
  16. ^ a b c Guzis, Charles "Chuck" P. (2016-12-31) [2016-12-30]. "Re: DOS -Code in CP/M? Revisited ...". Vintage Computer Forum. Genre: CP/M und MP/M. Archiviert vom Original am 2020-01-16. Abgerufen 2020-01-15. […] Intel Hatte einen ISIS-gehosteten Übersetzer von 8080-zu-8086 Code. Ich kann mich daran erinnern, einen sehr frustrierenden Tag im örtlichen Intel-Vertriebsbüro mit einem Beispiel von 8080 Code verbracht zu haben-ein Basic BCD Schwimmpunktpaket für den 8080 und stundenlang darauf wartet, dass der Übersetzer seine Arbeit beendet-und nach Hause zu gehen. Ungefähr eine Woche später erhielt ich einen Anruf, den sie endlich herausgefunden hatten, und ich konnte mein übersetzendes Programm abholen. Das Programm war mehr als halb so groß wie das Original in Bezug auf Objektbytes. Ich war damals etwas skeptisch gegenüber der Intel -Behauptung, dass der 8086 -Code weitaus kompakter war als sein 8080 -Gegenstück. Und das gesprengte Ding funktionierte sowieso nicht, als es auf die Probe gestellt wurde. […] Es gab andere 80 bis 86 Übersetzer für CP/m. Ich erinnere mich daran Sorcim hatte einen. AMC hatte a Z80-zu-Z8000 Übersetzer auch. […] Der [Intel] Übersetzer hatte mehrere Übersetzungsebenen […] Es gab die "wörtliche", die eine detaillierte Operation bewahrte […] es war Isis-II, Laufen auf einem MDS-800, bei, was, 2 MHz mit 8 "Floppies. […]
  17. ^ a b c d e "Microsoft Macro Assembler (MASM) Inoffizieller Changelist". bytepointer.com. 2018-08-21 [2016-09-08]. Archiviert vom Original am 2019-07-17. Abgerufen 2020-01-18. […] Tim Paterson […] Hatte Folgendes zu sein, um über seine zu sagen 8086 Assembler schrieb er, während er bei SCP: "Der 8086 -Assembler, in dem ich ursprünglich geschrieben habe Z80 Montagesprache und rannte unter CP/m. Ich glaube, es wurde mit der SCP 8086 CPU -Karte als ASM86 verteilt. Ich habe auch einen Übersetzer geschrieben, der den Z80 -Quellcode in ineffizientes, aber praktikabler 8086 -Quellcode konvertierte (Intel förderte diese Idee mit a veröffentlichte Übersetzungstabelle). Dies wurde Trans86 genannt und wurde auch in Z80 -Montage für CP/M geschrieben. Einmal DOS Ich habe den Übersetzer auf ASM86 (und sich selbst) angewendet, um 8086 -Versionen zu erstellen, die unter DOS lagen. Ich habe nicht die Änderungsgeschichte vor mir […], aber ich glaube, dass Versionen> = 2 die übersetzte (dos) Version markiert haben. Wenn ein Verlauf Versionsnummern <2 zeigt, war das die CP/M -Version. "[…]
  18. ^ Paterson, Tim (Juni 1983). "Ein Insider-Blick auf MS-DOS-die Designentscheidungen hinter dem beliebten Betriebssystem-Die Geschichte und Entwurfsentscheidungen hinter MS-DOS. Wie es funktioniert und wohin es geht.". BYTE. 16-Bit-Designs. Vol. 8, nein. 6. McGraw-Hill, Inc. S. 230–252. ISSN 0360-5280. Coden Bytedj. Archiviert vom Original am 2017-03-17. Abgerufen 2020-01-23. […] MS-DOS Entwurfskriterien […] Die primäre Designanforderung von MS-DOS war CP/M-80 Übersetzungskompatibilität, was bedeutet, dass, wenn ein 8080 oder Z80 Das Programm für CP/M wurde für die übersetzt 8086 entsprechend Intel's veröffentlichte RegelnDieses Programm würde unter MS-DOS ordnungsgemäß ausgeführt. Machen Sie CP/M-80-Übersetzungskompatibilität, die eine Anforderung zur Förderung der schnellen Entwicklung von 8086-Software fördert, was natürlich. Seattle Computer war interessiert an. Es gab teilweise Erfolg: Diejenigen Softwareentwickler, die ihre CP/M-80-Programme übersetzt haben, stellten fest, dass sie tatsächlich unter MS-DOS gelaufen sind, oft beim ersten Versuch. Leider zogen es in den früheren Tagen viele der Softwareentwickler von Seattle Computer vor, MS-DOS einfach zu ignorieren. Bis zum IBM PC Wurde angekündigt, waren diese Entwickler das Gefühl CP/M-86 wäre das Betriebssystem von Computern 8086/8088. […] [21] [22]
  19. ^ a b Seattle Computerprodukte (August 1980). "86 -dos - 8086 Betriebssystem - 95 US -Dollar". BYTE (Anzeige). Vol. 5, nein. 8. Byte Publications Inc. p. 173. ISSN 0360-5280. Coden Bytedj. Archiviert vom Original am 2017-04-05. Abgerufen 2013-08-18. […] 1. Lesen Sie Z80 Quellcode -Datei geschrieben in CP/m formatieren und konvertieren zu 86-dos Format. 2. Das Übersetzungsprogramm übersetzt den Z80 -Quellcode auf 8086 Quellcode. 3. Resident Assembler montiert den übersetzten 8086 Quellcode auf 8086 Objektcode. 4. Kleinere Handkorrektur und Optimierung. (Eine kürzlich 19K Z80 -Programmübersetzung dauerte ungefähr vier Stunden, um sich zu reparieren. Auch ohne Optimierung lief sie doppelt so schnell wie das Original! […]) [23]
  20. ^ Paterson, Tim (1994-10-03). "Die Ursprünge von DOS: DOS-Schöpfer gibt seine Sicht auf die Beziehung zwischen CP/M, MS-DOS" (PDF). Mikroprozessorbericht. Microdesign -Ressourcen (MDR). 8 (13). ISSN 0899-9341. Archiviert von das Original (PDF) am 2012-05-31. […] Um große Softwareentwickler dazu zu bringen, ihre Produkte aus dem zu portieren 8080/Z80 zum 8086Ich entschied, dass wir es so einfach wie möglich machen mussten. Ich hatte bereits einen Z80-zu-8086-Quellcode-Übersetzer geschrieben (gehostet auf dem 8080 und CP/m). Mein Plan war, dass das Ausführen eines 8080 CP/M -Programms über den Übersetzer die einzige Arbeit sein würde, die von Softwareentwicklern erforderlich ist, um das Programm in den 8086 zu portieren als CP/Ms nach Anwendung der Übersetzungsregeln. […]
  21. ^ a b Paterson, Tim (2007-09-30). "Design von DOS". Dosman -Trottel. Archiviert von das Original Am 2013-01-20. Abgerufen 2011-07-04. […] CP/m Übersetzungskompatibilität […] für DOS Um erfolgreich zu sein, müssen nützliche Anwendungen (wie Textverarbeitung) dafür geschrieben werden. Ich war besorgt darüber SCP Möglicherweise haben Sie Probleme, Autoren von Anwendungssoftware zu überzeugen, sich die Mühe zu machen, eine DOS -Version ihrer Programme zu erstellen. Nur wenige Leute hatten den 16-Bit-Computer von SCP gekauft, sodass die installierte Basis klein war. Ohne die Anwendungen gäbe es nicht viele Benutzer, und ohne die Benutzer gäbe es nicht viele Anwendungen. […] Meine Hoffnung war, dass wir, indem wir es so einfach wie möglich machten, vorhandene 8-Bit-Anwendungen auf unseren 16-Bit-Computer zu portieren, mehr Rogrammierer zum Stürzen bringen. Und es schien mir, dass CP/M -Übersetzungskompatibilität den Job so einfach wie möglich machen würde. Intel hatte definierte Regeln für die Übersetzung 8-Bit-Programme in 16-Bit-Programme; CP/M -Übersetzungskompatibilität bedeutet, dass die Anfrage eines Programms an CP/M die Übersetzung zu einer äquivalenten Anfrage an DOS wird. […] Also habe ich CP/M -Übersetzungskompatibilität zu einem grundlegenden Designziel gemacht. Dies erforderte, dass ich eine sehr spezifische Anwendungsprogrammschnittstelle erstelle, die die Übersetzungskompatibilität implementiert hat. Ich betrachtete dies nicht als primäre API-es gab tatsächlich eine weitere API, die für die 16-Bit-Welt geeignet war und die mehr Fähigkeiten hatte. Beide APIs verwendeten CP/M-definierte Konstrukte (wie das "Dateisteuerungsblock"); Die Kompatibilitäts -API musste und ich sah keinen Grund, etwas anderes für die primäre API zu definieren. […] Ich selbst nutzte die Übersetzungskompatibilität. ursprünglich 8-Bit-Programme, die unter CP/M (m unter CP/M) ausgeführt wurden (CDOs). Ich habe sie durch den Übersetzer gebracht und 16-Bit-Programme entwickelt, die unter DOS lagen. Diese übersetzten Tools wurden bei Versand von SCP in DOS enthalten. Aber ich glaube nicht, dass jemand anderes diesen Prozess jemals ausgenutzt hat. […]
  22. ^ "Z80 bis 8086 Übersetzer". Z80/8086 Cross Assembler Release 1 (PDF). Revision A (vorläufige Ausgabe). Seattle, Washington, USA: Seattle Computerprodukte. S. 20–21. Abgerufen 2020-01-18. […] Das Seattle Computerprodukte Z80 zu 8086 Übersetzer läuft auf dem Z80 unter CP/m. Es akzeptiert als Eingabe eine Z80 -Quelldatei, die mit verwendet wurde Zilog/Mostek Mnemonics und konvertiert sie in eine 8086 -Quelldatei in einem für unseren 8086 Cross Assembler akzeptablen Format. Um eine Datei zu übersetzen, geben Sie einfach trans86 <Dateiname> ein. Unabhängig von der ursprünglichen Erweiterung wird die Ausgabedatei mit <Pilename> .A86 bezeichnet und wird auf demselben Laufwerk wie die Eingabedatei angezeigt. Eine Datei namens trntest.z80 ist enthalten, um den Übersetzer zu demonstrieren. Die gesamte Z80 -Montagesprache wird nicht übersetzt. […] [24]
  23. ^ a b 86-DOS-Disk-Betriebssystem für das 8086. Benutzerhandbuch (PDF). Version 0.3 (vorläufige Ausgabe). Seattle, Washington, USA: Seattle Computerprodukte. 1980. Archiviert (PDF) vom Original am 2019-07-14. Abgerufen 2020-02-01.
  24. ^ a b Paterson, Tim (2013-12-19) [1982-07-01]. "Microsoft DOS v1.1 und v2.0: Z80 bis 8086 Übersetzer Version 2.21 /msdos/v11source/trans.asm". Computergeschichte Museum, Microsoft. Archiviert vom Original am 2019-11-12. Abgerufen 2014-03-25. [25] (Nb. Während die Verlage behaupten, dies wäre MS-DOS 1.1 und 2.0, ist es tatsächlich SCP MS-DOS 1.25 und Televideo PC DOS 2.11.))
  25. ^ SCP 86-DOS-Betriebssystem für das Einzelbenutzer für das 8086 (Vorläufige Ausgabe). Seattle, Washington, USA: Seattle Computerprodukte. 1980. Abgerufen 2020-01-18. […] Der Quellcode -Übersetzer kann die meisten übersetzen Z80 Quellcode in 8086 Quellcode für den Assembler nach der geringfügigen manuellen Korrektur akzeptabel. Dies bietet eine relativ schnelle und einfache Möglichkeit, Programme zwischen den Prozessoren zu transportieren. […] Trans-Datei […] Der von diesem Befehl genannte Z80-zu-8086-Quellcode-Übersetzer ist im Wesentlichen mit unserer Version identisch, die auf dem Z80 ausgeführt wird und auf der Rückseite des Montage-Handbuchs beschrieben wird. Die einzigen Unterschiede: 1. Der Übersetzer heißt trans, nicht trans86 und läuft auf dem 8086 unter 86-dos, nicht am z80 unter CP/m. 2. Die Erweiterung der Ausgabedatei ist "ASM", nicht "A86". […] [26]
  26. ^ Z80 bis 8086 Übersetzer (PDF). Seattle Computerprodukte. S. trans-1-trans-2. Abgerufen 2020-01-19. (23 Seiten)
  27. ^ Hughes, David B. (November 1982). "CP/M-86 und MS-DOS: Eine vergleichende Analyse". PC Magazine. Betriebssysteme. Vol. 1, nein. 7. Software Communications, Inc. S. 181–182, 187–190 [189]. Archiviert vom Original am 2020-02-10. Abgerufen 2020-02-10. […] Eine beeindruckende und nützliche Reihe von Dienstprogrammen für Softwareentwicklung ist eine Standardmerkmale von MS-DOS. Ein Programm, das übersetzt 8080 oder Z80 Code in 8086 Der Quellcode, ein Linker und eine Bibliotheksruntime kombinieren mit einem leistungsstarken Assembler, um dem Programmierer alles zu bieten, was erforderlich ist, um den 16-Bit-Prozessor des PCs voll auszunutzen. Das MS-DOS-Übersetzungsprogramm ermöglicht dem Benutzer, Code zu übersetzen, das unter entwickelt wurde CP/M-80 oder SB-80 […] 8-Bit-Betriebssystem […] zu MS-DOS 1.2 oder 2.0. Einige Änderungen über eine einfache Übersetzung hinaus können erforderlich sein, damit die Programme auf 16-Bit-Systemen ausgeführt werden können. Ich schlage daher vor, dass dieses Tool hauptsächlich von einem technisch geschulten Benutzer verwendet wird. […]
  28. ^ a b Garetz, Mark (1980-12-22). "Laut Garetz ...". InfoWorld - Nachrichten für Mikrocomputerbenutzer. Vol. 2, nein. 23. Beliebtes Computing, Inc. p. 12. ISSN 0199-6649. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-18. […] Letzte Woche war das halbjährliche California Computertausch Meet. Diese Veranstaltung wird von John Craig […] organisiert Sorcim […] Debütierte […] neue Produkte auf der Show […] ihr anderes Produkt war Trans-86. Trans-86 wird jeden nehmen CP/m kompatibel 8080/8085/Z-80 Quellcodedatei und übersetzen Sie sie in 8086 Code. Sie können dann die neue Datei mit Akt-86 zusammenstellen. […]
  29. ^ Blumenfeld, Dan (1982-12-04). "Z80 bis 8086 Übersetzer". Newsgroup:fa.info-cpm. Archiviert vom Original am 2020-01-16. Abgerufen 2020-01-15. [27]
  30. ^ "Compupro". PC: Die unabhängige Anleitung zu IBM -Computern (Anzeige). Vol. 1, nein. 1. Software Communications, Inc. Februar bis März 1982. S. 70–71. Premiere/Charter -Problem. Abgerufen 2020-01-23. […] WARUM? FLEXIBILITÄT. Compupro's 85/88 CPU läuft CP/M 80, 86, MP/M II und MP/M 86. Wir bieten WordStar DBase II Supercalc eine Vielzahl von Sprachen, 8080 bis 8088 Übersetzer und mehr! KOMPATIBILITÄT. Unsere Systeme können CP/M 2.2 -Dienstprogramme verwenden, um Programme für den IBM -PC zu schreiben. Sie erstellen einfach 8088 Quelle (schreiben Sie sie entweder mit Ihrem bevorzugten CP/M 80 -Editor oder übersetzen Sie sie mit SorcimTrans 86), kreuzen Sie Ihre Quelle (mit Sorcims Act86), verknüpfen Sie Ihre HEX-Datei (mit dem CP/M 80er-Lastbefehl), übersetzen Sie sie in den IBM-PC (mit dem CPM-IBM-Programm von G & G) und führen Dein IBM PC! Dieses Verfahren erfordert keine MS-DOS! […] WARUM? FLEXIBILITÄT. Compupro's 85/88 CPU führt CP/M 80 & 86 oder MS-DOS aus. Wir bieten WordStar, DBase II, Trans86, XLT86, Act86, Supercalc, CBasic, MBasic, Mfortran und mehr an! […] [28] [29]
  31. ^ Warren, Jr., Jim C. (Juli 1982). "Sorcim 'etwas'" (PDF). Silicon Gulch Gazette. Gerüchte verspürt hier. Vol. 7, nein. 30. Woodside, Kalifornien, USA: Computermesse. S. 1, 2, 4, 6, 11, 14, 15 [11]. Abgerufen 2020-01-15. […] Sorcim Ich habe gerade den Kauf von abgeschlossen IST EIN. […] Sie hatten auch einen 8080-zu-8086-Übersetzer-Trans-86-Betrieb seit über einem Jahr […]
  32. ^ a b c d e Barry, Tim (1982-04-05). "XLT-86, ein CP/M-Dienstprogramm von Digital Research", ein CP/M-Dienstprogramm ". InfoWorld - Die Newsweekly für Mikrocomputer -Benutzer. Software -Überprüfung. Vol. 4, nein. 13. Beliebtes Computing, Inc. S. 40–41, 53. ISSN 0199-6649. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-25. […] XLT-86 1.1 […] XLT-86 ist ein analytisches Übersetzerprogramm, das in geschrieben wurde PL/I-80. Es liest das gesamte 8080 -Quellprogramm, montiert es auf Maschinencode, analysiert die Auslastung der Register, Speicher und Flag 8086 Assembly-Sprache-Programm. […] Es gibt auch eine Version von XLT-86 für diejenigen unter Ihnen, die Zugriff auf a haben VAX 11/750 oder 11/780. Diese Version kann viel größere Programme übersetzen. Es kostet auch 8000 US -Dollar. […] Während der Übersetzer einige Etiketten hinzufügt und dem Quellprogramm im Rahmen der Übersetzung entspricht, werden alle originalen Kommentare und Programmetiketten intakt an das übersetzte Programm übergeben. […] Die Programmübersetzung erfolgt in einem fünfstufigen Prozess. Zunächst wird das Programm gescannt und zusammengestellt, um Symbolwerte und -positionen zu erstellen. Zweitens wird die Programmstruktur analysiert und zersetzt in Grundblöcke. Drittens werden die Grundblöcke analysiert, um zu bestimmen Programmfluss und Ressourcenverbrauch. Forth, das Blockstruktur und Zuteilung registrieren Daten werden für den Benutzer zu einer Auflistung gesammelt. Fünftens werden das Flow -Informationen und das Quellprogramm verwendet, um die zu produzieren 8086 Quellprogramm. […]
  33. ^ Kildall, Gary Arlen (1982-04-19). Swaine, Michael; Freiberger, Paul; Markoff, John Gregory (Hrsg.). "Der Gründer der digitalen Forschung erörtert seine Sicht auf das Geschäft". InfoWorld - Die Newsweekly für Mikrocomputer -Benutzer. Spezialabschnitt: CP/m. Vol. 4, nein. fünfzehn. Beliebtes Computing, Inc. S. 23–24. ISSN 0199-6649. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-17. […] Kildall: […] Vor anderthalb Jahren verbrachte ich wahrscheinlich 75% meiner Zeit für das Geschäft und 25% für das Programmieren. XLT-86 war ein Produkt, an dem ich damals gearbeitet habe, und ich habe neun Monate gebraucht, um es zu tun. Das wäre ein dreimonatiges Projekt gewesen, wenn ich mich darauf konzentrieren konnte. […]
  34. ^ Kildall, Gary Arlen (Juni - Juli 1982). Bunnell, David Hugh; Edlin, Jim (Hrsg.). "Gary Kildall-der Mann, der CP/M: CP/M-Schöpfer erstellt hat-ein detailliertes PC-exklusives Interview mit dem Software-Pionier Gary Kildall". PC Magazine. Betriebssysteme. Vol. 1, nein. 3. Software Communications, Inc. S. 32–38, 40 [35]. Abgerufen 2020-01-17. […] PC: Was sind einige der Komplexität bei der Übersetzung eines Programms? 8080 zu 8086 bilden? Kildall: Gerade Übersetzungen auf der Quellprogrammebene können Sie so ziemlich mechanisch ausführen. Beispielsweise wird ein 8080 -"-Frotten -Anweisungen für 5" in ein "Add al 5" auf der 8086 - eine sehr einfache Übersetzung der OP -Codes selbst. Die Komplexität in mechanische Übersetzung stammt aus Situationen wie folgt: Der 8080 -Anweisungen Dad H nimmt das HL -Register und fügt es hinzu. Für den 8086 wäre die äquivalente Anweisung so etwas wie DX BX hinzufügen, was in Ordnung ist, kein bestimmtes Problem. Sie sagen nur, dass das DX -Register das gleiche wie HL und BX ist wie de. Das Problem ist, dass der 8086 -Befehl einen Nebeneffekt beim Einstellen des Nullflags hat und die 8080 -Befehl nicht. Bei der mechanischen Übersetzung machen Sie am Ende etwas wie das Speichern der Flags, das Wiederherstellen der Flaggen, das Durchführen einiger Verschiebungen und Drehungen und so weiter. Diese fügen ungefähr fünf oder sechs zusätzliche Anweisungen hinzu, um den gleichen semantischen Effekt zu erzielen. Es gibt viele Sequenzen in 8080 Code, die im 8086 -Code sehr seltsame Sequenzen erzeugen. Sie kartieren einfach nicht sehr gut wegen Flaggenregistern und Dingen dieser Art. Die Art und Weise, wie wir Software erhalten, ist eine Sache, die XLT-86 genannt wird. Es ist sechs Monate oder so gestiegen. PC: Mit "besserer" Code meinst du kleiner? Kildall: 20 Prozent kleiner als wenn Sie gerade jeden OP -Code genommen und eine gerade Übersetzung durchgeführt haben, um die Register zu sparen, um die Semantik zu erhalten. PC: Wie ist die Größe des übersetzten Programms mit der 8080 -Version verglichen? KILDALL: Wenn Sie ein 8080-Programm nehmen, übertragen Sie es auf 86 Land und eine XLT-86-Übersetzung, werden Sie feststellen, dass es ungefähr 10 bis 20 Prozent größer ist. Bei 16-Bit-Maschinen ist es schwieriger, alles anzugehen. Sie erhalten OP -Codes, die im Durchschnitt etwas größer sind. Ein interessantes Phänomen ist, dass einer der Gründe, warum Sie in der 16-Bit-Welt keine enorme Geschwindigkeitserhöhung erhalten, darin besteht, dass Sie mehr OP-Codes über den Datenbus führen. […]
  35. ^ Hitt, Robert; Eubanks, Gordon; Rolander, Thomas "Tom" Alan; Gesetze, David; Michel, Howard E.; Halla, Brian; Wharton, John Harrison; Berg, Brian; Su, Weilian; Kildall, Scott; Kampe, Bill (2014-04-25). Gesetze, David (Hrsg.). "Vermächtnis von Gary Kildall: Die CP/M IEEE -Meilenstein -Widmung" (PDF) (Video -Transskription). Pacific Grove, Kalifornien, USA: Computergeschichte Museum. CHM -Referenznummer: x7170.2014. Archiviert (PDF) vom Original am 2014-12-27. Abgerufen 2020-01-19. […] Rolander: Ich habe das früher erwähnt Gary Ich war gerne ein Problem als Architekt. […] Und er würde die schönsten Bilder seiner Datenstrukturen zeichnen. […] Und als er das beendete, war er überzeugt, dass diese Datenstrukturen jetzt korrekt waren, er würde nur in einen unglaublichen manischen Codierungsmodus eingehen. Er würde nur 20 Stunden am Tag […] in diesen Zeiträumen einfach weg gehen. In einigen dieser Gelegenheiten, wenn er beim ersten Mal etwas zum Laufen bringen würde, was mitten in der Nacht sein könnte. Und alle, die Software geschrieben haben, haben beispielsweise gesehen, dass Sie beim ersten Mal auf dem Bildschirm angezeigt werden müssen. Meine Frau Lori wird Ihnen sagen, dass ich mitten in der Nacht ein paar dieser Anrufe hatte, LOGO war ein Beispiel, XLT 86 war ein weiterer, wo er es zum ersten Mal zum Laufen brachte, und er musste jemanden sehen lassen. Es war also egal, wie spät es war, er würde mich anrufen, ich müsste vorbeikommen und sehen, wie es läuft. […] [30] [31] (33 Seiten)
  36. ^ "XLT86 reduziert die Konversionsanstrengungen in der Übersetzung von Assembler -Sprachprogramme" (PDF). Digitale Forschungsnachrichten - für digitale Forschungsnutzer überall. Produktaktualisierung. Vol. 1, nein. 1. Pacific Grove, Kalifornien, USA: Digital Research, Inc. November 1981. S. 2, 7. Viertes Quartal. Abgerufen 2020-01-18. […] Ein 8- bis 16-Bit-Assembly-Code-Übersetzer ist ab sofort von verfügbar Digitale Forschung. Es wurde so konzipiert CP/m Softwareprodukte von 8080- zu 8086-Basierte Mikrocomputer. XLT86 kann verwendet werden, um alle Assemblersprachenprogramme zu übersetzen, die mit dem ASM-, MAC- oder RMAC -Assembler -Format von Digital Research kompatibel sind. Der XLT86-Programmübersetzer liest zunächst ein 8080-Assembler-Sprachprogramm und erstellt dann eine Ausgabedatei mit 8086-Assembly-Sprachanweisungen, die für den Digital Research ASM-86 Assembler akzeptabel sind. Im Gegensatz zu anderen 8086 -Codekonvertierern, die eine einzelne 8080 -Anweisung in bis zu zehn 8086 -Anweisungen übersetzen, führt XLT86 umfangreich ausgeführt Datenflussanalyse Ermittlung der Registrierungsnutzung im gesamten ursprünglichen Programm. Die durch diese Analyse gesammelten Informationen werden während der Programmübersetzung verwendet, um unnötige Flag -Speichern und Wiederherstellungsvorgänge wiederherzustellen. "Das resultierende 8086 -Programm ist sowohl einfacher als auch kompakter als äquivalente Programme, die von anderen Übersetzern produziert werden", so Curt Geske von der Digital Research Marketing Group. "Darüber hinaus ermöglicht XLT86 OEMs, Endbenutzern und Softwareanbietern, ihre Investitionen in 8080 basierende Assembler-Sprachprogramme bei der Wechsel von 16-Bit-8086-basierten Computern zu bewahren, indem die Konvertierungsaufwand reduziert werden." Programme, die von XLT86 übersetzt auf beiden übersetzt werden CP/M-86 und MP/M-86 […] XLT86 ist sofort erhältlich. Es arbeitet auf 8-Bit-CP/m oder MP/m System oder unter dem VMs Betriebssystem für die Verwendung auf Digital Equipment Corporation Vax Serie Mini-Computer. Die CP/M -Version kostet bei einem Preis $150. Die VAX -Version verkauft sich für 8.000 US -Dollar. […]
  37. ^ Kildall, Gary Arlen (1973-10-01). "Ein einheitlicher Ansatz zur globalen Programmoptimierung" (PDF). Verfahren des 1. jährlichen ACM Sigact-Sigplan-Symposiums über Prinzipien der Programmiersprachen (POPL). Popl '73. Boston, Massachusetts, USA: 194–206. doi:10.1145/512927.512945. HDL:10945/42162. S2CID 10219496. Archiviert (PDF) vom Original am 2017-06-29. Abgerufen 2006-11-20.
  38. ^ Kildall, Gary Arlen (Mai 1972). Globale Expressionsoptimierung während der Zusammenstellung (Doktorarbeit). Seattle, Washington, USA: Universität von Washington, Informatikgruppe. These Nr. 20506, Technischer Bericht Nr. 72-06-02.
  39. ^ a b XLT86 - 8080 bis 8086 Assemblersprachübersetzer - Benutzerhandbuch (PDF) (Erster Druck Ed.). Pacific Grove, Kalifornien, USA: Digital Research, Inc. September 1981. Archive.org Kopie. Archiviert (PDF) vom Original am 2016-11-18. Abgerufen 2016-11-18.
  40. ^ "XLT86 für CP/M-80". Digitale Forschung. Archiviert vom Original am 2020-01-16. Abgerufen 2020-01-18. (Nb. Dieses Zip -Archiv enthält das CP/M-80 Ausführbare XLT86.com [22 KB] sowie zwei Overlay -Dateien xlt00.ovl [8 kb] und xlt01.ovl [9 kb].).
  41. ^ Goldfarb, Ben (1982-12-09). "Re: 8080 bis 8086 Übersetzung". Newsgroup:fa.info-cpm. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-18. […] Das XLT86 -Programm nimmt ungefähr 30.000 Bytes des Hauptspeichers ein. Der Rest des Gedächtnisses bis zur Basis von CP/m, speichert das Programmdiagramm, das das 8086 -Programm übersetzt […] Ein 64K -CP/M -System ermöglicht die Übersetzung von 8080 Programme von bis zu ungefähr 6K. […] [32] [33]
  42. ^ Wharton, John Harrison (1994-08-01). "Gary Kildall, Branchenpioneer, tot mit 52: Erstellte erste Mikrocomputersprachen, Disk -Betriebssysteme". Mikroprozessorbericht. Microdesign Resources Inc. (MDR). 8 (10). Archiviert vom Original am 2016-11-18. Abgerufen 2016-11-18. […] Ironischerweise viele der Techniken Gary Pionier werden jetzt zehn Jahre später wiederentdeckt. Apfel und Dez anpressen Binäre Neukompilation als "neue" Technologie zum Portieren vorhandener Software auf die Powerpc oder Alpha die Architektur. Eigentlich stellte DRI eine vor 8080-zu-8086 Binärer Neuverbesserer in den frühen 1980er Jahren. […]
  43. ^ "Spa Award an Dr. Gary A.Kildall: 1995 Spa Lifetime Achievement Award Gewinner". Software Publishers Association (SPA). 1995-03-13. Archiviert vom Original am 2019-12-21. Abgerufen 2019-12-21 - via www.digitalresearch.biz. […] Kildall Gegründet Digital Research, Inc. (Dri) im Jahr 1976, was jetzt Teil von ist Novell. […] In den 1980er Jahren stellte DRI a vor Binärverkompiler. […]
  44. ^ Swaine, Michael (1997-04-01). "Gary Kildall und kollegiales Unternehmertum". Dr. Dobbs Journal. Archiviert von das Original am 2007-01-24. Abgerufen 2006-11-20. Im März 1995 die Software Publishers Association posthum geehrt Gary für seine Beiträge zur Computerindustrie. Sie listeten einige seiner Leistungen auf: […] in den 1980er Jahren durch Drier führte a vor Binärverkompiler. […]
  45. ^ a b c 2500 A. D. Software (1984-12-11). "Super -Assembler und die weltweit größte Auswahl an Cross -Assemblers". PC Magazine (Anzeige). Vol. 3, nein. 24. Englewood, Colorado, USA: PC Communications Corp. S. 166–167. ISSN 0745-2500. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. […] 8086/88 Assembler mit Übersetzer $ 99.50 verfügbar für MSDOs, PCDOs oder CP/M-86 […] Dieses Paket enthält auch […] einen 8080 bis 8086 Quellcode-Übersetzer (keine Begrenzung der Programmgröße zu übersetzen) [… ] Z-8000 Cross-Entwicklungspaket $ 199.50 […] Dieses leistungsstarke Paket enthält einen Z-80/8080 bis Z-8000 Assembly Language Quellcode-Übersetzer […] Die Übersetzer geben Z-8000 Quellcode aus dem Intel 8080 oder Zilog Z-80 an Quellcode. Der von diesen Paketen verwendete Z-8000-Quellcode befindet sich in der eindeutigen 2500AD-Syntax unter Verwendung von Zilog Mnemonics, mit denen der Übergang vom Z-80-Code-Schreiben zu Z-8000 einfach […] 8086 und Z-8000 XASM enthält Quellcode-Übersetzer [… ] (NB. 8086/88 XASM für Z-80 CP/M, verfügbar, Zilog System 8000 Unix, Olivetti M-20 PCOS; Z-8000 XASM für Z-80 CP/M, MS-DOS, CP/M-86, Olivetti M-20 pcos.)
  46. ^ "Zilog enthüllt das modulare Entwicklungssystem". Computerwelt - Die Newsweekly für die Computergemeinschaft. Vol. Xiii, nein. 34. Cupertino, Kalifornien, USA: Computerworld, Inc. 1979-08-20. p. 46. ISSN 0010-4841. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. […] Zilog, Inc. hat eine Reihe modularer und erweiterbarer Produktentwicklungssysteme (PDS) für eingeführt Z8-,, Z80-, und Z8000-Basierte Mikrocomputer -Designs. Alle vier Versionen des PDS 8000 -Systems - Modelle 10, 15, 25 und 30 - haben […]. Ein Standardmerkmal jedes Systems ist ein Z8000 -Softwareentwicklungspaket, das das enthält Zdosii Dateiverwaltungsroutine, PLZ/ASM hochrangige strukturierte Assembler, ein Z80/Z8000-Übersetzer und ein Z8000 L- und MACP-Makroprozessor. […] Die Modelle 10 und 25 haben die gleichen Spezifikationen wie die Modelle 15 bzw. 30. Die 10 und 25 enthalten jedoch nicht das Z8000 -Entwicklungsmodul. Das PDS -Modell 10 kostet 10.485 US -Dollar; das Modell 15 bei 11.995 USD; das Modell 25 bei 20.000 US -Dollar; und das Modell 35 bei 21.500 US -Dollar. Alle vier Systeme sind 30 Tage nach Erhalt der Bestellung erhältlich. […]
  47. ^ Orlansky, Jesse, hrsg. (1979). Proceedings 27. bis 29. November 1979 - 1. Interservice/Industry Training Equipment Conference. Das Zentrum. p. 413. Technischer Bericht Navtraequipcen. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. […] Tabelle 1. 16-Bit-Mikroprozessor-Eigenschaften […] Zilog 8000 […] Software […] Zilog erwartet zu unterstützen Z8000 mit Übersetzern für PLZ, BASIC, Cobol und Forran. Diese werden die Konvertierung von ermöglichen Z80 Code zum Z8000 -Code, da der Z8000 -SET für Z80 Superset ist. […]
  48. ^ PDS 8000 -Entwicklungssystem - Der integrierte Ansatz zum Systemdesign (Produktbrief). Zilog. Januar 1980. Abgerufen 2020-01-24. […] Z8000 Übersetzer: Bietet eine schnelle Möglichkeit, eine vorhandene Konvertierung zu konvertieren Z80 Assemblersprachprogramm zu Z8000 Code und das PLZ/ASM -Programmformat. […] [34] [35]
  49. ^ Thomas, Rebecca A.; Yates, Jean L. (1981-05-11). "Bücher, Boards und Software für die neuen 16-Bit-Prozessoren". InfoWorld - Die Zeitung für die Mikrocomputing -Community. Vol. 3, nein. 9. Beliebtes Computing, Inc. S. 42–43. ISSN 0199-6649. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. […] Digitale Forschung hat auch Pläne für a angekündigt Z8000 Version von CP/m. Anwendungssoftware wird auf den Z8000 verschoben, wenn mehr Entwicklungssoftware verfügbar ist. Ein im Handel erhältlicher Übersetzer von Z80 zu Z8000 ist erforderlich. […]
  50. ^ a b Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M oder ähnliches Betriebssystem für 64K Z8002?". Vintage Computer Forum. Genre: CP/M und MP/M. Archiviert vom Original am 2020-01-16. Abgerufen 2020-01-15. […] beide Zilog und AMC angeboten Z80-zu-Z8000 Übersetzungsprogramme. Wie Intel 8080-zu-8086 Übersetzer, es führte zu unmittelbarem Aufblähen, es sei denn, Sie waren bereit, das Ergebnis von Hand zu optimieren. Viel frühes MS-DOS-Code wurde automatisch translatiert und 8080 CP/M-Code optimiert. Ich weiß so viel von Supercalc Für den PC war zum Beispiel. Frühe (z. B. 3.3) Versionen von WordStar für dos waren es wahrscheinlich auch. […] Es gab Z80-zu-Z8000-Quellcode-Übersetzer, aber es war kein einfacher Prozess ("strenge" und "entspannte" Modi; manchmal eine Z80-zu-severale Z8000-Anleitung). Der 8086 ist viel näher am 8080 als der Z8000 am Z80. […]
  51. ^ "2500 A.D. Software 8080/Z-80 bis Z8000 Quellcode Übersetzer v2.06b". 2500 A. D. Software, Inc. 1982. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. [36]
  52. ^ "802z8000.zip 2500 A. D. Software 8080/Z-80 bis Z8000 Quellcode Übersetzer v2.06e". 2500 A. D. Software, Inc. Archiviert vom Original am 2020-02-01. Abgerufen 2020-01-24. [37]
  53. ^ a b Bodrato, Stefano (2008-10-30). "to86.awk Quellcode". GitHub. 1.6. Archiviert vom Original am 2022-01-05. Abgerufen 2022-01-05.
  54. ^ Callahan, Brian (2021-10-23) [2021-07-06, 2021-06-06]. "Intel 8080 CP/M 2.2 bis Intel 8086/8088 MS-DOS-Assembler-Übersetzer". 8088ify 1.2. Archiviert vom Original am 2022-03-31. Abgerufen 2021-11-28. [38][39][40][41]
  55. ^ "Liste der Sprachen, die zu JS kompilieren". GitHub. Archiviert vom Original am 2020-01-23. Abgerufen 2018-03-11.
  56. ^ "Jsweet". Archiviert vom Original am 2019-12-14. Abgerufen 2019-12-14.
  57. ^ "Swiftify".
  58. ^ "J2OBJC". Archiviert vom Original am 2019-10-22. Abgerufen 2019-10-22.
  59. ^ "Maia". Abgerufen 2020-05-13.
  60. ^ Theolivenbaum (2021-11-13). "H5 - C# zum JavaScript -Compiler". GitHub. Abgerufen 2021-11-14.
  61. ^ "C-> Go Übersetzer". GitHub. Archiviert vom Original am 2018-12-07. Abgerufen 2018-01-11.
  62. ^ "GO 1.5 Versionsnotizen". Archiviert vom Original am 2020-02-01. Abgerufen 2018-01-11.
  63. ^ Cox, Russ. "GO 1.3+ Compiler -Überholung". Archiviert vom Original am 2020-01-09. Abgerufen 2018-01-11.
  64. ^ a b "C2rust -Repository". GitHub. 2022-04-15.
  65. ^ "Überblick". JS_OF_OCAML - Referenzhandbuch. Ocsichen. Archiviert von das Original Am 2018-12-08. Abgerufen 2014-10-08.
  66. ^ J2EF Research Page - Vorsitzender für Software -Engineering. Se.inf.ethz.ch. doi:10.1007/978-3-642-21952-8_4. Archiviert vom Original am 2020-01-01. Abgerufen 2014-07-08.
  67. ^ "C2EF -Forschungsseite - Vorsitzende für Software -Engineering". Se.inf.ethz.ch. Archiviert vom Original am 2020-01-01. Abgerufen 2014-07-08.
  68. ^ "Swiftify Objective-C-to-Swift-Konverter". Abgerufen 2017-11-14.
  69. ^ "Laufzeitkonverter". Archiviert vom Original am 2019-07-10. Abgerufen 2017-11-14.

Weitere Lektüre

Externe Links