ソースツーソースコンパイラ

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

ソースからソースへのトランスレータソースからソースへのコンパイラS2Sコンパイラ)、トランスコンパイラ、またはトランスパイラー[1] [2] [3]は、プログラミング言語で記述されたプログラムソースコードを取得するトランスレータの一種です。その入力として、同じまたは異なるプログラミング言語で同等のソースコードを生成します。ソースからソースへのトランスレータは、ほぼ同じレベルの抽象化で動作するプログラミング言語間で変換しますが、従来のコンパイラは、より高いレベルのプログラミング言語から変換します。低水準プログラミング言語たとえば、ソースからソースへのトランスレータは、PythonからJavaScriptへのプログラムの変換を実行できますが、従来のコンパイラは、CからアセンブラまたはJavaからバイトコードなどの言語に変換します。[4]自動並列化コンパイラーは、高水準言語プログラムを入力として受け取り、コードを変換して、並列コード注釈(OpenMPなど)または言語構造(Fortranforallステートメントなど)で注釈を付けることがよくあります。[2] [5]

ソースからソースへのコンパイルのもう1つの目的は、レガシーコードを変換して、基盤となるプログラミング言語の次のバージョンまたは下位互換性を損なうAPIを使用することです。自動コードリファクタリングを実行します。これは、リファクタリングするプログラムが元の実装者の制御外にある場合(たとえば、プログラムをPython2からPython3に変換する場合、またはプログラムを古いAPIから新しいAPIに変換する場合)に役立ちます。プログラムのサイズにより、手作業でリファクタリングするのは非現実的または時間がかかります。

トランスコンパイラは、元のソースコードの開発とデバッグを容易にするために、翻訳されたコード構造をソースコードにできるだけ近づけるか、元のコードの構造を変更して、翻訳されたコードがソースコードのように見えないようにすることができます。[6]トランスコンパイルされたソースコードを元のコードにマップするデバッグユーティリティもあります。たとえば、JavaScriptソースマップ標準[要出典]では、JavaScriptコードが、たとえばJavaScript言語に縮小または生成されたときに、Webブラウザによって実行されたJavaScriptコードを元のソースにマッピングできます。[要出典]

例としては、 ClosureCompilerCoffeeScriptDartHaxeOpalTypeScriptEmscriptenなどがあります。[7]

アセンブリ言語翻訳者

いわゆるアセンブリ言語トランスレータは、さまざまなプロセッサフ​​ァミリやシステムプラットフォーム間を含む(ただしこれらに限定されない)、あるアセンブリ言語から別のアセンブリ言語にコードを変換するソース間トランスレータのクラスです

Intel CONV86

Intelは、8ビットプロセッサである8080とソース互換性のある16ビットプロセッサ8086を販売しました。[8]これをサポートするために、Intelには、 CONV86 [9] [10] [11](CONV-86 [12]およびCONVERT86 [13]とも呼ばれる)という名前の8080から8086のソースコードへのISIS-IIベースのトランスレータがありました。 [14]) 1978年以来OEMの顧客が利用でき、おそらくこの種の最も初期のプログラムです。[nb 1]複数レベルの変換をサポートし、8インチのIntelマイクロプロセッサ開発システムMDS-800で2MHzで実行されました。フロッピードライブユーザーの報告によると、それはあまり確実に機能しませんでした。[15] [16]

SCP TRANS86

Seattle Computer Products '(SCP)は、 86-DOSの開発中に1980年にTimPatersonによって書かれたTRANS86.COM [14] [17] [18]を提供しました。[19] [20] [21]ユーティリティは、Intel8080およびZilogZ80アセンブリソースコード( Zilog / Mostekニーモニックを使用)をIntel 8086用の.ASMソースコード(SCPのクロスアセンブラASM86とのみ互換性のある形式で)に変換できます。 CP / M-80 )、ただし、 opcode、レジスタ、およびモードのサブセットのみをサポートし、多くの場合、大幅な手動修正とその後のやり直しが必要でした。[22] [19]また、単なる音訳を実行するだけで、 [13] [17] [9] [10]力ずくのシングルパストランスレータは、レジスタとジャンプの最適化を実行しませんでした。[23] [24]約24KBのRAMが必要でした。[14] TRANS86.COMのSCPバージョン1は、Z80ベースのシステムで実行されました。[14] [17] 86-DOSが実行されると、Patersonは、自己ホスティングに触発されたアプローチで、TRANS86を利用して86-DOSで実行されるプログラムに変換しました。[21] [17]バージョン2に番号が付けられ、代わりにTRANS.COMという名前が付けられました。[17] [24] [23] [25][26] 1982年の後半、翻訳者は明らかにマイクロソフトからも入手可能でした。[14] [27]

Sorcim TRANS86

トランス86とも呼ばれるSorcimは、1980年12月から8080から8086へのトランスレータも提供しました。[28] [13] SCPのプログラムと同様に、CP / M-80アプリケーションコード(ASM、MAC、RMAC、またはACT80アセンブリ形式)を移植するように設計されました。MS-DOS (ACT86と互換性のある形式)。[28] [14] [29] [30] ACT80形式では、いくつかのZ80ニーモニックもサポートしていました。変換は命令ごとに行われ、条件付きジャンプにいくつかの最適化が適用されました。プログラムは、CP / M-80、MP / M-80、およびCromemco DOSで実行され、RAMは24 KB以上で、ソースファイルのサイズに制限はありませんでした。[14] [31]

Digital Research XLT86

はるかに洗練され、最適化コンパイラ技術をソース翻訳プロセスに最初に導入したのは、 1981年9月のDigitalResearchのXLT861.0でした。XLT861.1は1982年4月までに利用可能になりました。[ 32]プログラムはGaryKildallによって作成されました[13] [33 ] [34] [35]そして、Intel 8080プロセッサ用の.ASMソースコード(ASM、MAC、またはRMACアセンブラと互換性のある形式)を8086用の.A86ソースコード(ASM86と互換性がある)に変換しました。8080レジスタの使用に関するグローバルデータフロー分析を使用して、[ 36 ] [13] [37] [38] 5フェーズマルチパストランスレータはまた、コードサイズの出力を最適化し、呼び出し規約を処理します(CP / M- 80BDOS呼び出しはCP / M-86のBDOS呼び出しにマップされました)。そのため、CP / M-80およびMP / M-80プログラムはCP / M-86およびMP / M-86プラットフォームに自動的に移植できます。XLT86.COM自体は、CP / M-80プラットフォーム用のPL / I-80で作成されました。[39] [14] [32] [40]プログラムはそれ自体のために30KBのRAMと、プログラムグラフのための追加のメモリを占有していました。64 KBのメモリシステムでは、サポートされる最大ソースファイルサイズは約6KBでした[39] [14] [41] [32]そのため、大きなファイルは翻訳前にそれに応じて分割する必要がありました。[14] [32]あるいは、XLT86はDEC VAX / VMSでも利用可能でした。[14] [32] XLT86の入力と出力はソースコードレベルで機能しましたが、プログラムのトランスレータのメモリ内表現と適用されたコード最適化テクノロジにより、バイナリ再コンパイルの基盤が確立されました。[42] [43] [44]

その他

2500 AD Softwareは、Z80を搭載したCP / M-80マシン、およびZilogZEUSおよびOlivettiPCOSシステム用のXASMスイートの一部として8080から8086のソースコードトランスレータを提供しました[45]

1979年以来、ZilogはPDS8000開発システムの一部としてZ80からZ8000へのトランスレータを提供してきました。[46] [47] [48] [49] [50] [16] Advanced Micro Computers(AMC)[50] [16]および2500ADソフトウェアは、Z80からZ8000へのトランスレータも提供しました。[45]後者はTRANS [51] [52]と名付けられ、Z80 CP / M、CP / M-86、MS-DOSおよびPCOSで利用可能でした。[45]

