翻訳器またはプログラミング言語プロセッサは、人間が理解しやすい形式で書かれたプログラミング命令を、コンピュータが理解して処理できる機械語コードに変換するコンピュータプログラムです。これは、コンパイラ、アセンブラ、またはインタプリタなど、あるコンピュータ言語から別のコンピュータ言語にコードを変換するあらゆるものを指す一般的な用語です。[ 1 ] [ 2 ]これには、 C++やJavaなどの高レベルで人間が読めるコンピュータ言語間、 Java バイトコードなどの中レベル言語、アセンブリ言語や機械語などの低レベル言語、異なるコンピューティング プラットフォーム上の同様のレベルの言語間、およびこれらのいずれからいずれかへの変換が含まれます。[ 1 ]
この用語は、同じプログラムのソフトウェア実装とハードウェア/ ASICマイクロチップ実装の間、およびマイクロチップのソフトウェア記述からその構築に必要な論理ゲートへの変換を行うトランスレータにも使用されます。
ソフトウェア開発プロセスは、開発者が使用する翻訳ツールの種類によって大きく異なります。もちろん、翻訳ツールごとに異なります。翻訳ツールの影響を受ける開発プロセスの段階には、初期プログラミング段階、デバッグ段階、そして最も重要な実行プロセスが含まれます。これらの段階で影響を受ける要素には、コードのパフォーマンス、デバッグプロセスのフィードバック速度、言語機能、プラットフォーム非依存性などがあります。コードの翻訳に使用される代表的なプログラミング言語プロセッサには、コンパイラ、インタプリタ、アセンブラなどがあります。[ 3 ]
コンパイラソフトウェアは、ソースコードを通常は高水準プログラミング言語から、コンピュータの中央処理装置(CPU)で実行可能なオブジェクトコードに変換することで、ソースコードとやり取りします。 [ 4 ]コンパイラによって生成されるオブジェクトコードは、コンピュータが処理できる機械可読コードで構成されています。このコンピューティングプロセスの段階はコンパイルと呼ばれます。コンパイラを使用すると、変換プロセスと実行プロセスが分離されます。コンパイル後、新しいオブジェクトコードはソースコードとは別に保存されるため、実行プロセスでソースコードが不要になります。コンパイラプログラムでは、変換は一度限りのプロセスであり、その結果、何度でも迅速に実行できる効率的なコードが生成されます。[ 4 ]
コンパイラを使用して高水準コードを翻訳することには明確な利点があります。[ 5 ]
コンパイラで高水準コードを翻訳する場合、明らかな欠点があります。[ 5 ]

コンパイラを利用する注目すべきプログラミング言語には、次のようなものがあります。[ 6 ]
インタプリタプログラムは、高水準コードを機械が使用できるコードに解釈し、同時に命令を1行ずつ実行することで機能します。コンパイラとは異なり、インタプリタは命令を実行する前にコードをコンパイルする必要はありません。翻訳と実行のプロセスは同時に行われ、プログラムにエラーが発生した場合は中断されます。インタプリタを使用することで、開発者はコードをリアルタイムでテストおよび変更できます。デバッグプロセスが容易になり、より効率的なコードの作成にも役立ちます。翻訳と実行のプロセスが同時に行われるため、インタプリタプログラムの実行時間は長くなります。[ 3 ]
高水準コードをインタプリタで翻訳することには、明確な利点がある。
インタプリタで高水準コードを翻訳する場合、明らかな欠点があります。[ 5 ]
インタプリタを利用する注目すべきプログラミング言語には、以下のようなものがあります。[ 3 ]
アセンブラプログラムは、低レベルのアセンブリコードをCPUが読み取れる従来のマシンコードに変換することで機能します。アセンブリ言語の目的は、他のプログラミング言語と同様に、マシン言語でのプログラミングよりもプログラミングプロセスをユーザーフレンドリーにすることです。アセンブラ言語は、オペコード、オペランド、および特定のメモリ アドレスを区別するために、ニーモニック デバイスとシンボル アドレスを使用します。これらのコンポーネントの多くは人間にとって読みやすいものではないため、ニーモニック、シンボル、およびラベルによってコードを解読可能にします。アセンブラは、コードを一度に 1 行ずつ処理し、次の命令に進むことで機能します。アドレス指定位置によって発生する問題を解消するために、アセンブリと呼ばれる変換プロセスは通常 2 パスで実行されます。アセンブリの最初のパスは、シンボル名に対応するバイナリ アドレスを識別するために実行されます。これは、行ごとのマシン言語への変換である第 2 パスをガイドするために不可欠です。[ 7 ]
一般的に使用されるアセンブラには以下のようなものがあります。