翻訳者(コンピューティング)

トランスレータまたはプログラミング言語プロセッサとは、人間が理解しやすい形式で記述されたプログラミング命令をコンピュータが理解・処理できる機械語コードに変換するコンピュータプログラムです。これは、コンパイラアセンブラインタープリタなど、あるコンピュータ言語のコードを別のコンピュータ言語に変換するあらゆるものを指す総称です。[ 1 ] [ 2 ]これらには、C++Javaなどの高水準で人間が読めるコンピュータ言語、 Javaバイトコードなどの中水準言語、アセンブリ言語機械語などの低水準言語間の変換、異なるコンピューティングプラットフォーム上の類似したレベルの言語間の変換、およびこれらのいずれかから他のいずれかの言語への変換が含まれます。[ 1 ]

ソフトウェアとハ​​ードウェアは、コンピューティングにおける異なる抽象化レベルを表します。ソフトウェアは通常、人間が理解し操作しやすい高水準プログラミング言語で記述されますが、ハードウェア実装は、物理コンポーネントとその相互接続に関する低水準の記述を伴います。トランスレータコンピューティングは、これらの抽象化レベル間の変換を容易にします。[ 3 ]全体として、トランスレータコンピューティングは、ソフトウェア実装とハードウェア実装のギャップを埋める上で重要な役割を果たし、開発者が各プラットフォームの長所を活用し、アプリケーションの特定の要件に応じてパフォーマンス、電力効率、その他の指標を最適化できるようにします。[ 4 ]

プログラミング言語プロセッサ

ソフトウェア開発プロセスは、開発者が使用するトランスレータの種類によって大きく異なります。もちろん、トランスレータごとに異なります。トランスレータの影響を受ける開発プロセスの各段階には、初期プログラミング段階、デバッグ段階、そして最も顕著なのは実行プロセスが含まれます。これらの段階で影響を受ける要素には、コードのパフォーマンス、デバッグプロセスへのフィードバック速度、言語機能、プラットフォーム非依存などがあります。コードを変換するために使用されるプログラミング言語プロセッサとして、コンパイラインタプリタアセンブラなどが挙げられます。[ 5 ]

コンパイラ

コンパイラソフトウェアは、ソースコードを高水準プログラミング言語からコンピュータの中央処理装置(CPU)で実行可能なオブジェクトコードに変換することで、ソースコードと対話します。 [ 6 ]コンパイラによって作成されたオブジェクトコードは、コンピュータが処理できる機械可読コードで構成されています。コンピューティングプロセスのこの段階はコンパイルと呼ばれます。コンパイラを使用すると、変換プロセスと実行プロセスが分離されます。コンパイル後、新しいオブジェクトコードはソースコードとは別に保存されるため、実行プロセスにソースコードは不要になります。コンパイラプログラムでは、変換は1回限りのプロセスであり、何度でも迅速に実行できる効率的なコードが生成されます。[ 6 ]

高水準コードをコンパイラで翻訳すると明らかな利点がある。[ 7 ]

  • コンパイルにより、プログラム実行時の実行時間が短縮されます。コードは実行前に変換されるため、結果は最適化され、高速になります。
  • コンパイラは、盗作からコードを保護し、権限のない第三者によるソースコードの使用を防ぐ場合に最適です。
  • オブジェクト コードは、ソース コードをコンパイルするときに 1 回だけ作成する必要があります。

高水準コードをコンパイラで翻訳する場合、明らかな欠点がある。[ 7 ]

この画像は、コンパイラを介した翻訳プロセスを表しています。
  • コンパイル時に生成されるオブジェクトコードは、マシンの命令セットアーキテクチャ(ISA)に固有のものです。そのため、オブジェクトコードは特定の種類のマシンでのみ実行可能です。
  • 開発プロセスのデバッグ段階は、プログラムが完全にコンパイルされるまで開始できません。エラーはコンパイル後にのみ表示されます。
  • 変更されたソース コードは、再度実行するには完全に再コンパイルする必要があります。

コンパイラを利用する注目すべきプログラミング言語には以下のものがある: [ 8 ]

通訳者