Z88DK開発キットは、2008年にStefanoBodratoによって作成された「to86.awk」という名前のnasmをターゲットとするZ80からi486へのソースコードトランスレータを提供します。[53]これは、2003年にDouglas Beattie、Jr。によって作成された「toz80.awk」という名前の8080からZ80へのコンバーターに基づいています。[53]

2021年、ブライアンキャラハン博士は、 8088ifyという名前のnasmをターゲットにした8080 CP / M2.2をMS-DOSソースコードトランスレータに書き込みました。[54]

プログラミング言語の実装

一部のプログラミング言語の最初の実装はトランスコンパイラとして開始され、それらの言語の一部のデフォルトの実装は依然としてトランスコンパイラです。以下の表に加えて、CoffeeScriptメンテナはJavaScriptにコンパイルされる言語のリストを提供します。[55]

トランスコンパイラのリスト[4]
名前 ソース言語 目標とする言語
Cfront C ++ C
PHP用のHipHop(HPHPc) PHP C ++
バベル ES6 +JS ES5
ClojureScript Clojure JavaScript
JSweet [56] Java TypeScript
Swiftify [57] Objective-C 迅速
J2ObjC [58] Java Objective-C
Haxe Haxe ActionScript 3JavaScriptJavaC ++C#PHPPythonLua
マイア[59] マイア Verilog
ケルベロスX ケルベロス JavaScriptJavaC ++C#
h5 [60] C# JavaScript
ニム ニム C、C ++、JavaScript
ダート ダート JavaScript
ReScript OCaml JavaScript

コードベースの移植

開発者が既存のコードベースのほとんどを保持しながら別の言語に切り替えたい場合は、ソフトウェア全体を手動で書き直すよりも、トランスコンパイラを使用する方がよい場合があります。トランスコンパイラの品質に応じて、コードが正しく機能するために手動による介入が必要な場合と不要な場合があります。これは、出力ソースコードが常に変更なしで機能することを仕様が要求する「トランスコンパイルされた言語」とは異なります。コードベースの移植に使用されるすべてのトランスコンパイラーは、読みやすさとプラットフォームの規則の観点から最大のコード品質を達成する必要がある場合、出力ソースコードの手動調整を期待します。

道具 ソース言語 目標とする言語 コメントコメント
2to3スクリプト Python 2 Python 3 2to3は翻訳プロセスの自動化に最善を尽くしますが、多くの場合、さらに手動で修正する必要があります。
Emscripten LLVMバイトコード JavaScript これにより、たとえばブラウザでC / C ++コードベースを実行できます。
c2go [61] C 行け 1.5リリース以前は、GoコンパイラはCで記述されていました。コンパイラコードベースをCからGoに自動的に変換する自動トランスレータが開発されました。[62] [63] Go 1.5以降、「コンパイラとランタイムは、CなしでGoとアセンブラに実装されるようになりました」。
C2Rust [64] C さび C2Rustは、Cコードを入力として受け取りunsafe、元のコードベースとの互換性を維持することに重点を置いてRustコードを出力します。このプロセスには、文書化されたいくつかの制限があります。結果のコードを安全で慣用的なRustコードに変換することは、翻訳後の手動作業ですが、このタスクを容易にする自動ツールが存在します。[64]
Google Web Toolkit 特定のAPIを使用するJavaプログラム JavaScript Javaコードは、通常のJavaコードと比較して少し制約があります。
OcsigenJs_of_ocaml [65] OCaml JavaScript
J2Eif [66] Java エッフェル 結果のEiffelコードは、Javaプログラムに似ていますが、Eiffelの構文と規則に従ったクラスと構造を持っています。
C2Eif [67] C エッフェル 結果として得られるEiffelコードには、可能な限りクリーンにしようとするクラスと構造が含まれています。ツールは完全であり、適切に変換できない場合は、Cコードとアセンブリコードの埋め込みに依存しています。
Swiftify [68] Objective-C 迅速 Swiftifyは、Objective-CからSwiftへのオンラインソースからソースへの変換ツールです。iOSコードベースの全部または一部をSwiftに移行する開発者を支援します。変換は主にObjective-CとSwiftの間の構文の変換を目的としており、AppleがSwiftとObjective-Cランタイム間の互換性を確保するために努力したために役立ちます。
ランタイムコンバーター[69] PHP Java ランタイムコンバータは、PHPソースコードをJavaソースコードに変換する自動ツールです。PHP言語の特定の機能用のJavaランタイムライブラリがあり、PHP標準ライブラリおよび拡張関数呼び出し用のJNIを使​​用してPHPバイナリ自体を呼び出す機能もあります。

トランスコンパイラパイプライン

トランスコンパイラパイプラインは、再帰的なトランスコンパイルの結果です。テクノロジーの複数のレイヤーをつなぎ合わせ、各レイヤー間にトランスコンパイルステップを実行することで、テクノロジーを繰り返し変換し、分散言語に依存しない仕様を効果的に作成できます。

XSLTは、このような派生コードパイプライン を作成するために、多くの異なるテクノロジ間で使用できる汎用変換ツールです。

再帰的トランスコンパイル

再帰的トランスコンパイル(または再帰的トランスパイル)は、再帰的にトランスコンパイルの概念を適用して、あるテクノロジーを別のテクノロジーに繰り返し 変換する変換のパイプライン(多くの場合、単一の真実のソースから開始)を作成するプロセスです。

このプロセスを繰り返すことにより、A→B→C→D→E→Fに切り替えてから、A(v2)に戻すことができます。一部の情報は、A→A(v2)からこのパイプラインを通じて保持され、その情報(抽象レベル)は、A〜Fの各コンポーネントが同意する内容を示します。

トランスコンパイラパイプラインが生成するさまざまなバージョンのそれぞれで、その情報は保持されます。さまざまな形やサイズになる可能性がありますが、上記のパイプラインで6回トランスコンパイルされたA(v2)に戻るまでに、情報は元の状態に戻ります。

A–F–A(v2)からの各形式による変換を生き残るこの情報は、(定義上)派生コンテンツまたは派生コードです。

再帰的トランスコンパイルは、トランスコンパイラーが翻訳されたコードをソースコードにできるだけ近づけて元のソースコードの開発とデバッグを容易にするか、元のコードの構造を大幅に変更して翻訳されたものにする可能性があるという事実を利用しますコードはソースコードのようには見えません。トランスコンパイルされたソースコードを元のコードにマップするデバッグユーティリティもあります。たとえば、JavaScriptソースマップを使用すると、Webブラウザによって実行されたJavaScriptコードを、JavaScriptに変換された言語で元のソースにマッピングできます。

も参照してください

メモ

  1. ^ IntelのCONV86を使用してISIS-II8080CP / M-80ソースコードから8086CP / M-86に機械変換されたことが知られている商用プログラムの1つ、1981年9月のMicroProWordStar3.0でした。

