ソースツーソース トランスレータ、ソースツーソース コンパイラ( S2S コンパイラ)、トランスコンパイラ、またはトランスパイラ[1] [2] [3]は、プログラミング言語で記述されたプログラムのソース コードを入力として受け取り、同じまたは異なるプログラミング言語で同等のソース コードを生成するタイプのトランスレータです。ソースツーソース トランスレータは、ほぼ同じ抽象レベルで動作するプログラミング言語間で変換しますが、従来のコンパイラは、高レベルのプログラミング言語から低レベルのプログラミング言語に変換します。たとえば、ソースツーソース トランスレータは、PythonからJavaScriptへのプログラムの変換を実行しますが、従来のコンパイラは、 Cなどの言語からアセンブリ、または Java からバイトコードに変換します。[ 4 ]自動並列化コンパイラは、高レベル言語プログラムを入力として受け取り、コードを変換して、並列コード注釈 ( OpenMPなど) または言語構造 ( Fortranのステートメントなど) で注釈を付けます。[2] [5]forall
ソースからソースへのコンパイルのもう 1 つの目的は、レガシー コードを、基盤となるプログラミング言語の次のバージョンまたは下位互換性が失われる API を使用するように変換することです。自動コード リファクタリングが実行されます。これは、リファクタリングするプログラムが元の実装者の制御外にある場合 (たとえば、プログラムを Python 2 から Python 3 に変換する場合や、プログラムを古い API から新しい API に変換する場合)、またはプログラムのサイズが大きいために手動でリファクタリングするのが非現実的または時間がかかる場合に役立ちます。
トランスコンパイラは、元のソースコードの開発とデバッグを容易にするために、変換されたコード構造をソースコードにできるだけ近づけるか、または元のコード構造を大幅に変更して、変換されたコードがソースコードに似ていないように見えるようにします。 [6]また、トランスコンパイルされたソースコードを元のコードにマッピングするデバッグユーティリティもあります。たとえば、JavaScriptソースマップ標準[引用が必要]を使用すると、JavaScriptコードが縮小されたり、JavaScriptにトランスコンパイルされた言語によって生成されたりした場合に、Webブラウザーで実行されるJavaScriptコードを元のソースにマッピングできます。[引用が必要]
例としては、Closure Compiler、CoffeeScript、Dart、Haxe、Opal、TypeScript、Emscriptenなどが挙げられます。[7]
アセンブリ言語トランスレータ
いわゆるアセンブリ言語トランスレータは、異なるプロセッサ ファミリやシステム プラットフォーム間を含む (ただし、これらに限定されない)アセンブリ言語のコードを別のアセンブリ言語に変換するソース間トランスレータの一種です。
インテル CONV86
インテルは、 16ビットプロセッサ8086を8ビットプロセッサ8080とソース互換であるとして販売した。 [8]これをサポートするために、インテルは8080から8086へのISIS-IIベースのトランスレータであるCONV86 [9] [10] [11] [12](CONV-86 [13]やCONVERT 86 [14] [15]とも呼ばれる)というソースコードを1978年からOEM顧客に提供しており、これはおそらくこの種のプログラムとしては最も古いものであろう。[注 1]このプログラムは複数レベルの変換をサポートし、 8インチフロッピードライブを備えたインテルマイクロプロセッサ開発システムMDS-800で2MHzで動作した。ユーザの報告によると、このプログラムは信頼性に欠けていたという。[16] [17]
SCPトランス86
シアトルコンピュータプロダクツ(SCP)は、86-DOSの開発中に1980年にティム・パターソンによって書かれたTRANS86.COMを提供していた。[15] [18] [19] 。 [20] [21] [22]このユーティリティは、Intel 8080およびZilog Z80アセンブリソースコード(Zilog/ Mostekニーモニック付き)をIntel 8086用の.ASMソースコード( CP/M-80用のSCPのクロスアセンブラASM86とのみ互換性のある形式)に変換できたが、オペコード、レジスタ、モードのサブセットしかサポートしていなかったため、後で大幅な手作業による修正ややり直しが必要になることが多かった。[23] [20]また、単なる音訳しか実行しないため、[14] [18] [9] [10]この力ずくのシングルパストランスレータは、レジスタやジャンプの最適化を一切行わなかった。[24] [25]約24KBのRAMを消費した。[15] TRANS86.COMのSCPバージョン1はZ80ベースのシステムで動作しました。[15] [18] 86-DOSが動作するようになると、パターソンは自己ホスティングにヒントを得たアプローチで、TRANS86を利用して86-DOSで動作するプログラムに変換しました。[22] [18]バージョン2と番号が付けられ、代わりにTRANS.COMと名付けられました。[18] [25] [24] [26] [27] 1982年後半には、このトランスレータはマイクロソフトからも入手可能になったようです。[15] [28]
ソルシム TRANS86
TRANS86 とも呼ばれるSorcim は、 1980 年 12 月から 8080 から 8086 へのトランスレータも提供していました。 [29] [ 14] SCP のプログラムと同様に、CP/M-80 アプリケーション コード (ASM、MAC、RMAC、または ACT80 アセンブリ形式) をMS-DOS (ACT86 と互換性のある形式)に移植するように設計されました。 [29] [15] [30] [31] ACT80 形式では、いくつかの Z80 ニーモニックもサポートされていました。変換は命令ごとに行われ、条件付きジャンプにいくつかの最適化が適用されました。プログラムは、最小 24 KB の RAM を備えた CP/M-80、MP/M-80、およびCromemco DOSで実行され、ソース ファイルのサイズに制限はありませんでした。[15] [32]
デジタルリサーチ XLT86
さらに洗練され、ソース変換プロセスに最適化コンパイラ技術を導入した最初のものは、1981年9月のDigital ResearchのXLT86 1.0でした。XLT86 1.1は1982年4月に利用可能になりました。[33]このプログラムはGary Kildallによって書かれ[14] [34] [35] [36]、Intel 8080プロセッサ用の.ASMソースコード(ASM、MAC、またはRMACアセンブラと互換性のある形式)を8086用の.A86ソースコード(ASM86と互換性がある)に変換しました。8080レジスタの使用に関するグローバルデータフロー解析を使用することで、 [37] [14] [38] [39] 5フェーズのマルチパストランスレータは、コードサイズに合わせて出力を最適化し、呼び出し規約(CP/M-80 BDOS呼び出しはCP/M-86のBDOS呼び出しにマッピングされた)を処理するため、CP/M-80およびMP/M-80プログラムをCP/M-86およびMP/M-86プラットフォームに自動的に移植できます。XLT86.COM自体は、CP/M-80プラットフォーム用にPL/I-80で記述されました。[40] [15] [33] [41]プログラムは、それ自体で30KBのRAMと、プログラムグラフ用の追加メモリを占有しました。 64KBメモリシステムでは、サポートされる最大ソースファイルサイズは約6KBであったため、 [40] [15] [42] [33] 、[15] [33]あるいは、XLT86はDEC VAX/VMSでも利用可能でした。[15] [33] XLT86の入出力はソースコードレベルで機能しましたが、トランスレータのプログラムのメモリ内表現と適用されたコード最適化技術により、バイナリ再コンパイルの基礎が築かれました。[43] [44] [45]
その他
2500 ADソフトウェアは、Z80を搭載したCP/M-80マシン、およびZilog ZEUSとOlivetti PCOSシステム向けのXASMスイートの一部として、8080から8086へのソースコードトランスレータを提供しました。[46]
1979年以来、ザイログはPDS 8000開発システムの一部としてZ80からZ8000へのトランスレータを提供していた。 [47] [48] [49] [50] [51] [17] アドバンスト・マイクロ・コンピューターズ(AMC)[51] [17]と2500 ADソフトウェアもZ80からZ8000へのトランスレータを提供していた。[46]後者はTRANS [52] [53]と名付けられ、Z80 CP/M、CP/M-86、MS-DOS、PCOSで利用可能であった。[46]
Z88DK開発キットには、2008年にStefano Bodratoによって書かれた「to86.awk」というnasmをターゲットとしたZ80からi486へのソースコードトランスレータが含まれています。 [54]これは、2003年にDouglas Beattie, Jr.によって書かれた「toz80.awk」という8080からZ80へのコンバータに基づいています。[54]
2021年、ブライアン・キャラハンはnasmをターゲットとした8080 CP/M 2.2からMS-DOSへのソースコードトランスレータ「8088ify」を作成した。[55]
プログラミング言語の実装
いくつかのプログラミング言語の最初の実装はトランスコンパイラとして始まり、それらの言語のいくつかではデフォルトの実装が今でもトランスコンパイラです。以下の表に加えて、CoffeeScriptのメンテナーはJavaScriptにコンパイルされる言語のリストを提供しています。[56]
コードベースの移植
開発者が既存のコードベースのほとんどを保持したまま別の言語に切り替えたい場合、ソフトウェア全体を手作業で書き直すよりも、トランスコンパイラを使用する方がよい場合があります。トランスコンパイラの品質によっては、コードが適切に動作するために手動の介入が必要になる場合と、そうでない場合があります。これは、出力ソース コードが常に変更なしで動作することが仕様で要求されている「トランスコンパイルされた言語」とは異なります。コードベースの移植に使用されるすべてのトランスコンパイラでは、読みやすさとプラットフォームの慣習の点で最高のコード品質を実現する必要がある場合、出力ソース コードを手動で調整する必要があります。
トランスコンパイラパイプライン
トランスコンパイラ パイプラインは、再帰的なトランスコンパイルから生まれます。複数のテクノロジ レイヤーを連結し、各レイヤー間にトランスコンパイル ステップを配置することで、テクノロジを繰り返し変換し、分散型言語に依存しない仕様を効果的に作成できます。
XSLT は、さまざまなテクノロジ間で使用して、このような派生コードパイプラインを作成できる汎用変換ツールです。
再帰トランスコンパイル
再帰的トランスコンパイル(または再帰的トランスパイリング) は、トランスコンパイルの概念を再帰的に適用して、1 つのテクノロジーを別のテクノロジーに繰り返し変換する変換パイプライン (多くの場合、単一の真実のソースから開始) を作成するプロセスです。
このプロセスを繰り返すことで、A → B → C → D → E → F に変換し、A(v2) に戻すことができます。このパイプラインを通じて、A → A(v2) から一部の情報が保存され、その情報 (抽象レベルで) は、コンポーネント A から F のそれぞれが同意する内容を示します。
トランスコンパイラ パイプラインが生成するさまざまなバージョンのそれぞれで、その情報は保持されます。さまざまな形やサイズになる場合がありますが、上記のパイプラインで 6 回トランスコンパイルされて A (v2) に戻ると、情報は元の状態に戻ります。
A~F~A(v2)の各形式を経た変換を生き残ったこの情報は、(定義上)派生コンテンツまたは派生コードです。
再帰的トランスコンパイルは、トランスコンパイラが、元のソース コードの開発とデバッグを容易にするために、変換されたコードをソース コードにできるだけ近づけるか、または元のコード構造を大幅に変更して、変換されたコードがソース コードに似ていないようにするという事実を利用します。また、トランスコンパイルされたソース コードを元のコードにマップするデバッグ ユーティリティもあります。たとえば、JavaScriptソース マップを使用すると、Web ブラウザーによって実行される JavaScript コードを、JavaScript にトランスコンパイルされた言語の元のソースにマップできます。
参照
- バイナリ再コンパイラ – すでにコンパイルされたコードを変換または最適化するコンパイラ
- C から HDL – C のようなプログラムをハードウェア記述言語に変換
- コード生成(コンパイラ) – コンピュータコードを機械が読み取り可能な形式に変換する
- DMS ソフトウェア リエンジニアリング ツールキット – プログラム変換ツール – 明示的なパターン指示書き換えルールを使用するソースからソースへのコンパイラ フレームワーク
- f2c – Fortran 77 を C コードに変換するプログラム – Fortran 77 から C へのソースツーソース コンパイラ
- Honeywell Liberator – メインフレーム コンピュータ ファミリ( Honeywell H200でIBM 1401プログラムを実行)
- 中間表現 – コンパイラまたは仮想マシンがソースコードを表現するために内部的に使用するデータ構造またはコード
- 言語バインディング – 別のプログラミング言語でコーディングされた別のライブラリを使用できるようにするソフトウェアライブラリ
- 言語に依存しない仕様 - プログラミング言語間で相互運用可能なコンピュータプログラミング標準
- 言語の相互運用性 - プログラミング言語間の相互運用性
- オブジェクトコードオプティマイザー、バイナリ最適化とも呼ばれる – ソフトウェアコンパイルの側面
- プリプロセッサ – 別のプログラムの入力を処理するプログラム
- プログラム変換
- ROSE (コンパイラ フレームワーク) – ソースからソースへのコンパイラ フレームワーク
- トランスレータ(コンピューティング) – コードをあるプログラミング言語から別のプログラミング言語に変換するコンピュータ プログラム
- XSLT – XML文書を変換するための言語
注記
参考文献
- ^ ARC-Softwaresystems (1988 年 6 月)。 「Aus BASIC mach C: B→C Transpiler」[BASIC を C: B→C Transpiler に変える]。Amiga-Magazin (広告) (ドイツ語)。 Vol. 1988年、いいえ。 6. エスリンゲン、ドイツ: Markt & Technik Verlag Aktiengesellschaft。 p. 101.ISSN 0933-8713 。 2020-02-01 のオリジナルからアーカイブされました。2020年1月18日に取得。
[…] Achtung C - およびBasic - プログラマー! […] B→C TRANSPILER は ARC の Umwandlungs-Software-System から提供されています […] B→C TRANSPILER はAMIGAから提供されており、C コードを使用したコンパイラの基本プログラムです。 […] 基本プログラムの C コードを完全に理解できるようになります。 […] Basic-Befehle werden erweitert transpiliert。 ( HAM-Modus、IFF、 usw. werden unterstützt)。 […] Mit dieem Konzept neuester Generation Verbindet der B→C TRANSPILER auf einzigartige Weise die Vorteile eines Interpreters mit denen eines Compilers […]
[1] - ^ アブ Pountain, Dick (1989 年 12 月)。「並列プログラムの構成、パート 1: 現在開発中の Occam Transpiler により、並列処理用のソフトウェアの作成が容易になります」。BYTE 。第 14 巻、第 13 号。McGraw -Hill, Inc. pp. 349– 352。ISSN 0360-5280。ark :/13960/t34188734。2022年 1 月 6 日取得。p. 350: […]
Transpiler
という名前は、transputerとcompilerの組み合わせを示唆するものであり、 transputer がトランジスタとコンピュータ(つまり、コンポーネントでもあるコンピュータ)から作られたのと同じです。 […]
(注: Occam トランスパイラという用語は、通常のOccamプログラムを入力として受け取り、リンクとチャネルの割り当てなどが追加された新しい Occam ソース コードを出力として導出し、トランスピュータのネットワーク上で可能な限り効率的に並列処理を実行するように構成するプリプロセッサとして機能するソースからソースへのコンパイラの同義語として使用します。 ) - ^ Sector 7 Software Limited (1993-12-07) [1992-09-22]. 「Transpiler」.米国特許商標庁官報. クラス 9. 第 1157 巻 (第 1 版). ベッドフォード、ベッドフォードシャー、英国:米国特許商標庁. p. TM 81. SN 74-316.610. 2020-02-01 にオリジナルからアーカイブ。2020-01-18に取得。
[…] 優先権は、1992-03-31 に出願された英国出願番号 1495953 の Sec. 44(D) に基づいて主張されました。登録番号 A1495953、日付 1992-03-31、有効期限 1999-03-31。コンピュータ ソフトウェアおよびプログラム用 (US Cl. 38)。初回使用は 1991-08-01、商用化は 1991-08-01。
(注: この会社は、 DEC VMS用の BASIC から C へのトランスパイラである VX/BASIC などの製品を開発しています。同社の主張にもかかわらず、トランスパイラという用語が初めて公に使用されたわけではありません。たとえば、1988 年の ARC の Amiga 用 BASIC から C へのトランスパイラや、1989 年の Concurrent Technology Systems (CTS) による Occam Transpiler などがあります。) - ^ ab "Transpiler". devopedia.org . 2017-03-17. 2019-11-05時点のオリジナルよりアーカイブ。2019-06-22に取得。
- ^ 「コンパイラの種類」。compilers.net。1997–2005年。2019年7月19日時点のオリジナルよりアーカイブ。2010年10月28日閲覧。
- ^ Fowler, Martin (2013-02-12). 「Transparent Compilation」。2020年1月1日時点のオリジナルよりアーカイブ。2013年2月13日閲覧。
- ^ Epic Games、Mozilla。「HTML5 Epic Citadel」。
- ^ Scanlon, Leo J. (1988). 8086/8088/80286 アセンブリ言語。Brady Books。p. 12。ISBN 978-0-13-246919-7
[…]
8086 は
アセンブリ言語レベルで
8080
とソフトウェア互換性があります
。 […] - ^ アブ MCS-86 アセンブリ言語コンバーター操作手順書 (ISIS-II ユーザー向け)。A30/379/10K TL。米国カリフォルニア州サンタクララ: Intel Corporation。1979年 3 月 [1978]。注文番号 9800642A。2020年 1 月 18 日に取得。[2] (注:このマニュアルの新しいバージョンはここにあります。)
- ^ アブ MCS-86 アセンブリ言語コンバーター操作手順書 (ISIS-II ユーザー向け)。A175/280/7.5 FL。米国カリフォルニア州サンタクララ: Intel Corporation。1980年 2 月 [1978]。注文番号 9800642-02。2020年 1 月 18 日に取得。[3] [4] (注:このマニュアルの古いバージョンはここにあります。)
- ^ 「8086/8087/8088 開発環境」。ASM86 言語リファレンス マニュアル(PDF)。米国カリフォルニア州サンタクララ: Intel Corporation。1983 年 11 月 [1981 年 9 月]。pp. 1-1 – 1-2。注文番号 121703-003 。2023年 11 月 28 日に閲覧。 (404ページ)
- ^ Nelson, Ross P. (1989 年 1 月) [1988]。『80386 ブック: 80386 用アセンブリ言語プログラマーガイド』。Microsoft プログラミング シリーズ (第 1 版)。Microsoft Press。p . 2。ISBN 978-1-55615-138-5[ …
] Intel の翻訳プログラムは、 8080アセンブラ プログラムを8086アセンブラ プログラムに変換できます[…]
- ^ 8086 ファミリー ユーザーズ マニュアル。Intel Corporation。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 アセンブリ言語プログラムを iSBC 86/12A ボードで実行できるように変換するために、CONV-86 は ISIS
-II
オペレーティング システムで使用できます。
[5] [6]
- ^ abcde Freiberger, Paul (1981-10-19). 「プログラム トランスレータは文字通りに、そして時には文脈に従ってそれを実行します」。InfoWorld – マイクロコンピュータ ユーザー向けニュース。 特別セクション: コンピュータの互換性。 第 3 巻、第 22 号。Popular Computing, Inc. p. 19。ISSN 0199-6649。 2020-02-01 にオリジナルからアーカイブ。2020-01-15に取得。
[…] 「ターゲット マイクロプロセッサの固有の特性を考慮した変換スキームがない限り、自動トランスレータが機能する方法はありません」と、
Digital Researchのプログラマーである Daniel Davis は説明します。「直接の
音訳
になってしまいます
。」 […] これらすべての制限にもかかわらず、トランスレータの開発は最近進歩しています。最も注目すべきは、Digital Research が 8 ビットから 16 ビットへのアセンブリ コード トランスレータを発表したことです。Digital Research 社長の
Gary Kildall
氏の研究によると、XLT86 は、従来のソフトウェア トランスレータ技術よりも進歩しているようです。Sorcim 氏の Trans や Intel の Convert 86 と同様に
、
Kildall
氏
のパッケージは、アセンブリ言語コードを
8080マイクロプロセッサから
8086
に変換します
。ただし、Kildall 氏は、他のトランスレータの主な欠点のいくつかを考慮した
グローバル フロー分析
手法を採用しています。この手順では、8080 コードのセクションにおけるレジスタとフラグの使用を分析し、不要なコードを削除します。Digital Research のプログラマー Davis 氏によると、Kildall 氏が使用するアルゴリズムにより、トランスレータはプログラムを変換する際にコンテキストを考慮することができます。これまで、トランスレータ プログラムの大きな問題の 1 つは、ソフトウェアが音訳以上の処理を実行できないことでした。 Digital Research 社の新しいトランスレータが実際にコンテキストを考慮できるレベルまで技術を進歩させれば、マイクロコンピュータ市場にさらに多くのソフトウェア トランスレータが普及する可能性があります。
- ^ abcdefghijk Taylor, Roger; Lemmons, Phil (1982 年 6 月). 「上位移行 – パート 1: トランスレータ – CP/M-86 プログラムを CP/M および MS-DOS に移行する」 [CP/M プログラムを CP/M-86 および MS-DOS に移行する変換プログラムの使用] (PDF) . BYTE . 第 7 巻、第 6 号 。BYTE Publications Inc. pp. 321– 322, 324, 326, 328, 330, 332, 334 , 336, 338, 340, 342, 344。ISSN 0360-5280。CODEN BYTEDJ。2020年 1 月 16 日のオリジナルからアーカイブ(PDF) 。2020-01-15に取得。
[…]
Digital Research
の XLT86 は、ASM、MAC、または RMAC アセンブラと互換性のある形式の標準
8080
ソース コードを受け取り、8080 ソース コードを、
CP/M-80
または
CP/M-86
で動作する ASM86 と互換性のある形式の
8086ソース コードに変換します。XLT86 は
PL/I-80
で記述されているため
、トランスレータは CP/M-80 でスタンドアロンで実行することも、 VAX/VMS での
クロス開発
用に実行することもできます。5 段階の
マルチパス
プロセスで最適化された 8086 コードを生成し、
グローバル データ フロー分析を
行って最適なレジスタ使用法を決定します。マクロ定義はサポートされていませんが、条件付きアセンブリ ディレクティブは […] マクロ展開が必要な場合は、パススルー MAC または RMAC を使用して編集可能な PRN ファイルを作成し、[…] XLT86 に受け入れ可能な入力用の拡張ソース ファイルを作成できます。 XLT86 は
Z80
命令を認識しません
。XLT86 は繰り返しループを 8086 ソース コードに渡します。XLT86 はソース プログラム全体を解析し、
ブロック構造
とレジスタ/フラグの使用法を決定します。この情報を基に、コードを 8086 アセンブラ コードに最適化して変換します。各命令タイプの決定アルゴリズムは、マニュアルに記載されています。レジスタ マッピングは、通常、8086
AX
と 8080
PSW
の間に緩い関係がある […] に従います。正確な関係は、
変換時
のレジスタの使用法から決定されます。コマンド ラインと 8080 ソース テキストに埋め込まれた多くの
ランタイムオプションを使用して、変換プロセスを制御できます。[…]
XLT86
は、8080 ソース コードから 8086 ソース コードへの変換を適切に最適化する高度なプログラムです。BDOS
CP/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ページ) - ^ Guzis, Charles "Chuck" P. (2013-02-24). 「Re: What if IBM didn't choose the Intel CPU!」. Vintage Computer Forum . ジャンル: その他. 2020-01-16 にオリジナルからアーカイブ。2020-01-15に取得。
[…] オリジナルの
8086
アセンブラは、
8080
を搭載した MDS-80 開発システムで動作しました。最初の製品の 1 つは、8080 から 8086 へのソース レベル トランスレータでした。変換速度が驚くほど遅かったことを覚えています。 […] 営業担当者が、地元の営業所で変換と検証のテストを実行することを提案しました […] 私たちは […]そこで
ISIS-II
MDS 200 シリーズで作業を開始しました。MDS としては法外に高価なオプションであるハード ディスクも用意されていました […] 夜に帰るときもまだ処理が続いていました。翌朝になってもまだ終わっていませんでした […] 約 2 週間後、
Intel のソフトウェア担当者がトランスレータを確認した後、Ed が翻訳されたプログラムを持って戻ってきました。そのプログラムは、元の
8085
バージョンよりも約 50% 大きくなっており
、Intel のトランスレータに関する主張とは相反するものでした。 […]
- ^ abc Guzis, Charles "Chuck" P. (2016-12-31) [2016-12-30]. "Re: DOS code in CP/M? Revisited…". Vintage Computer Forum . ジャンル: CP/M および MP/M。 2020-01-16 にオリジナルからアーカイブ。2020-01-15に取得。
[…]
Intel には、
8080
から
8086
コードへの ISIS ホスト トランスレータがありました。私は、8080 コードのサンプル ビット (8080 用の基本的な
BCD
浮動小数点パッケージ)を持って地元の Intel 営業所に行き
、トランスレータが作業を完了するまで何時間も待って、がっかりして家に帰ったことを覚えています。約 1 週間後、ようやくバグが修正され、翻訳されたプログラムを受け取れるという電話を受けました。このプログラムは、オブジェクト バイト数で見ると、元のプログラムの 2 倍以上の大きさでした。私は、8086 コードは 8080 のコードよりはるかにコンパクトであるという当時の Intel の主張に少し懐疑的でした。それに、この忌々しいプログラムは、テストしてみるとどうせ動作しませんでした。 […]
CP/M用の 80 から 86 へのトランスレータは他にもありました。Sorcim
が
1 つ持っていた
のを覚えています。AMC
にも
Z80
から
Z8000
へのトランスレータがありました
。 […] [Intel] トランスレータには複数のレベルのトランスレーションがありました […] 詳細な操作を保存する「リテラル」がありました […] それは
ISIS-II
で、MDS-800 で 8 インチ フロッピーで 2 MHz で動作していました。 […]
- ^ abcde 「Microsoft Macro Assembler (MASM) 非公式変更リスト」。bytepointer.com。2018-08-21 [2016-09-08]。2019-07-17時点のオリジナルよりアーカイブ。2020-01-18に取得。
[…]
Tim Paterson […] は、
SCP
在籍中に作成した
8086
アセンブラについて次のように述べています
。「私が最初に作成した 8086 アセンブラは
Z80
アセンブリ言語で書かれており、
CP/M
で実行されました。これは、ASM86 として SCP 8086 CPU カードとともに配布されたと思います。また、Z80 ソース コードを非効率ではあるものの実用的な 8086 ソース コードに変換するトランスレータも作成しました (
Intel は、
公開された変換テーブルでこのアイデアを推進しました)。これは TRANS86 と呼ばれ、CP/M 用に Z80 アセンブリで作成されました。DOS
が
動作するようになったら、トランスレータを ASM86 (およびトランスレータ自体) に適用して、DOS で実行される 8086 バージョンを作成しました。変更履歴は手元にありませんが、バージョン >= 2 は、変換された (DOS) バージョンであると思います。履歴にバージョン番号 < 2 と表示されている場合、それは CP/M バージョンです。」 […]
- ^ Paterson, Tim (1983年6月). 「An Inside Look at MS-DOS – The design decision behind the popular operating system – The history of and design decision behind MS-DOS. how it works, and where it's going」. BYTE . 16-bit Designs. Vol. 8, no. 6. McGraw-Hill, Inc. pp. 230– 252. ISSN 0360-5280. CODEN BYTEDJ. 2017-03-17 にオリジナルからアーカイブ。2020-01-23に取得。
[…]
MS-DOS
設計基準 […] MS-DOS の主な設計要件は
CP/M-80
変換互換性
であり、つまり、 CP/M 用の
8080
または
Z80プログラムを
Intel
の公開ルールに従って
8086
用に変換した場合
、そのプログラムは MS-DOS で適切に実行されることを意味していました。 CP/M-80 の変換互換性を要件にすることで、8086 ソフトウェアの迅速な開発が促進され、当然ながら
Seattle Computer は
これに関心を寄せました。部分的には成功しました。CP/M-80 プログラムの変換を選択したソフトウェア開発者は、多くの場合、最初の試みで、実際に MS-DOS で実行できることを発見しました。残念ながら、Seattle Computer が初期に話したソフトウェア開発者の多くは、MS-DOS を単に無視することを好みました。IBM
パーソナル コンピュータ
が発表されるまで、これらの開発者は
CP/M-86 が
8086/8088 コンピュータのオペレーティング システムになると考えていました。[…]
[21] [22] - ^ ab Seattle Computer Products (1980 年 8 月). 「86-DOS – 8086 オペレーティング システム - 95 ドル」. BYTE (広告). 第 5 巻、第 8 号. BYTE Publications Inc. p. 173. ISSN 0360-5280. CODEN BYTEDJ. 2017 年 4 月 5 日にオリジナルからアーカイブ。2013年 8 月 18 日に取得。
[…] 1.
CP/M
形式で記述された
Z80
ソース コード ファイルを読み取り、
86-DOS
形式に変換します。2. トランスレータ プログラムが Z80 ソース コードを 8086 ソース コードに変換します
。3
. 常駐アセンブラが、変換された 8086 ソース コードを 8086
オブジェクト コード
にアセンブルします。4. 手作業による軽微な修正と最適化。 (最近の 19K Z80 プログラムの翻訳は、修正に約 4 時間かかりました。最適化しなくても、元のプログラムの 2 倍の速度で実行されました! […])
[23]
- ^ Paterson, Tim (1994-10-03). 「DOS の起源: DOS 作成者が CP/M と MS-DOS の関係について語る」(PDF) . Microprocessor Report . 8 (13). MicroDesign Resources (MDR). ISSN 0899-9341. 2012-05-31 に オリジナル(PDF)からアーカイブ。 […] 大手ソフトウェア開発者に自社製品を
8080
/
Z80から
8086
に
移植してもらうには
、できるだけ簡単にする必要があると判断しました。私はすでに、Z80 から 8086 へのソース コード トランスレータ (8080 と
CP/M
でホスト) を作成していました。私の計画は、8080 CP/M プログラムをトランスレータで実行することが、ソフトウェア開発者がプログラムを 8086 に移植するために必要な唯一の作業になるというものでした。言い換えると、アプリケーションがオペレーティング システム サービスを要求するために使用するインターフェイスは、変換ルールを適用した後は CP/M のものとまったく同じになります。[…]
- ^ ab Paterson, Tim (2007-09-30). 「DOS の設計」DosMan Drivel。 2013-01-20 にオリジナルからアーカイブ。 2011-07-04に取得。
[…]
CP/M
翻訳互換性 […]
DOS が
成功するには、(ワード プロセッサのような) 便利なアプリケーションが 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 に同梱されていました。しかし、このプロセスを利用した人は他にはいなかったと思います。[…]
- ^ 「Z80 To 8086 Translator」。Z80/8086 Cross Assembler Release 1 (PDF)。リビジョン A (暫定版)。シアトル、ワシントン州、米国: Seattle Computer Products。pp . 20– 21。2021-11-30 にオリジナルからアーカイブ。2020-01-18に取得。
[…]
Seattle Computer Products の
Z80
to
8086 Translator は、
CP
/M
の Z80 上で動作します。Zilog
/
Mostek
ニーモニックを使用して記述された Z80 ソース ファイルを入力として受け入れ
、8086 Cross Assembler で受け入れ可能な形式の 8086 ソース ファイルに変換します。ファイルを変換するには、TRANS86 <filename>.<ext> と入力するだけです。元の拡張子に関係なく、出力ファイルの名前は <filename>.A86 になり、入力ファイルと同じドライブに表示されます。トランスレータのデモ用に TRNTEST.Z80 というファイルが含まれています。Z80 アセンブリ言語全体が翻訳されるわけではありません。[…]
[24] - ^ ab 86-DOS – 8086 用ディスク オペレーティング システム。ユーザーズ マニュアル(PDF)。バージョン 0.3 (暫定版)。シアトル、ワシントン州、米国: Seattle Computer Products。1980年。2019 年 7 月 14 日のオリジナルからアーカイブ(PDF) 。2020 年 2 月 1 日に取得。
- ^ ab Paterson, Tim (2013-12-19) [1982-07-01]. 「Microsoft DOS V1.1 および V2.0: Z80 から 8086 へのトランスレータ バージョン 2.21 /msdos/v11source/TRANS.ASM」。Computer History Museum、Microsoft。2019-11-12時点のオリジナルよりアーカイブ。2014-03-25取得。[25] (注:出版社はこれがMS-DOS 1.1と2.0であると主張しているが、実際にはSCP MS-DOS 1.25とTeleVideo PC DOS 2.11である。)
- ^ SCP 86-DOS – 8086 用シングルユーザーディスクオペレーティングシステム (暫定版)。シアトル、ワシントン州、米国: Seattle Computer Products。1980年。2020 年 1 月 18 日に取得。
[…] ソースコードトランスレータは、ほとんどの
Z80ソースコードを、手動で少し修正するだけで、アセンブラが受け入れ可能な
8086
ソースコードに変換できます
。これにより、プロセッサ間でプログラムを転送するための比較的迅速かつ簡単な方法が提供されます。[…] TRANS ファイル[…] このコマンドによって呼び出される Z80 から 8086 へのソースコードトランスレータは、アセンブラマニュアルの最後に記載された Z80 で実行されるバージョンと基本的に同じです。唯一の違いは次のとおりです。1. トランスレータは TRANS86 ではなく TRANS と呼ばれ、
CP/M
の Z80 ではなく、
86-DOS
の 8086 で実行されます。2. 出力ファイルの拡張子は「A86」ではなく「ASM」です。[…]
[26]
- ^ Z80 To 8086 Translator (PDF) . Seattle Computer Products . pp. TRANS-1–TRANS-2. 2021-11-30時点のオリジナルよりアーカイブ。2020-01-19に取得。(23ページ)
- ^ Hughes, David B. (1982 年 11 月). 「CP/M-86 と MS-DOS: 比較分析」. PC Magazine . オペレーティングシステム. 第 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-DOS 1.2
または
2.0
に変換できます。プログラムを 16 ビット システムで実行するには、単純な変換以上の変更が必要になる場合があります。そのため、このツールは主に技術的に訓練されたユーザーが使用することをお勧めします。 […]
- ^ ab Garetz, Mark (1980-12-22). 「Garetz によると…」InfoWorld – マイクロコンピュータ ユーザー向けニュース。第 2 巻、第 23 号。Popular Computing, Inc. p. 12。ISSN 0199-6649。2020 年 2 月 1 日にオリジナルからアーカイブ。2020年 1 月 18 日に取得。
[…] 先週は、半年に一度の
カリフォルニア コンピュータ スワップ ミート
でした。このイベントは、John Craig […]
Sorcim […] が主催しています。[…] ショーでは、新製品が発表されました […] 彼らのもう 1 つの製品は TRANS-86 でした。TRANS-86 は、
CP/M
互換の
8080
/
8085
/
Z-80
ソース コード ファイルを受け取り、
8086
コードに変換します
。その後、ACT-86 を使用して新しいファイルをアセンブルできます。[…]
- ^ Blumenfeld, Dan (1982-12-04). 「Z80 to 8086 translator」.ニュースグループ: fa.info-cpm. 2020年1月16日時点のオリジナルよりアーカイブ。2020年1月15日閲覧。[27]
- ^ "CompuPro". PC: The Independent Guide To IBM Computers (広告). 第 1 巻、第 1 号。Software Communications, Inc. 1982 年 2 月~3 月。pp. 70~ 71。Premiere/Charter 号。2020 年 1 月 23 日閲覧。 [
…] なぜ? 柔軟性。CompuProの
85/88
CPU は、CP/M 80、86、MP/M II、MP/M 86 で動作します。WORDSTAR dBASE II SUPERCALC には、多数の言語、8080 から 8088 へのトランスレータなどが用意されています。互換性。当社のシステムでは、CP/M 2.2 ユーティリティを使用して IBM PC 用のプログラムを作成できます。 8088 ソースを作成し (お気に入りの CP/M 80 エディタで記述するか、
Sorcim
の TRANS 86 で変換)、ソースをクロスアセンブルし (Sorcim の ACT86 を使用)、16 進ファイルをリンクし (CP/M 80 の LOAD コマンドを使用)、IBM PC に変換し (G&G の CPM-IBM プログラムを使用)、IBM PC で実行するだけです。この手順では MS-DOS は必要ありません。[…] なぜでしょうか? 柔軟性です。CompuProの
85/88
CPU は CP/M 80 および 86 または MS-DOS を実行します。WORDSTAR、dBASE II、TRANS86、XLT86、ACT86、SUPERCALC、CBASIC、MBASIC、MFORTRAN などを提供しています。[…]
[28] [29]
- ^ Warren, Jr., Jim C. (1982 年 7 月). "Sorcim' Somethin'" (PDF) . Silicon Gulch Gazette . Rumors Mongered Here. 第 7 巻、第 30 号。米国カリフォルニア州ウッドサイド: Computer Faire。pp . 1、2、4、6、11、14、15 [11]。2021 年 11 月 30 日のオリジナルからのアーカイブ。2020年 1 月15 日閲覧。 […]
Sorcim は
ISA
の買収を完了したばかりです。
[
…] また、8080 から 8086 へのトランスレータである Trans-86 を 1 年以上運用しています[…]
- ^ abcde Barry, Tim (1982-04-05). 「XLT-86、Digital Research の CP/M ユーティリティ プログラム」。InfoWorld – The Newsweekly for Microcomputer Users。Software Review。第 4 巻、第 13 号。Popular Computing, Inc. pp. 40– 41, 53。ISSN 0199-6649。2020-02-01 にオリジナルからアーカイブ。2020-01-25に取得。
[…] XLT-86 1.1 […] XLT-86 は、
PL/I-80
で記述された分析トランスレータ プログラムです。8080 ソース プログラム全体を読み取り、マシンコードにアセンブルし、レジスタ、メモリ、フラグの使用率を分析して、最適化された
8086
アセンブリ言語プログラムを出力します。 […]
VAX 11/750
または
11/780
を使用できる方のために、XLT-86 のバージョンもあります
。このバージョンでは、はるかに大きなプログラムを変換できます。これも 8,000 ドルかかります。 […] トランスレータは、翻訳の一部としていくつかのラベルを追加し、ソース プログラムに等号を付けますが、元のコメントとプログラム ラベルはすべて、翻訳されたプログラムにそのまま渡されます。 […] プログラム翻訳は、5 つのステップで進行します。まず、プログラムをスキャンしてアセンブルし、シンボル値と位置を生成します。次に、プログラム構造を分析し、
基本ブロック
に分解します。3 番目に、基本ブロックを分析して、
プログラム フロー
とリソースの使用状況を判断します。4 番目に、
ブロック構造
と
レジスタ割り当てデータをユーザー用のリストにまとめます。5 番目に、フロー情報とソース プログラムを使用して、
8086
ソース プログラムを生成します
。 […]
- ^ Kildall, Gary Arlen (1982-04-19). Swaine, Michael ; Freiberger, Paul ; Markoff, John Gregory (eds.). 「Digital Research の創設者がビジネス観を語る」InfoWorld – The Newsweekly for Microcomputer Users . 特別セクション: CP/M. 第 4 巻、第 15 号。Popular Computing, Inc. pp. 23– 24. ISSN 0199-6649. 2020-02-01 にオリジナルからアーカイブ。2020-01-17に取得。
[…] Kildall: […] 1 年半前、私はおそらく時間の 75% をビジネスに、25% をプログラミングに費やしていました。XLT-86 は当時取り組んでいた製品で、完成までに 9 か月かかりました。集中できていれば 3 か月のプロジェクトだったでしょう。 […]
- ^ Kildall, Gary Arlen (1982 年 6 月~7 月)。Bunnell , David Hugh ; Edlin, Jim (編著)。「Gary Kildall – The Man Who Created CP/M: CP/M's Creator – An Indepth PC-Exclusive Interview with Software Pioneer Gary Kildall」。PC Magazine . Operating Systems. Vol. 1, no. 3. Software Communications, Inc. pp. 32– 38, 40 [35] 。2020-01-17に取得。 […] PC: プログラムを
8080 形式から
8086
形式に
変換する際の複雑な点にはどのようなものがありますか
?
Kildall
: ソース プログラム レベルでの直接的な変換は、ほぼ機械的に行うことができます。たとえば、8080 の「Add Immediate 5」命令は、8086 では「Add AL 5」になります。これは、オペコード自体の非常に簡単な変換です。
機械的な翻訳
の複雑さは
、次のような状況から生じます。8080 の命令 DAD H は、HL レジスターを取得して、それに DE を追加します。8086 の場合、同等の命令は ADD DX BX のようなもので、特に問題はありません。DX レジスターは HL と同じで、BX は DE と同じであると言えばよいだけです。問題は、8086 の命令にはゼロ フラグを設定する副作用があるのに対し、8080 の命令にはそれがないことです。機械的な翻訳では、フラグの保存、フラグの復元、シフトや回転などの操作を行うことになります。これにより、同じセマンティック効果を得るために、約 5 つか 6 つの余分な命令が追加されます。8080 コードには、8086 コードでは非常に奇妙なシーケンスを生成するシーケンスが多数あります。フラグ レジスターなどのため、マッピングがうまくいきません。ソフトウェアを移行する方法は、XLT-86 と呼ばれるものです。発売されてから 6 か月ほど経ちます。 PC: 「より良い」コードとは、サイズが小さいということですか? Kildall: レジスタを節約してセマンティクスを保持しながら、すべての命令コードを直接変換した場合よりも 20 パーセント小さくなります。 PC: 変換されたプログラムのサイズは、8080 バージョンと比べてどうですか? Kildall: 8080 プログラムを 86 ランドに移し、XLT-86 変換を行うと、約 10 ~ 20 パーセント大きくなります。16 ビット マシンでは、すべての処理が難しく、命令コードが平均して少し大きくなります。興味深い現象ですが、16 ビットの世界で速度が大幅に向上しない理由の 1 つは、データ バス上でより多くの命令コードが実行されるためです。 […]
- ^ Huitt, Robert; Eubanks, Gordon ; Rolander, Thomas "Tom" Alan ; Laws, David; Michel, Howard E.; Halla, Brian; Wharton, John Harrison ; Berg, Brian; Su, Weilian; Kildall, Scott ; Kampe, Bill (2014-04-25). Laws, David (ed.). "Legacy of Gary Kildall: The CP/M IEEE Milestone Dedication" (PDF) (ビデオ トランスクリプション). Pacific Grove, California, USA: Computer History Museum . CHM 参照番号: X7170.2014. 2014-12-27 にオリジナルからアーカイブ(PDF)されました。2020-01-19に取得。
[…]
Rolander : 先ほど、
Gary は
問題に建築家としてアプローチするのが好きだったと述べました
。 […] そして、彼はデータ構造の最も美しい図を描きました。 […] そして、それを終えて、データ構造が正しいと確信すると、彼は信じられないほど熱狂的なコーディング モードに入りました。1 日に 20 時間もコーディングを続けました […] その間、彼は完全に離れていました。何度か、何かを初めて実行したとき、それは真夜中だったこともありました。ソフトウェアを書いたことがある人なら誰でも、たとえば、画面に初めて表示されたら、誰かに知らせなければならないことを経験したことがあるでしょう。妻のロリは、私が真夜中に何度か電話を受けたことがあると言います。LOGO が 1 つの
例
で、XLT 86 も別の例です。彼は初めて実行し、誰かにそれを見せなければなりませんでした。そのため、何時であろうと、彼は私に電話し、私は行ってそれが実行しているのを見なければなりませんでした。 […]
[30] [31] (33ページ)
- ^ 「XLT86 はアセンブリ言語プログラム変換の変換作業を軽減します」(PDF)。Digital Research News – for Digital Research Users Everywhere。製品アップデート。第 1 巻、第 1 号。米国カリフォルニア州パシフィック グローブ: Digital Research, Inc. 1981 年 11 月。2、7 ページ。第 4 四半期。2021 年 11 月 10 日にオリジナルからアーカイブ。2020年 1 月 18 日に取得。
[…] 8 ビットから 16 ビットへのアセンブリ コード トランスレータが
Digital Researchから入手可能になりました。XLT86 と呼ばれるこのトランスレータは、
CP/M
ソフトウェア製品を
8080 ベースのマイクロコンピュータから
8086
ベースのマイクロコンピュータに
変換する時間のかかるプロセスを軽減するように設計されています
。XLT86 は、Digital Research の ASM、MAC、または RMAC アセンブラ形式と互換性のあるアセンブリ言語プログラムを変換するために使用できます。 XLT86 プログラム トランスレータは、まず 8080 アセンブリ言語プログラムを読み取り、次に Digital Research ASM-86 アセンブラが受け入れ可能な 8086 アセンブリ言語ステートメントを含む出力ファイルを生成します。1 つの 8080 命令を最大 10 個の 8086 命令に変換する他の 8086 コード コンバータとは異なり、XLT86 は、元のプログラム全体でレジスタの使用状況を判断するために、広範な
データ フロー分析を
実行します。この分析によって収集された情報は、プログラム変換中に使用され、不要なフラグの保存および復元操作が排除されます。Digital Research マーケティング グループの Curt Geske 氏によると、「結果として得られる 8086 プログラムは、他のトランスレータによって生成される同等のプログラムよりもシンプルでコンパクトです。さらに、XLT86 を使用すると、OEM、エンド ユーザー、およびソフトウェア ベンダーは、変換作業が軽減されるため、16 ビット 8086 ベースのコンピュータに変更する際に、8080 ベースのアセンブリ言語プログラムへの投資を保護できます。」 XLT86 で変換されたプログラムは、
CP/M-86
と
MP/M-86
の両方で動作します[…] XLT86 はすぐに入手できます。8 ビットの CP/M または
MP/M
システム、または
Digital Equipment Corporation
VAX
シリーズ
ミニコンピュータで使用するための
VMS
オペレーティング システムで動作します。CP/M バージョンの価格は 150
ドル
です。VAX
バージョンの価格は 8,000 ドルです。 […]
- ^ Kildall, Gary Arlen (1973-10-01). 「グローバルプログラム最適化への統一アプローチ」(PDF) . Proceedings of the 1st Annual ACM SIGACT-SIGPLAN Symposium on Principles of Programming Languages (POPL) . POPL '73. Boston, Massachusetts, USA: 194– 206. doi :10.1145/512927.512945. hdl :10945/42162. S2CID 10219496. 2017-06-29 にオリジナルからアーカイブ(PDF) . 2006-11-20に取得。
- ^ Kildall, Gary Arlen (1972 年 5 月)。コンパイル時のグローバル式最適化(博士論文)。米国ワシントン州シアトル:ワシントン大学、コンピュータサイエンス グループ。論文番号 20506、技術レポート番号 72-06-02。
- ^ ab XLT86 – 8080 から 8086 へのアセンブリ言語トランスレータ – ユーザーズ ガイド(PDF) (初版)。パシフィック グローブ、カリフォルニア州、米国: Digital Research, Inc. 1981 年 9 月。archive.org コピー。2016年 11 月18 日のオリジナルからアーカイブ(PDF) 。2016年 11 月 18 日閲覧。
- ^ 「XLT86 for CP/M-80」。デジタルリサーチ。2020年1月16日時点のオリジナルよりアーカイブ。2020年1月18日閲覧。(注: この ZIP アーカイブには、CP/M-80実行可能ファイル XLT86.COM [22 KB] と、2 つのオーバーレイ ファイル XLT00.OVL [8 KB] および XLT01.OVL [9 KB] が含まれています。)
- ^ Goldfarb, Ben (1982-12-09). 「Re: 8080 から 8086 への変換」。ニュースグループ: fa.info-cpm。2020-02-01 にオリジナルからアーカイブ。2020-01-18に取得。 […] XLT86 プログラムは、約 30K バイトのメイン メモリを占有します。CP
/M
のベースまでのメモリの残りの部分には
、変換される 8086 プログラムを表すプログラム グラフが格納されます[…] 64K CP/M システムでは、
最大約 6K の
8080プログラムを変換できます。[…]
[32] [33]
- ^ Wharton, John Harrison (1994-08-01). 「業界のパイオニア、Gary Kildall が 52 歳で死去: 最初のマイクロコンピュータ言語、ディスク オペレーティング システムを作成」Microprocessor Report . 8 (10). MicroDesign Resources Inc. (MDR). 2016-11-18 にオリジナルからアーカイブ。2016-11-18に取得。 […] 皮肉なことに、
Gary
が開拓した技術の多くは
、10 年後の現在、再発見されています。Apple
と
DEC は、
バイナリ
再コンパイルを、既存のソフトウェアを
PowerPC
または
Alpha
アーキテクチャに移植するための「新しい」技術として
宣伝しています
。実際、DRI は
1980 年代初頭に
8080
から
8086 へのバイナリ再コンパイラを導入しました。 […]
- ^ 「SPA Award to Dr. Gary A.Kildall: 1995 SPA Lifetime Achievement Award Winner」。ソフトウェア出版社協会(SPA)。1995-03-13。2019-12-21 にオリジナルからアーカイブ。2019-12-21 に取得– www.digitalresearch.biz 経由。
[…]
Kildall は1976 年に
Digital Research, Inc.
(DRI)を設立しました。同社は現在
Novell
の一部です
。[…] 1980 年代に、DRI は
バイナリ再コンパイラ
を導入しました。[…]
- ^ Swaine, Michael (1997-04-01). 「Gary Kildall と Collegial Entrepreneurship」。Dr . Dobb's Journal。2007-01-24にオリジナルからアーカイブ。2006-11-20に取得。1995
年 3 月、
ソフトウェア発行者協会は、コンピュータ業界への貢献を称え、死後に
Gary を
表彰しました
。協会は、彼の業績の一部を次のように挙げています。[…] 1980 年代に、
DRI
を通じて、
バイナリ再コンパイラを
導入しました。[…]
- ^ abc 2500 AD Software (1984-12-11). 「スーパーアセンブラと世界最大のクロスアセンブラの品揃え」. PC Magazine (広告). 第3巻第24号. コロラド州エングルウッド: PC Communications Corp. pp. 166– 167. ISSN 0745-2500. 2020年2月1日時点のオリジナルよりアーカイブ。 2020年1月24日閲覧。
[…] 8086/88 アセンブラとトランスレータ $99.50 MSDOS、PCDOS、または CP/M-86 で使用可能 […] このパッケージには […] 8080 から 8086 へのソース コード トランスレータ (変換するプログラム サイズに制限はありません) […] Z-8000 クロス開発パッケージ $199.50 […] この強力なパッケージには、Z-80/8080 から Z-8000 へのアセンブリ言語ソース コード トランスレータが含まれています […] トランスレータは、Intel 8080 または Zilog Z-80 ソース コードから Z-8000 ソース コードを提供します。これらのパッケージで使用される Z-8000 ソース コードは、Z-80 コードの記述から Z-8000 への移行を容易にするために設計された Zilog ニーモニックを使用した独自の 2500AD 構文です […] 8086 および Z-8000 XASM にはソース コード トランスレータが含まれています […]
(注: 8086/88 XASM は、Z-80 CP/M、Zilog System 8000 UNIX、Olivetti M-20 PCOSで使用できます。Z-8000 XASM は、Z-80 CP/M、MS-DOS、CP/M-86、Olivetti M-20 PCOS で使用できます。) - ^ 「Zilog がモジュラー開発システムを発表」。Computerworld – The Newsweekly for the Computer Community。第 XIII 巻、第 34 号。米国カリフォルニア州クパチーノ: Computerworld, Inc. 1979-08-20。p. 46。ISSN 0010-4841。2020-02-01 にオリジナルからアーカイブ。2020-01-24 に取得。 [
…]
Zilog, Inc. は、
Z8
、
Z80
、
Z8000
ベースのマイクロコンピュータ設計向けに、モジュール式で拡張可能な製品開発システム (PDS) シリーズを発表しました
。 PDS 8000 システムの 4 つのバージョン (モデル 10、15、25、30) はすべて […] 各システムの標準機能は Z8000 ソフトウェア開発パッケージで、これには
ZDOSII
ファイル管理ルーチン、PLZ/ASM 高レベル構造化アセンブラ、Z80/Z8000 トランスレータ、Z8000 L および MACP マクロプロセッサが含まれています。 […] モデル 10 と 25 は、それぞれモデル 15 と 30 と同じ仕様です。ただし、10 と 25 には Z8000 開発モジュールは含まれていません。PDS モデル 10 の価格は 10,485 ドル、モデル 15 は 11,995 ドル、モデル 25 は 20,000 ドル、モデル 35 は 21,500 ドルです。4 つのシステムはすべて、注文受領後 30 日以内に入手可能です。 […]
- ^ Orlansky, Jesse, ed. (1979). Proceedings 27–29 November 1979 – 1st Interservice/Industry Training Equipment Conference. The Center. p. 413. Technical report NAVTRAEQUIPCEN. Archived from the original on 2020-02-01 . Retrieved 2020-01-24 .
[…] Table 1. 16-Bit Microprocessor Characteristics […]
Zilog 8000 […] Software […] Zilog は、PLZ、
BASIC
、
COBOL
、
FORTRAN
のトランスレータで
Z8000 を
サポートする予定です。Z8000 セットは Z80 のスーパーセットであるため、これらにより
Z80
コードを Z8000 コードに
変換できます。 […]
- ^ PDS 8000 開発システム – システム設計への統合アプローチ (製品概要)。Zilog。1980年1 月。2020年 1 月 24 日閲覧。 […] Z8000 トランスレータ: 既存の
Z80
アセンブリ言語プログラムを
Z8000
コードと PLZ/ASM プログラム形式に簡単に変換する手段を提供します
。[…]
[34] [35]
- ^ Thomas, Rebecca A.; Yates, Jean L. (1981-05-11). 「新しい 16 ビット プロセッサ向けの書籍、ボード、ソフトウェア」。InfoWorld –マイクロコンピューティング コミュニティ向けの新聞。第 3 巻、第 9 号。Popular Computing, Inc. pp. 42– 43。ISSN 0199-6649。2020 年 2 月 1 日にオリジナルからアーカイブ。2020年 1 月 24 日に取得。
[…]
Digital Research は、
CP/M
の
Z8000
バージョンの計画も発表しました。アプリケーション ソフトウェアは、開発ソフトウェアがさらに利用可能になった
とき
に Z8000 に移行されます。Z80 から
Z8000 への市販のトランスレータが必要です。[…]
- ^ ab Guzis, Charles "Chuck" P. (2009-01-21) [2009-01-17]. "Re: CP/M or similar OS for 64K Z8002?". Vintage Computer Forum . ジャンル: CP/M および MP/M。2020-01-16 にオリジナルからアーカイブ。2020-01-15に取得。
[…]
Zilog
と
AMC はどちらも
Z80
から
Z8000 への
変換プログラムを
提供していました
。Intel
8080から
8086
へのトランスレータと同様に、結果を手動で最適化しない限り、すぐに肥大化しました。初期の MS-DOS コードの多くは、8080 CP/M コードを自動変換して調整したものです。
たとえば、PC 用の
SuperCalc
の多くがそうだったことは知っています。DOS 用の
Wordstar
の初期バージョン (例: 3.3)もおそらくそうでした。 […] Z80 から Z8000 へのソースコード トランスレータはありましたが、簡単なプロセスではありませんでした (「厳密」モードと「緩和」モード、場合によっては 1 つの Z80 から複数の Z8000 命令への変換)。8086 は 8080 に非常に近いですが、Z8000 は Z80 に近いです。[…]
- ^ “2500 AD Software 8080/Z-80 to Z8000 source code translator v2.06b”. 2500 AD Software, Inc. 1982年。2020年2月1日時点のオリジナルよりアーカイブ。2020年1月24日閲覧。[36]
- ^ “802Z8000.ZIP 2500 AD Software 8080/Z-80からZ8000へのソースコードトランスレータv2.06e”. 2500 AD Software, Inc. 2020年2月1日時点のオリジナルよりアーカイブ。2020年1月24日閲覧。[37]
- ^ ab Bodrato, Stefano (2008-10-30). 「to86.awk ソースコード」. GitHub . 1.6. 2022-01-05 にオリジナルからアーカイブ。2022-01-05に取得。
- ^ Callahan, Brian (2021-10-23) [2021-07-06, 2021-06-06]. 「Intel 8080 CP/M 2.2 から Intel 8086/8088 MS-DOS アセンブリ言語トランスレータ」. 8088ify 1.2. 2022-03-31 時点のオリジナルよりアーカイブ。2021-11-28閲覧。[38][39][40][41]
- ^ 「JS にコンパイルされる言語のリスト」。GitHub。2020年 1 月 23 日時点のオリジナルよりアーカイブ。2018 年3月 11 日閲覧。
- ^ theolivenbaum (2021-11-13). 「h5🚀 - C#からJavaScriptへのコンパイラ」. GitHub . 2021-11-14に取得。
- ^ “J2ObjC”. 2019年10月22日時点のオリジナルよりアーカイブ。2019年10月22日閲覧。
- ^ “JSweet”. 2019年12月14日時点のオリジナルよりアーカイブ。2019年12月14日閲覧。
- ^ “Maia” . 2020年5月13日閲覧。
- ^ 「Swiftify」。
- ^ 「C->Go トランスレータ」。GitHub 。 2018年12月7日時点のオリジナルよりアーカイブ。2018年1月11日閲覧。
- ^ “Go 1.5 リリースノート”. 2020年2月1日時点のオリジナルよりアーカイブ。2018年1月11日閲覧。
- ^ Cox, Russ. 「Go 1.3+ コンパイラのオーバーホール」。2020年1月9日時点のオリジナルよりアーカイブ。2018年1月11日閲覧。
- ^ ab "C2Rust リポジトリ". GitHub . 2022-04-15.
- ^ 「概要」。Js_of_ocaml - リファレンスマニュアル。Ocsigen。2018年12月8日にオリジナルからアーカイブ。2014年10月8日に取得。
- ^ J2Eif Research Page – Chair of Software Engineering. Se.inf.ethz.ch. doi :10.1007/978-3-642-21952-8_4. 2020年1月1日時点のオリジナルよりアーカイブ。2014年7月8日閲覧。
- ^ 「C2Eif Research Page – Chair of Software Engineering」Se.inf.ethz.ch。2020年1月1日時点のオリジナルよりアーカイブ。2014年7月8日閲覧。
- ^ “Skip”. 2024年5月18日時点のオリジナルよりアーカイブ。2024年5月17日閲覧。
- ^ 「Swiftify Objective-C から Swift へのコンバーター」。2017 年 11 月 14 日閲覧。
- ^ 「Runtime Converter」。2019年7月10日時点のオリジナルよりアーカイブ。2017年11月14日閲覧。
さらに読む
- Britten, Charles Randyl (2020-06-26). 「8080 コードの 8086 への変換 - Microsoft による 8080 コードの 8086 およびその他の 16 ビット プロセッサへの変換」。2021-07-23 にオリジナルからアーカイブ。2021-11-28に取得。
- 「TAL II で Sycor ユニットのプログラミングが簡単に」。Computerworld – コンピュータ コミュニティ向けの週刊ニュース。第 IX 巻、第 34 号。米国ミシガン州アナーバー: Computerworld, Inc. 1975-08-20。p. 14。ISSN 0010-4841。2020 年 2 月 1 日にオリジナルからアーカイブ。2020年 1 月 18 日に取得。
- Zerilli, Frank J.; Derouen, Craig (1986-12-11) [1985-08-15, 1984-12-20, 1984-11-20]. 「8080 から 8086 への ASM トランスレータ、ASM ソース付き」. SIMTEL . XLT86.COM 1.10. 2020-02-01 にオリジナルからアーカイブ。2020-01-18に取得。1984-11-11 バージョン 1.05 (注: DOS実行可能ファイル XLT86.COM [12 KB] は、Intel 8080 アセンブリ言語ソース コードを Intel 8086 アセンブリ言語ソース コードに変換します。名前に反して、この 8086 アセンブリの実装は、Digital Research の以前の、より洗練された XLT86 とは関係ありません。)
- Albo, Julián (2009-04-24). 「Pasmo、Z80 ポータブル クロス アセンブラー / ポータブル Z80 クロス アセンブラー」 (スペイン語と英語)。2020-02-20 にオリジナルからアーカイブ。2020-02-20に取得。
[…] Pasmo は、Z80 クロス アセンブラーです[…] […] 次の形式でオブジェクト コードを生成できます: 生のバイナリ、Intel HEX、CP/M Plus RSXの PRL 、Plus3Dos ( Spectrum +3ディスク)、TAP、TZX、CDT (Spectrum およびAmstrad CPCエミュレーターのテープ イメージ)、AmsDos (Amstrad CPC ディスク)、およびMSX (Basic のディスクからの BLOAD で使用)。バージョン 0.5.0 以降では、Z80 ソースから8086コードをMs-dos COMファイルのバイナリ形式またはCP/M 86 CMD形式で生成することもできます。[…]
[42] [43] - Ciarcia, Steve (1984 年 5 月)。「切り札 - パート 1: ハードウェア - 16 ビット コプロセッシング パワーで IBM PC を高速化」(PDF)。BYTE - スモール システム ジャーナル。Ciarcia の Circuit Cellar。第 9 巻、第 5 号。McGraw-Hill, Inc. pp. 40– 52, 54– 55。ISSN 0360-5280。2020年1月29日取得 。 [ … ]代わりに、 BASIC
や C などの高級言語で記述されたプログラムを実行します (Pascal コンパイラと 8088 から Z8000 へのトランスレータが開発中です。[…]
およびCiarcia, Steve (1984年6月)。「切り札 - パート2: ソフトウェア - TBASICおよびCコンパイラとアセンブル」( PDF)。BYTE - 小規模システムジャーナル。CiarciaのCircuit Cellar。第9巻、第6号。McGraw -Hill, Inc. pp. 115– 122。ISSN 0360-5280 。 2020年1月29日取得。 […] Z80からZ8000、8088からZ8000への変換用のオブジェクトコードトランスレータがまもなく利用可能になると思います[…]
、 Ciarcia, Steve (1990)としても入手可能。「切り札 - パート 1: ハードウェア - 16 ビット コプロセッシング パワーで IBM PC を高速化 & パート 2: ソフトウェア - TBASIC および C コンパイラとアセンブル」。Gonneau, Daniel、Bernardi, Fred、Ausburn, Richard (編)。CiarciaのCircuit Cellar 。第 7 巻。McGraw-Hill Publishing Company。pp . 138– 152、153– 160。ISBN 0-07-010969-9. 2020年2月1日時点のオリジナルよりアーカイブ。2020年1月29日閲覧。[44] [奪取] - マイクロコントローラ部門アプリケーションチーム (2000)。「HC05 から ST7 へのアセンブリ コードの変換」(PDF) (アプリケーション ノート) 。STMicroelectronics。AN1106 /0200。2020年 1 月 18 日に取得。(9 ページ) (注: このソフトウェア トランスレータは ST によって開発され、 2500AD ソフトウェア形式のMotorola 6805 / HC05アセンブリ ソース コードをST7ソース コードに変換します。Windows 用の MIGR2ST7.EXE 実行ファイルは、「MCU ON CD」から入手できます。)
- Kuper, Lindsey (2017-07-30). 「トランスパイラという言葉の意味は?」 言語実装.composition.al . 2022-01-09にオリジナルからアーカイブ。2022-01-09 に取得。
外部リンク
- チョードリー、ガブリエレ「ギャビー」(2009-07-11)。 「Das Intel zu Zilog – Übersetzungsprojekt」。I2Z トランスレーター(ドイツ語)。 2016 年 9 月 11 日にオリジナルからアーカイブされました。2020年1月18日に取得。
- 「PortAsmアセンブラーからアセンブラーへの翻訳」。MicroAPL Ltd. 2017 [1996]。2019年7月30日時点のオリジナルよりアーカイブ。 2020年1月18日閲覧。
- 「当社の方法論 - ソースからソースへの変換プロセス」。Micro-Processor Services, Inc. (MPS)。2019年5月12日時点のオリジナルよりアーカイブ。 2020年2月1日閲覧。