インタプリタプログラムは、高水準コードを機械が利用可能なコードに解釈すると同時に、命令を1行ずつ実行することで機能します。コンパイラとは異なり、インタプリタは命令を実行する前にコードをコンパイルする必要はありません。翻訳と実行のプロセスは同時に行われ、プログラムにエラーが発生した場合は中断されます。インタプリタを使用することで、開発者はリアルタイムでコードをテストおよび修正できます。これにより、デバッグプロセスが容易になり、より効率的なコードの作成にも役立ちます。翻訳と実行のプロセスが同時に行われるため、インタプリタプログラムの実行時間は相当長くなります。[ 5 ]

高レベルのコードをインタープリターで翻訳すると、明らかな利点があります。

  • 解釈プロセスではオブジェクトコードが作成されないため、コードに必要なメモリは少なくなります。[ 5 ]
  • インタプリタ言語は特定のマシンに特化したコードを生成せず、あらゆるタイプのマシンで実行できる。[ 7 ]
  • 開発とデバッグのプロセスは、複雑さが少なく柔軟性が高いため、通常はより迅速になります。[ 7 ]

高水準コードをインタプリタで翻訳する場合、明らかな欠点がある。[ 7 ]

  • プログラムを実行して解釈するには、マシンにインタープリターがインストールされている必要があります。
  • プログラムの実行時間はコンパイラよりも遅くなります。

インタプリタを利用する代表的なプログラミング言語には以下のものがある: [ 5 ]

アセンブラ

アセンブラプログラムは、低水準アセンブリコードをCPUが読み取り可能な従来の機械語に変換することで機能します。アセンブリ言語の目的は、他のコーディング言語と同様に、プログラミングプロセスを機械語でのプログラミングよりもユーザーフレンドリーにすることです。アセンブラ言語は、ニーモニックデバイスとシンボリックアドレスを用いて、オペコード、オペランド、および特定のメモリアドレスを区別します。これらのコンポーネントの多くは人間が容易に判読できないため、ニーモニック、シンボル、およびラベルによってコードを解読可能にします。アセンブラは、コードを1行ずつ処理し、次の命令に進みます。アドレス指定位置によって発生する問題を排除するため、アセンブリと呼ばれる変換プロセスは通常、2パスプロセスで実行されます。アセンブリの最初のパスは、シンボリック名に対応するバイナリアドレスを識別するために行われます。これは、パス2、つまり行単位の機械語への変換を導くために不可欠です。[ 9 ]

一般的に使用されるアセンブラは次のとおりです。

参照

参考文献

  1. ^ a b Thornton, Scott (2017-02-17). 「コンパイラ、トランスレータ、インタープリタ、アセンブラとは何か?」 MicrocontrollerTips . 2019年7月19日時点のオリジナルよりアーカイブ。 2020年2月2日閲覧
  2. ^「プログラム開発のためのトランスレータとユーティリティ」ソフトウェアハンドブック(PDF) Intel Corporation 1984 [1983] p. 3-1. 230786-001. 2020年1月29日時点のオリジナルよりアーカイブ(PDF) 。 2020年1月29日閲覧
  3. ^ Beaulieu, Adrien (2022). 「A15. フロントエンドとバックエンドの技術:複数のプログラミング言語の習熟の重要性」 .
  4. ^ Pagadala, Santosh Kumar (2004). 「複合構造向けコンピュータ支援設計環境のポータブル実装
  5. ^ a b c d「言語プロセッサ:アセンブラ、コンパイラ、インタープリタ」GeeksforGeeks . 2018年8月9日. 2024年3月15日閲覧
  6. ^ a b「CSE 5317/4305: コンパイラの設計と構築」 . lambda.uta.edu . 2024年3月15日閲覧。
  7. ^ a b c d e「Translator Types」 . Ada Computer Science . 2024年3月15日. 2024年3月15日閲覧
  8. ^ 「コンパイル言語とインタープリター言語」 www.ibm.com . 2024年3月15日閲覧
  9. ^ a bパット、イェール大学; パテル、サンジェイ (2019年8月15日).コンピューティングシステム入門:ビットとゲートからC/C++とその先へ(第3版). ニューヨーク、ニューヨーク:マグロウヒル. pp.  231– 243. ISBN 978-1260150537
  10. ^ a b c d Stokoe, William (2024-05-06). 「手話の構造」 . Annual Review of Anthropology . 9 : 365–390 . doi : 10.1146/annurev.an.09.100180.002053 . 2024年3月15日閲覧。

さらに読む