参考文献

  1. ^ ARC-ソフトウェアシステム(1988年6月)。「AusBASICマッハC:B→Cトランスパイラー」 [BASICをC:B→Cトランスパイラーに変える]。Amiga-Magazin  [ de ] --dasComputermagazinfürAmiga-Fans(広告)(ドイツ語)。1988年、いいえ。6.エスリンゲン、ドイツ:Markt&Technik VerlagAktiengesellschaftp。101. ISSN0933-8713 _ 2020-02-01にオリジナルからアーカイブされました2020年1月18日取得[…] Achtung C -und Basic -Programmierer![…] Jetzt gibt esdenB→CTRANSPILERdas einzigartige Umwandlungs-Software-System von ARC […] DerB→CTRANSPILERübersetztlauffähigeAMIGA -compilierbarenCコードの基本プログラム。[…] Basicproqramme direkt integriertwerdenのDurchSpezialbefehle kannCコード。[…]基本-Befehlewerden erweiterttranspiliert。HAM-ModusIFF、usw.werdenunterstützt)。[…] Mit diesem Konzept neuester Generation verbindetderB→CTRANSPILERAuf einzigartige Weise die Vorteile eines Interpreters mit deneneinesコンパイラ[…] [1]
  2. ^ a b ディックの噴水(1989年12月)。「並列プログラムの構成、パート1:現在開発中のOccam Transpilerにより、並列処理用のソフトウェアの作成が容易になります」BYTE14、いいえ。13. McGraw-Hill、 Inc。pp。349–352。ISSN0360-5280 _ アーク:/ 13960 / t34188734 2022-01-06を取得p。350:[…]トランスピュータという名前は、トランスピュータトランジスタコンピュータ(つまり、コンポーネントでもあるコンピュータ)から造られたのとまったく同じように、トランスピュータコンパイラの組み合わせを示唆することを意味します。[…](注:Occamトランスピュータという用語、通常のOccamプログラムを入力として受け取り、新しいOccamソースコードを出力としてリンクからチャネルへの割り当てなどで派生させるプリプロセッサとして機能するソースからソースへのコンパイラの同義語として使用します。 。これに追加され、トランスピュータのネットワーク上で可能な限り効率的に実行されるように並列処理用に構成されます。)
  3. ^ セクター7ソフトウェアリミテッド(1993-12-07)[1992-09-22]。「トランスパイラー」米国特許商標庁の官報クラス9。1157(1版)。ベッドフォード、ベッドフォードシャー、英国:米国特許商標庁p。TM81。SN74-316.610。2020-02-01にオリジナルからアーカイブされました2020年1月18日取得[…]第2項に基づいて優先権が主張されています。1992-03-31Reg。に提出された英国出願番号1495953の44(D)1992- 03-31日付のNo.A1495953は、1999-03-31で有効期限が切れます。コンピュータソフトウェアおよびプログラム用(US Cl.38)。1991年8月1日の商取引での最初の使用1991年8月1日。(注:この会社は、 DECVMS用のBASIC-to-CトランスパイラーであるVX / BASICなどの製品を開発しています。彼らの主張にもかかわらず、彼らはトランスパイラーという用語の最初の公的な使用ではありません。つまり、ARCのBASIC-to-Cトランスパイラーを参照してください。 1988年CommodoreAmigaと1989年のConcurrentTechnology Systems(CTS)によるOccam Transpiler 。)
  4. ^ a b "トランスパイラー"devopedia.org2019-11-05にオリジナルからアーカイブされました2019年6月22日取得
  5. ^ 「コンパイラの種類」コンパイラ.net。1997〜 2005年。2019-07-19にオリジナルからアーカイブされました2010年10月28日取得
  6. ^ ファウラー、マーティン(2013-02-12)。「透過的なコンパイル」2020-01-01にオリジナルからアーカイブされました2013年2月13日取得
  7. ^ エピックゲームズ; Mozilla「HTML5エピックシタデル」
  8. ^ Scanlon、Leo J.(1988)。8086/8088/80286アセンブリ言語ブレイディブックス。p。 12ISBN 978-0-13-246919-7[…] 8086は、アセンブリ言語レベルで8080とソフトウェア互換です。[…]
  9. ^ a b ISIS-IIユーザー向けのMCS-86アセンブリ言語コンバータの操作手順A30 / 379 / 10KTL。米国カリフォルニア州サンタクララ: IntelCorporation1979年3月[1978]。注文番号9800642A2020年1月18日取得 [2](注:このマニュアルの新しいバージョンはここにあります。)
  10. ^ a b ISIS-IIユーザー向けのMCS-86アセンブリ言語コンバータの操作手順A175 / 280 / 7.5 FL 米国カリフォルニア州サンタクララ: IntelCorporation1980年2月[1978]。注文番号9800642-022020年1月18日取得 [3] [4](注:このマニュアルの古いバージョンはここにあります。)
  11. ^ ネルソン、ロスP.(1989年1月)[1988]。80386ブック:80386用のアセンブリ言語プログラマーズガイドマイクロソフトプログラミングシリーズ(1版)。MicrosoftPressp。2. ISBN 978-1-55615-138-5[…] Intelトランスレータプログラムは8080アセンブラプログラムを8086アセンブラプログラムに変換できます[…]
  12. ^ 8086ファミリユーザーズマニュアルインテルコーポレーション1979年10月[1978]。pp。2-74、2-92、B-176。注文番号9800722-03 2020年1月18日取得[…]他のプログラムは、 8086および8088で利用可能なソフトウェア開発ツールを完成させます。[…] CONV-86は、 8080 / 8085アセンブリ言語のソースモジュールをASM-86ソースモジュールに変換するために必要な変換作業のほとんどを実行できます。[…] 8080A / 8085Aアセンブリ言語プログラムをiSBC86 / 12Aボードで実行するための変換を容易にするために、CONV-86はISIS-IIオペレーティングシステムで使用できます。 [5] [6]
  13. ^ a b c d e Freiberger、Paul(1981-10-19)。「プログラム翻訳者は文字通り、時には文脈の中でそれを行います」InfoWorld –マイクロコンピューターユーザー向けのニュース特別セクション:コンピューターの互換性。3、いいえ。22. Popular Computing、Inc.p19. ISSN0199-6649_ 2020-02-01にオリジナルからアーカイブされました2020年1月15日取得[…]「ターゲットマイクロプロセッサの特異な特異性を考慮した翻訳スキームがない限り、自動翻訳者が機能する方法はありません」と、プログラマーのダニエルデイビスは説明します。 デジタルリサーチ「最終的には直接音訳されます。」[…]これらすべての制限にもかかわらず、最近、翻訳者の開発が進んでいます。最も注目すべきは、Digital Researchが8〜16ビットのアセンブリコードトランスレータを導入したことです。DigitalResearchの社長であるGaryKildallが行った調査に基づくと、XLT86は、以前に利用可能だったソフトウェアトランスレータテクノロジよりも進歩しているようです。SorcimのTransおよびIntelのConvert86と同様に、Kildallのパッケージは、アセンブリ言語コードを8080マイクロプロセッサから8086に変換します。ただし、キルドールはグローバルフロー解析を適用しています他の翻訳者の主な欠点のいくつかを考慮に入れたテクニック。この手順では、不要なコードを排除するために、8080コードのセクションでレジスタとフラグの使用状況を分析します。Digital ResearchのプログラマーであるDavisによると、Kildallが使用するアルゴリズムにより、翻訳者はプログラムを翻訳するときにコンテキストを考慮することができます。これまで、翻訳プログラムの主な問題の1つは、ソフトウェアが音訳以上のことを実行できないことでした。Digital Researchの新しい翻訳者が実際に技術を進歩させて、コンテキストを考慮できるようになれば、マイクロコンピューター市場でより多くのソフトウェア翻訳者が急増する可能性があります。
  14. ^ a b c d e f g h i j k テイラー、ロジャー; レモンズ、フィル(1982年6月)。「上方移行–パート1:トランスレーター–翻訳プログラムを使用してCP / M-86プログラムをCP / MおよびMS-DOSに移動する」[翻訳プログラムを使用してCP / MプログラムをCP / M-86およびMS-DOSに移動する] (PDF)BYTE7、いいえ。6. BYTE Publications Inc. pp。321–322、324、326、328、330、332、334、336、338、340、342、344。ISSN0360-5280 CODENBYTEDJ_ 2020-01-16のオリジナルからアーカイブ(PDF)取得   2020-01-15[…] Digital ResearchのXLT86は、ASM、MAC、またはRMACアセンブラと互換性のある形式の標準8080ソースコードを取得し、 CP / M-80またはいずれかで動作するASM86と互換性のある形式の8086ソースコードに変換します。 CP / M-86XLT86はPL / I-80で記述されているため、トランスレータはCP / M-80でスタンドアロンで実行することも、VAX / VMSで相互開発することもできます。5フェーズのマルチパスプロセスで最適化された8086コードを生成し、グローバルデータフロー分析を実行します最適なレジスタの使用法を決定します。マクロ定義はサポートされていませんが、条件付きアセンブリディレクティブは[…]マクロ拡張が必要な​​場合は、パススルーMACまたはRMACを使用してPRNファイルを生成し、編集して[…]入力用の拡張ソースファイルを生成できます。 XLT86に受け入れられます。XLT86はZ80命令を認識しません。XLT86は、繰り返しループを8086ソースコードに渡します。XLT86は、ソースプログラム全体を分析し、ブロック構造とレジスタ/フラグの使用法を決定します。この情報に基づいて、コードを最適化された方法で8086アセンブラーコードに変換します。各命令タイプの決定アルゴリズムは[…]マニュアルに記載されています[…]レジスタマッピングは一般的に[…]に従い、8086AX間の関係は緩いですおよび8080PSW ; 正確な関係は、変換時のレジスタ使用量から決定されます。コマンドラインと8080ソーステキストの埋め込みの両方で、翻訳プロセスを制御するための多くのランタイムオプションを利用できます。[…] XLT86は、8080ソースコードから8086ソースコードへの変換を最適化する合理的な仕事をする洗練されたプログラムです。BDOSCP / M-80からの呼び出しは、CP / M-86と互換性のあるBDOS呼び出しにマッピングされます。XLT86には、8080ソースコードの条件付きJMPおよびCALL命令の変換を処理するための特別な機能があります。8080命令では、JMPおよびCALL命令は、64Kバイト領域内の任意のアドレスに到達できます。8086条件付きJMP命令は、 IPのいずれかの側で128バイトにしか到達できません。[…] 登録。XLT86は、条件付きJMPのターゲットを調べます。ターゲットに到達できない場合、XLT86は条件付きJMPの意味を変更し、長いJMPをスキップしてターゲットアドレスに到達します。8086には条件付きCALLまたはRET命令がないため、条件の意味が変更され、短い条件付きJMPが実行されて、無条件CALLまたはRETがスキップされます。[…]セグメントレジスタにより、コード領域とデータ領域を分離できます。[…] XLT86は式を調べて、特定の命令に適切なセグメントを決定します。[…] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20](13ページ)
  15. ^ Guzis、Charles "Chuck" P.(2013-02-24)。「Re:IBMがIntel CPUを選択しなかった場合はどうなるでしょう!」ヴィンテージコンピュータフォーラムジャンル:その他。2020-01-16にオリジナルからアーカイブされました2020年1月15日取得[…]元の8086アセンブラは、8080を搭載したMDS-80開発システムで実行されていました。最初の製品の1つは、8080から8086のソースレベルのトランスレータでした。翻訳の速度が驚異的に遅かったことを思い出します。[…]私たちの営業担当者は、地元の営業所で変換と検証のテストを実行することを申し出ました[…]私たちは[…] ISIS-IIで仕事を始めましたそこにあるMDS200シリーズは、ハードディスクさえ持っていました。これは、MDSにとって法外に高価なオプションでした[…]私たちが夜に出発したとき、まだ歯ごたえがありました。翌朝はまだ完了していませんでした[…]約2週間後、Intelソフトウェアの担当者が翻訳者を調べた後、Edは翻訳されたプログラムを持って戻ってきました。これは、元の8085バージョンよりもサイズが約50%大きく、翻訳者に対するIntelの主張に反するものでした。[…]
  16. ^ a b c Guzis、Charles "Chuck" P.(2016-12-31)[2016-12-30]。「Re:CP / MのDOSコード?再考…」ヴィンテージコンピュータフォーラムジャンル:CP / MおよびMP / M。2020-01-16にオリジナルからアーカイブされました2020年1月15日取得[…] Intelには、 8080から8086コードまでのISISがホストするトランスレータがありました基本的なBCDである8080コードのサンプルビットを使用して、地元のIntel営業所で非常に苛立たしい一日を過ごしたことを覚えています。8080用の浮動小数点パッケージで、翻訳者が作業を完了するまで何時間も待っていましたが、家に帰るとがっかりしました。約1週間後、彼らが最終的にバグを見つけて、翻訳されたプログラムを手に入れることができるという電話を受けました。このプログラムは、オブジェクトバイトの点で元のプログラムの半分以上の大きさでした。私は当時、8086コードが8080コードよりもはるかにコンパクトであるというIntelの主張に少し懐疑的でした。そして、それがテストされたとき、爆破されたものはとにかく機能しませんでした。[…] CP / Mには他にも80から86の翻訳者がいました。Sorcimが持っていたことを思い出します。AMCにはZ80からZ8000がありました翻訳者も。[…] [Intel]トランスレータにはいくつかのレベルの変換がありました[…]詳細な操作を維持する「文字通り」がありました[…]それはISIS-IIで、MDS-800で実行されていました。 「フロッピー。[…]
  17. ^ a b c d e "Microsoft Macro Assembler(MASM)非公式チェンジリスト"bytepointer.com2018-08-21 [2016-09-08]。2019-07-17にオリジナルからアーカイブされました2020年1月18日取得[…] Tim Paterson […]は、SCPで書いた8086アセンブラーについて次のように述べています。「私が最初に書いた8086アセンブラーは、Z80アセンブリ言語であり、CP / Mで実行されていました。SCPとともに配布されたと思います。 ASM86としての8086CPUカード。また、Z80ソースコードを非効率的で実行可能な8086ソースコードに変換するトランスレータを作成しました(Intelは、公開された翻訳表を使用してこのアイデアを推進しました)。これはTRANS86と呼ばれ、CP / M用のZ80アセンブリでも記述されています。DOSが機能するようになったら、トランスレータをASM86(およびそれ自体)に適用して、DOSで実行される8086バージョンを作成しました。目の前に変更履歴はありませんが[…]、バージョン> = 2が翻訳済み(DOS)バージョンとしてマークされていると思います。履歴にバージョン番号<2が表示されている場合、それはCP / Mバージョンでした。 "[…]
  18. ^ パターソン、ティム(1983年6月)。「MS-DOSの内部調査–人気のあるオペレーティングシステムの背後にある設計上の決定– MS-DOSの歴史と設計上の決定。それがどのように機能し、どこに向かっているのか」BYTE16ビットデザイン。8、いいえ。6. McGraw-Hill、 Inc。pp。230–252。ISSN0360-5280_ CODENBYTEDJ_ 2017-03-17にオリジナルからアーカイブされました2020年1月23日取得[…] MS-DOSの設計基準[…] MS-DOSの主要な設計要件は、CP / M-80の変換互換性でした。つまり、8080の場合   または、CP / M用のZ80プログラムは、 Intel公開されたルールに従って8086用に変換され、そのプログラムはMS-DOSで正しく実行されます。CP / M-80の翻訳互換性を要件にすることで、8086ソフトウェアの迅速な開発を促進することができました。当然、シアトルコンピュータはこれに関心を持っていました。部分的な成功がありました。CP/ M-80プログラムの翻訳を選択したソフトウェア開発者は次のことを発見しました。それらは実際にMS-DOSで実行され、多くの場合最初の試行で実行されました。残念ながら、シアトルコンピュータが以前に話をしたソフトウェア開発者の多くは、MS-DOSを単に無視することを好みました。IBMパーソナルコンピュータが発表されるまで、これらの開発者はCP / M-86は、8086/8088コンピューターのオペレーティングシステムになります。[…] [21] [22]
  19. ^ a b Seattle Computer Products(1980年8月)。"86-DOS –8086オペレーティングシステム-$ 95"BYTE(広告)。5、いいえ。8. BYTE PublicationsInc.p173. ISSN0360-5280_ CODENBYTEDJ_ 2017年4月5日にオリジナルからアーカイブされました2013年8月18日取得[…] 1。CP/ M形式で記述されたZ80ソースコードファイルを読み取り、 86-DOS形式に変換します。2.トランスレータプログラムはZ80ソースコードを8086に変換します  ソースコード。3.常駐アセンブラは、変換された8086ソースコードを8086オブジェクトコードにアセンブルします。4.マイナーハンドの修正と最適化。(最近の19K Z80プログラムの翻訳では、修正に約4時間かかりました。最適化を行わなくても、元のプログラムの2倍の速度で実行されました![…]) [23]
  20. ^ Paterson、Tim(1994-10-03)。「DOSの起源:DOS Creatorは、CP / M、MS-DOS間の関係についての彼の見解を示しています」(PDF)マイクロプロセッサレポートMicroDesignリソース(MDR)。8(13)。ISSN0899-9341_ 2012年5月31日にオリジナル(PDF)からアーカイブされました。[…]主要なソフトウェア開発者に製品を8080 / Z80から8086に移植してもらうために、私はそれをできるだけ簡単にする必要があると判断しました。私はすでにZ80から8086へのソースコードトランスレータ(8080とCP / Mでホストされている)を書いていました   )。私の計画では、トランスレータを介して8080 CP / Mプログラムを実行することが、ソフトウェア開発者がプロ​​グラムを8086に移植するために必要な唯一の作業であるということでした。つまり、アプリケーションがオペレーティングシステムサービスを要求するために使用するインターフェイスはまったく同じです。翻訳ルールを適用した後のCP / Mとして[…]
  21. ^ a b Paterson、Tim(2007-09-30)。「DOSの設計」DosManDrivel2013年1月20日にオリジナルからアーカイブされまし2011年7月4日取得[…] CP / M翻訳の互換性[…] DOSを成功させるには、有用なアプリケーション(ワードプロセッシングなど)を作成する必要があります。SCPが心配でしたアプリケーションソフトウェアの作成者に、プログラムのDOSバージョンを作成するように説得するのに苦労するかもしれません。SCPの16ビットコンピュータを購入した人はほとんどいなかったので、設置ベースは小さかった。アプリケーションがなければ、多くのユーザーは存在せず、ユーザーがいなければ、多くのアプリケーションは存在しません。[…]私の希望は、既存の8ビットアプリケーションを16ビットコンピューターにできるだけ簡単に移植できるようにすることで、より多くのロゴラマーが思い切って利用できるようになることでした。そして、CP / Mの翻訳の互換性が、仕事を可能な限り簡単にするものであるように私には思えました。Intelは翻訳のルールを定義していました8ビットプログラムから16ビットプログラムへ。CP / M変換の互換性とは、CP / Mへのプログラムの要求が変換を通過したときに、DOSへの同等の要求になることを意味します。[…]そこで、CP / M翻訳の互換性を基本的な設計目標にしました。これには、翻訳の互換性を実装する非常に特殊なアプリケーションプログラムインターフェイスを作成する必要がありました。私はこれを主要なAPIとは考えていませんでした。実際、16ビットの世界により適したより多くの機能を備えた別のAPIがありました。両方のAPIは、CP / Mで定義された構造(「ファイル制御ブロック」など)を使用していました");互換性APIが必要であり、プライマリAPIに別の何かを定義する理由がわかりませんでした。[…]私自身、翻訳の互換性を利用しました。アセンブラなど、私が作成した開発ツールは元々はCP / M( CDOS )で実行されていた8ビットプログラムです。私はそれらをトランスレータに通して、DOSで実行される16ビットプログラムを思いつきました。これらの翻訳されたツールは、SCPによって出荷されたときにDOSに含まれていました。他の誰かがこのプロセスを利用したとは思わない。[…]
  22. ^ 「Z80から8086への翻訳者」。Z80 / 8086クロスアセンブラリリース1(PDF)リビジョンA(暫定版)。米国ワシントン州シアトル:シアトルコンピュータプロダクツpp。20–21 2020年1月18日取得[…] Seattle Computer Products Z80から8086へのトランスレーターは、CP / Mの下でZ80上で動作します。Zilog / Mostekを使用して記述されたZ80ソースファイルを入力として受け入れます ニーモニックを使用して、8086クロスアセンブラで受け入れ可能な形式の8086ソースファイルに変換します。ファイルを翻訳するには、TRANS86 <filename>。<ext>と入力するだけです。元の拡張子に関係なく、出力ファイルには<filename> .A86という名前が付けられ、入力ファイルと同じドライブに表示されます。トランスレータを示すために、TRNTEST.Z80という名前のファイルが含まれています。Z80アセンブリ言語全体は翻訳されていません。[…] [24]
  23. ^ a b 86-DOS – 8086用のディスクオペレーティングシステム。ユーザーズマニュアル(PDF)バージョン0.3(暫定版)。米国ワシントン州シアトル:シアトルコンピュータプロダクツ1980年。2019-07-14のオリジナルからアーカイブ(PDF)2020-02-01を取得
  24. ^ a b Paterson、Tim(2013-12-19)[1982-07-01]。「MicrosoftDOSV1.1およびV2.0:Z80から8086へのトランスレータバージョン2.21 /msdos/v11source/TRANS.ASM」コンピュータ歴史博物館マイクロソフト2019-11-12にオリジナルからアーカイブされました2014年3月25日取得 [25](注:出版社はこれがMS-DOS 1.1および2.0であると主張していますが、実際にはSCP MS- DOS1.25およびTeleVideoPC DOS 2.11です。)
  25. ^ SCP 86-DOS – 8086用のシングルユーザーディスクオペレーティングシステム(暫定版)。米国ワシントン州シアトル:シアトルコンピュータプロダクツ1980年2020年1月18日取得[…]ソースコードトランスレータは、ほとんどのZ80ソースコードを8086に変換できますマイナーな手動修正の後、アセンブラに受け入れられるソースコード。これにより、プロセッサ間でプログラムを転送するための比較的迅速で簡単な方法が提供されます。[…] TRANSファイル[…]このコマンドで呼び出されるZ80-to-8086ソースコードトランスレータは、アセンブラマニュアルの裏に記載されているZ80で実行されるバージョンと基本的に同じです。唯一の違いは次のとおりです。1。トランスレータはTRANS86ではなくTRANSと呼ばれ、CP / MではZ80ではなく、86-DOSでは8086で動作します。2.出力ファイルの拡張子は「A86」ではなく「ASM」です。[…] [26]
  26. ^ Z80から8086へのトランスレータ(PDF)シアトルコンピュータプロダクツpp。TRANS-1–TRANS-2 2020年1月19日取得 (23ページ)
  27. ^ ヒューズ、デビッドB.(1982年11月)。「CP / M-86とMS-DOS:比較分析」PCマガジンオペレーティングシステム。1、いいえ。7. Software Communications、 Inc。pp。181–182、187–190 [189]。2020-02-10にオリジナルからアーカイブされました2020-02-10を取得[…]印象的で便利なソフトウェア開発ユーティリティの配列は、MS-DOSの標準機能です。8080またはZ80コードを8086に変換するプログラムソースコード、リンカ、およびライブラリランタイムは、強力なアセンブラと組み合わされて、PCの16ビットプロセッサを最大限に活用するために必要なすべてのものをプログラマに提供します。MS-DOS変換プログラムを使用すると、ユーザーはCP / M-80またはSB-80 […] 8ビットオペレーティングシステム[…]で開発されたコードをMS-DOS1.2または2.0に変換できます。プログラムを16ビットシステムで実行するには、単純な変換以外の変更が必要になる場合があるため、このツールは主に技術的なトレーニングを受けたユーザーが使用することをお勧めします。[…]
  28. ^ a b Garetz、Mark(1980-12-22)。「ガレッツによると…」InfoWorld –マイクロコンピューターユーザー向けのニュース2、いいえ。23.ポピュラーコンピューティング社p。12. ISSN0199-6649_ 2020-02-01にオリジナルからアーカイブされました2020年1月18日取得[…]先週は半年に一度のCaliforniaComputer SwapMeetでした。このイベントはジョン・クレイグが主催します[…]ソルシム[…]デビューしました[…]ショーで新製品[…]他の製品はTRANS-86でした。TRANS-86は、 CP / M互換の8080/8085 /を使用します。 Z-80ソースコードファイルを作成し、 8086コードに変換します。その後、ACT-86を使用して新しいファイルをアセンブルできます。[…]
  29. ^ Blumenfeld、ダン(1982-12-04)。「Z80から8086へのトランスレータ」ニュースグループ:  fa.info-cpm2020-01-16にオリジナルからアーカイブされました2020年1月15日取得 [27]
  30. ^ 「CompuPro」PC:IBMコンピューターの独立ガイド(広告)。1、いいえ。1. Software Communications、Inc。 1982年2月〜3月。70〜71ページ。プレミア/チャーターの問題2020年1月23日取得[…] どうして?柔軟性。CompuProの85 / 88CPUは、CP / M 80、86、MP / M II、およびMP / M 86を実行します。WORDSTARdBASEIISUPERCALCには、多数の言語、8080から8088のトランスレータなどがあります。互換性。私たちのシステムは、CP / M2.2ユーティリティを使用してIBMPC用のプログラムを作成できます。8088ソースを作成するだけです(お気に入りのCP / M 80エディターで作成するか、Sorcimで翻訳してください)。のTRANS86)、ソースをクロスアセンブルし(SorcimのACT86を使用)、hexファイルをリンクし(CP / M 80のLOADコマンドを使用)、IBM PCに変換し(G&GのCPM-IBMプログラムを使用)、あなたのIBMPC!この手順はMS-DOSを必要としません![…] どうして?柔軟性。CompuProの85 / 88CPUは、CP / M 80&86またはMS-DOSを実行します。WORDSTAR、dBASE II、TRANS86、XLT86、ACT86、SUPERCALC、CBASIC、MBASIC、MFORTRANなどをご用意しています。[…] [28] [29]
  31. ^ Warren、Jr.、Jim C.(1982年7月)。「Sorcim'Somethin '" (PDF) .Silicon Gulch Gazette .Rumors MongeredHere。Woodside、California、USA:Computer Faire .7 (30): 1、2、4、6、11、14、15 [11] 。取得2020-01-15[…] SorcimはISAの購入を完了しました。[…]また、8080から8086へのトランスレータ– Trans-86 –が1年以上運用されています[…]
  32. ^ a b c d e バリー、ティム(1982-04-05)。「XLT-86、DigitalResearchによるCP / Mユーティリティプログラム」InfoWorld –マイクロコンピューターユーザー向けのニュースウィークリー。ソフトウェアレビュー。4、いいえ。13. Popular Computing Inc。pp。40–41、53。ISSN0199-6649 2020-02-01にオリジナルからアーカイブされました2020年1月25日取得[…] XLT-86 1.1 […] XLT-86は、PL / I-80で記述された分析トランスレータプログラムです。8080ソースプログラム全体を読み取り、それをマシンコードにアセンブルし、レジスタ、メモリ、およびフラグの使用率を分析して、最適化された8086を出力します。 アセンブリ言語プログラム。[…] VAX11 / 750または11/780にアクセスできるバージョンのXLT-86もありますこのバージョンは、はるかに大きなプログラムを翻訳できます。また、8000ドルかかります。[…]翻訳者はいくつかのラベルを追加し、翻訳の一部としてソースプログラムに相当しますが、元のコメントとプログラムラベルはすべてそのまま翻訳されたプログラムに渡されます。[…]プログラムの翻訳は5段階のプロセスで進行します。最初に、プログラムがスキャンされてアセンブルされ、シンボル値と位置が生成されます。次に、プログラム構造が分析され、基本ブロックに分解されます第3に、基本ブロックを分析して、プログラムフローとリソース使用量を決定します。第四に、ブロック構造レジスタ割り当てデータは、ユーザーのリストに収集されます。第5に、フロー情報とソースプログラムを使用して、8086ソースプログラムを作成します。[…]
  33. ^ キルドール、ゲイリー・アーレン(1982-04-19)。 スウェイン、マイケル; フライバーガー、ポール; マルコフ、ジョン・グレゴリー(編)。「DigitalResearchの創設者がビジネスに対する彼の見解について話し合っています」InfoWorld –マイクロコンピューターユーザー向けのニュースウィークリー。特別セクション:CP / M。4、いいえ。15. Popular Computing、 Inc。pp。23–24。ISSN0199-6649_ 2020-02-01にオリジナルからアーカイブされました2020年1月17日取得 […]キルドール:[…] 1年半前、私はおそらく自分の時間の75%をビジネスに、25%をプログラミングに費やしていました。XLT-86は当時私が取り組んでいた製品で、9ヶ月かかりました。集中できたら3ヶ月のプロジェクトだったと思います。[…]
  34. ^ キルドール、ゲイリー・アーレン(1982年6月〜7月)。 バネル、デビッド・ヒュー; エドリン、ジム(編)。「GaryKildall– CP / Mを作成した男:CP / Mの作成者–ソフトウェアのパイオニアであるGaryKildallとのPC専用の詳細なインタビュー」PCマガジンオペレーティングシステム。1、いいえ。3. Software Communications、 Inc。pp。32–38、40 [35] 2020年1月17日取得[…] PC:プログラムを8080から8086形式に変換する際の複雑さにはどのようなものがありますか?キルドール:ソースプログラムレベルでのストレート翻訳は、ほとんど機械的に行うことができます。たとえば、8080の「即時5の追加」命令は、8086では「AL5の追加」に変わります。これは、オペコード自体の非常に簡単な変換です。機械的な並進の複雑さ次のような状況から発生します。8080命令DADHはHLレジスタを取得し、それにDEを追加します。8086の場合、同等の命令はADD DX BXのようなものになりますが、これは問題ありませんが、特に問題はありません。DXレジスタはHLと同じであり、BXはDEと同じであると言うだけです。問題は、8086命令にはゼロフラグを設定するという副作用があり、8080命令にはないということです。機械的な平行移動では、フラグの保存、フラグの復元、シフトと回転の実行などを行うことになります。これらは、同じセマンティック効果を得るために約5つまたは6つの追加の命令を追加します。8080コードには、8086コードで非常に奇妙なシーケンスを生成するシーケンスがたくさんあります。フラグレジスタなどの理由で、マップがうまく機能しません。私たちがソフトウェアを乗り越える方法は、XLT-86と呼ばれるものです。半年くらい出ています。PC:「より良い」コードとは、より小さなことを意味しますか?Kildall:すべてのオペコードを取得して直訳を実行した場合よりも20%小さくなり、セマンティクスを保持するためにレジスタが保存されます。PC:翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] sは6ヶ月かそこら出ていました。PC:「より良い」コードとは、より小さなことを意味しますか?Kildall:すべてのオペコードを取得して直訳を実行した場合よりも20%小さくなり、セマンティクスを保持するためにレジスタが保存されます。PC:翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] sは6ヶ月かそこら出ていました。PC:「より良い」コードとは、より小さなことを意味しますか?Kildall:すべてのオペコードを取得して直訳を実行した場合よりも20%小さくなり、セマンティクスを保持するためにレジスタが保存されます。PC:翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] すべてのオペコードを取得して直訳を実行した場合よりも20%小さくなり、セマンティクスを保持するためにレジスタが保存されます。PC:翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] すべてのオペコードを取得して直訳を実行した場合よりも20%小さくなり、セマンティクスを保持するためにレジスタが保存されます。PC:翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] 翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] 翻訳されたプログラムのサイズは8080バージョンと比較してどうですか?Kildall:8080プログラムを取得し、それを86ランドに移動して、XLT-86変換を実行すると、約10〜20パーセント大きいことがわかります。16ビットマシンでは、すべてに対処するのがより困難です。平均して少し大きいオペコードを取得します。興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] 興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…] 興味深い現象は、16ビットの世界で速度が大幅に向上しない理由の1つは、データバス上でより多くのオペコードを実行しているためです。[…]
  35. ^ Huitt、Robert; ユーバンクス、ゴードン; Rolander、Thomas "Tom" Alan ; 法律、デビッド; ミシェル、ハワードE。; ハラ、ブライアン; ウォートン、ジョンハリソン; バーグ、ブライアン; スー、ウェイリアン; キルドール、スコット; カンペ、ビル(2014-04-25)。法律、デビッド(編)。「LegacyofGary Kildall:CP / M IEEEマイルストーン献身」(PDF)(ビデオ転写)。米国カリフォルニア州パシフィックグローブ:コンピューター歴史博物館CHM参照番号:X7170.2014。2014-12-27のオリジナルからアーカイブ(PDF)2020年1月19日取得[…]ローランダー:先ほどゲイリーが言った 建築家として問題に取り組むのが好きでした。[…]そして、彼は自分のデータ構造の最も美しい絵を描くでしょう。[…]そして彼がそれを終えて[…]そしてそれらのデータ構造が今正しいと確信したとき、彼はただ信じられないほどの躁病コーディングモードに入るでしょう。彼は1日20時間も行くだけでした[…]彼はこれらの期間中にちょうど行っていました。それらのいくつかの機会に、彼が最初に何かを実行するとき、それは真夜中にある可能性があります。そして、ソフトウェアを書いたすべての人は、たとえば、ソフトウェアが最初に画面に表示されたときに、誰かに伝えなければならないことを知っています。妻のロリは、私が深夜にいくつかの電話をかけたとあなたに話します、ロゴ一例として、XLT 86は別の例であり、彼はそれを初めて実行し、誰かに見てもらう必要がありました。それで、それが何時であったかは関係ありませんでした、彼は私に電話しました、私は来て、それが走っているのを見なければなりませんでした。[…] [30] [31](33ページ)
  36. ^ 「XLT86はアセンブリ言語プログラムの翻訳における変換の労力を削減します」(PDF)デジタルリサーチニュース–あらゆる場所のデジタルリサーチユーザー向け製品の更新。米国カリフォルニア州パシフィックグローブ:Digital Research、Inc。1 ( 1):2、7。1981年11月。第4四半期2020年1月18日取得[…] 8〜16ビットのアセンブリコードトランスレータがDigitalResearchから入手できるようになりましXLT86と呼ばれ、CP / Mソフトウェア製品を8080から8086に変換する時間のかかるプロセスを容易にするように設計されています ベースのマイクロコンピュータ。XLT86は、Digital ResearchのASM、MAC、またはRMACアセンブラ形式と互換性のあるアセンブリ言語プログラムを翻訳するために使用できます。XLT86プログラムトランスレータは、最初に8080アセンブリ言語プログラムを読み取り、次にDigital ResearchASM-86アセンブラに受け入れられる8086アセンブリ言語ステートメントを含む出力ファイルを生成します。単一の8080命令を最大10個の8086命令に変換する他の8086コードコンバータとは異なり、XLT86は広範なデータフロー分析を実行します元のプログラム全体でのレジスタの使用を決定します。この分析を通じて収集された情報は、プログラムの変換中に使用され、不要なフラグの保存および復元操作を排除します。DigitalResearchマーケティンググループのCurtGeske氏によると、「結果として得られる8086プログラムは、他の翻訳者が作成した同等のプログラムよりもシンプルでコンパクトです」とのことです。「さらに、XLT86を使用すると、OEM、エンドユーザー、およびソフトウェアベンダーは、変換の労力を削減することで、16ビット8086ベースのコンピューターに変更するときに8080ベースのアセンブリ言語プログラムへの投資を維持できます。」XLT86によって翻訳されたプログラムは、CP / M-86MP / M- 86の両方で実行されます[…] XLT86はすぐに利用できます。これは、8ビットのCP / MまたはMP / Mシステム、またはDigital Equipment CorporationVAX シリーズミニコンピュータで使用するためのVMSオペレーティングシステムCP / Mバージョンの価格は150ドルです。VAXバージョンの価格は8,000ドルです。[…]
  37. ^ キルドール、ゲイリー・アーレン(1973-10-01)。「グローバルプログラム最適化への統一されたアプローチ」(PDF)プログラミング言語の原則に関する第1回ACMSIGACT-SIGPLANシンポジウム(POPL)の議事録POPL'73。米国マサチューセッツ州ボストン:194–206。土井10.1145 /512927.512945hdl10945/42162S2CID10219496_ 2017年6月29日のオリジナルからアーカイブ(PDF)2006年11月20日取得  
  38. ^ キルドール、ゲイリー・アーレン(1972年5月)。コンパイル中のグローバル式の最適化(博士論文)。米国ワシントン州シアトル:ワシントン大学、コンピュータサイエンスグループ。論文No.20506、テクニカルレポートNo.72-06-02。
  39. ^ a b XLT86 – 8080〜8086アセンブリ言語翻訳者–ユーザーガイド(PDF)(初版)。米国カリフォルニア州パシフィックグローブ:Digital Research、Inc. 1981年9月。archive.orgコピー2016年11月18日のオリジナルからアーカイブ(PDF)2016年11月18日取得
  40. ^ 「CP / M-80のためのXLT86」デジタルリサーチ2020-01-16にオリジナルからアーカイブされました2020年1月18日取得(注:このZIPアーカイブには、CP / M-80実行可能ファイルXLT86.COM [22 KB]と、2つのオーバーレイファイルXLT00.OVL [8KB]およびXLT01.OVL [9 KB]が含まれています。)
  41. ^ ゴールドファーブ、ベン(1982-12-09)。「Re:8080から8086への翻訳」ニュースグループ:  fa.info-cpm2020-02-01にオリジナルからアーカイブされました2020年1月18日取得[…] XLT86プログラムは約30Kバイトのメインメモリを占有します。CP / Mのベースまでの残りのメモリには、変換中の8086プログラムを表すプログラムグラフが格納されます[…] 64K CP / Mシステムでは、最大約6Kの8080プログラムの変換が可能です。[…] [32] [33]
  42. ^ ウォートン、ジョンハリソン(1994-08-01)。「GaryKildall、業界のパイオニア、52歳で亡くなりました:最初のマイクロコンピューター言語、ディスクオペレーティングシステムを作成しました」マイクロプロセッサレポートMicroDesign Resources Inc.(MDR)。8(10)。2016年11月18日にオリジナルからアーカイブされました2016年11月18日取得[…]皮肉なことに、ゲイリーが開拓した技術の多くは、10年後の現在再発見されています。AppleDECは、既存のソフトウェアをPowerPCまたはに移植するための「新しい」テクノロジーとしてバイナリリコンパイルを宣伝しています。アルファアーキテクチャ。実際、DRIは1980年代初頭に8080から8086へのバイナリリコンパイラを導入しました。[…]
  43. ^ 「ゲイリーA.キルドール博士へのSPA賞:1995年SPA生涯功労賞受賞者」ソフトウェア出版社協会(SPA)。1995-03-13。2019-12-21にオリジナルからアーカイブされました2019年12月21日取得–www.digitalresearch.biz経由。[…]キルドールは1976年にDigitalResearch 、Inc。(DRI)を設立し、現在はNovellの一部となっています。[…] 1980年代に、DRIはバイナリリコンパイラを導入しました。[…]
  44. ^ Swaine、Michael(1997-04-01)。「ゲイリーキルドールと大学の起業家精神」ドブ博士の日記2007年1月24日にオリジナルからアーカイブされました2006年11月20日取得1995年3月、Software Publishers Associationは、コンピュータ業界への貢献に対してGaryを死後称賛しました。彼らは彼の業績のいくつかをリストアップしました:[…] 1980年代に、DRIを通じて、彼はバイナリリコンパイラを導入しました[…]
  45. ^ a b c 2500 ADソフトウェア(1984-12-11)。「スーパーアセンブラーと世界最大のクロスアセンブラーのセレクション」PCマガジン(広告)。3、いいえ。24.米国コロラド州イングルウッド:PC Communications Corp. pp。166–167。ISSN0745-2500_ 2020-02-01にオリジナルからアーカイブされました2020年1月24日取得 […]トランスレータ付き8086/88アセンブラ$ 99.50 MSDOS、PCDOS、またはCP / M-86で利用可能[…]このパッケージには、[…] 8080から8086のソースコードトランスレータも含まれています(変換するプログラムサイズに制限はありません)[… ] Z-8000相互開発パッケージ$ 199.50 […]この強力なパッケージには、Z-80 / 8080からZ-8000アセンブリ言語のソースコードトランスレータが含まれています[…]トランスレータは、Intel8080またはZilogZ-80からのZ-8000ソースコードを提供しますソースコード。これらのパッケージで使用されるZ-8000ソースコードは、Z-80コードの書き込みからZ-8000への移行を容易にするように設計されたZilogニーモニックを使用した独自の2500AD構文です[…] 8086およびZ-8000XASMにはソースコードトランスレータが含まれています[… ](NB。8086/ 88XASMはZ-80CP / M、Zilog System 8000 UNIX、Olivetti M- 20PCOSで利用可能; Z-8000 XASM for Z-80 CP / M、MS-DOS、CP / M-86、Olivetti M-20 PCOS。)
  46. ^ 「Zilogはモジュラー開発システムを発表します」Computerworld –コンピューターコミュニティのためのニュースウィークリーXIII、いいえ。34.米国カリフォルニア州クパチーノ:Computerworld、 Inc.1979-08-20。p。46. ISSN0010-4841_ 2020-02-01にオリジナルからアーカイブされました2020年1月24日取得[…] Zilog、Inc。は、 Z8Z80、およびZ8000向けの一連のモジュール式で拡張可能な製品開発システム(PDS)を発表しました。 ベースのマイクロコンピュータの設計。PDS 8000システムの4つのバージョンすべて(モデル10、15、25、および30)には[…]があります。各システムの標準機能は、ZDOSIIファイル管理ルーチンであるPLZ / ASM高レベルを含むZ8000ソフトウェア開発パッケージです。構造化アセンブラー、Z80 / Z8000トランスレーター、Z8000LおよびMACPマクロプロセッサー。[…]モデル10と25は、それぞれモデル15と30と同じ仕様です。ただし、10および25にはZ8000開発モジュールは含まれていません。PDSモデル10の価格は10,485ドルです。モデル15は11,995ドル。モデル25は20,000ドル。モデル35は21,500ドルです。4つのシステムはすべて、注文を受けてから30日後に利用可能になります。[…]
  47. ^ Orlansky、Jesse、ed。(1979)。1979年11月27〜29日の議事録–第1回サービス間/業界トレーニング機器会議センター。p。413.テクニカルレポートNAVTRAEQUIPCEN。2020-02-01にオリジナルからアーカイブされました2020年1月24日取得[…]表1.16ビットマイクロプロセッサの特性[…] Zilog 8000 […]ソフトウェア[…] Zilogは、PLZ、BASICCOBOL、およびFORTRANのトランスレータでZ8000をサポートすることを期待しています。Z8000セットはZ80にスーパーセットされているため、これらによりZ80コードからZ8000コードへの変換が可能になります。[…]
  48. ^ PDS 8000開発システム–システム設計への統合アプローチ(製品概要)。ザイログ1980年1月2020年1月24日取得[…] Z8000トランスレーター:既存のZ80アセンブリ言語プログラムをZ8000コードおよびPLZ / ASMプログラム形式に変換するための迅速な手段を提供します。[…] [34] [35]
  49. ^ トーマス、レベッカA。; イェーツ、ジャンL.(1981-05-11)。「新しい16ビットプロセッサ用の書籍、ボード、ソフトウェア」InfoWorld –マイクロコンピューティングコミュニティのための新聞3、いいえ。9. Popular Computing、 Inc。pp。42–43。ISSN0199-6649_ 2020-02-01にオリジナルからアーカイブされました2020年1月24日取得[…] Digital Researchは、 CP / MのZ8000バージョンの計画も発表しましたより多くの開発ソフトウェアが利用可能になると、アプリケーションソフトウェアはZ8000に移動されます。Z80から市販されている翻訳者 Z8000までが必要です。[…]
  50. ^ a b Guzis、Charles "Chuck" P.(2009-01-21)[2009-01-17]。「Re:64KZ8002用のCP / Mまたは同様のOS?」ヴィンテージコンピュータフォーラムジャンル:CP / MおよびMP / M。2020-01-16にオリジナルからアーカイブされました2020年1月15日取得[…] ZilogAMCの両方がZ80からZ8000の翻訳プログラムを提供しました。Intel 8080から8086へのトランスレータのように、結果を手作業で最適化する意思がない限り、すぐに肥大化してしまいました。初期のMS-DOSコードの多くは自動変換され、8080 CP / Mコードを微調整しました。私はその多くを知っています たとえば、PC用のSuperCalcは。DOS用のWordstarの初期(例:3.3)バージョンもおそらくそうでした。[…] Z80からZ8000へのソースコードトランスレータがありましたが、それは単純なプロセスではありませんでした(「厳密な」モードと「リラックスした」モード。Z80からいくつかのZ8000命令が1つある場合もあります)。8086は、Z8000がZ80よりも8080にはるかに近いです。[…]
  51. ^ 「2500ADソフトウェア8080 / Z-80からZ8000ソースコードトランスレータv2.06b」2500 AD Software、Inc。1982.2020-02-01のオリジナルからアーカイブ2020年1月24日取得 [36]
  52. ^ 「802Z8000.ZIP2500ADソフトウェア8080 / Z-80からZ8000ソースコードトランスレータv2.06e」2500 AD Software、Inc.2020-02-01のオリジナルからアーカイブ2020年1月24日取得 [37]
  53. ^ a b Bodrato、Stefano(2008-10-30)。「to86.awkソースコード」GitHub1.6。2022-01-05にオリジナルからアーカイブされました2022-01-05を取得しました。
  54. ^ キャラハン、ブライアン(2021-10-23)[2021-07-06、2021-06-06]。「Intel8080CP / M2.2からIntel8086 / 8088MS-DOSアセンブリ言語トランスレータ」8088ify1.2。2021-11-28にオリジナルからアーカイブされました2021-11-28を取得しました。 [38] [39] [40] [41]
  55. ^ 「JSにコンパイルされる言語のリスト」GitHub2020-01-23にオリジナルからアーカイブされました2018年3月11日取得
  56. ^ 「JSweet」2019-12-14にオリジナルからアーカイブされました2019年12月14日取得
  57. ^ 「Swiftify」
  58. ^ 「J2ObjC」2019-10-22にオリジナルからアーカイブされました2019年10月22日取得
  59. ^ 「マイア」2020年5月13日取得
  60. ^ theolivenbaum(2021-11-13)。「h5🚀-C#からJavaScriptコンパイラへ」GitHub2021-11-14を取得
  61. ^ 「C-> Gotranslator」GitHub2018年12月7日にオリジナルからアーカイブされまし2018年1月11日取得
  62. ^ 「Go1.5リリースノート」2020-02-01にオリジナルからアーカイブされました2018年1月11日取得
  63. ^ コックス、ラス「Go1.3 +コンパイラのオーバーホール」2020-01-09にオリジナルからアーカイブされました2018年1月11日取得
  64. ^ a b GitHubhttps://github.com/immunant/c2rust/blob/master/README.md {{cite web}}欠落または空|title=ヘルプ
  65. ^ "Js_of_ocaml"2018年12月8日にオリジナルからアーカイブされました2014年10月8日取得
  66. ^ J2Eifリサーチページ–ソフトウェアエンジニアリングの議長Se.inf.ethz.ch。土井10.1007 / 978-3-642-21952-8_42020-01-01にオリジナルからアーカイブされました2014年7月8日取得
  67. ^ 「C2Eif研究ページ–ソフトウェア工学の議長」Se.inf.ethz.ch。2020-01-01にオリジナルからアーカイブされました2014年7月8日取得
  68. ^ 「SwiftifyObjective-CからSwiftへのコンバーター」2017年11月14日取得
  69. ^ 「ランタイムコンバーター」2019-07-10にオリジナルからアーカイブされました2017年11月14日取得

さらに読む

外部リンク