こんにちは😀
日々javaやKotlinを書いていますが、書いたプログラムは機械が読めるようにコンパイル(翻訳)する必要があります。
その翻訳作業を行うプログラムを総称して言語プロセッサと呼んでいます。
プログラム言語には、低水準と高水準があります。
低水準はよりコンピュータに近い言語になり、高水準はより人間に近い言語になります。
低水準はアセンブラなどがこれにあたり、高水準はjavaやKotlinなどがあてはまります。
そのプログラム言語とコンピュータの距離を埋めて翻訳するのが言語プロセッサになり、主に以下の2つがあります。
・コンパイラ
・アセンブラ
以下それぞれみていこうと思います。
コンパイラ
コンパイラ方式は、ソースコードの内容を最初に全て翻訳して機械語の目的プログラムを作成します。
ソースコード全体を解釈して機械語化するため、効率の良い翻訳結果を得ることができます。
この場合、プログラムにエラーがあれば途中で処理を停止します。
また、作成途中で確認のために動かしてみるようなことはできません。
実行速度は高速になります。
コンパイルとは主にこの翻訳方式を指します。
C言語、COBOL、javaがこの方式にあてはまります。
インタプリタ
インタプリタ方式は、ソースコードに書かれた命令を1つずつ機械語に翻訳しながら実行します。
その都度翻訳していくので、作成途中のプログラムもその箇所までは実行して確認できます。
動作をチェックしながら作成できるのが特徴です。
また、実行速度はコンパイラに比べると遅くなります。
Basicがこの方式にあてはまります。
その他の言語プロセッサ
その他にも言語プロセッサはあるので、以下にまとめます。
アセンブラ
アセンブラ言語で書かれたプログラムを機械語に翻訳します。
プリコンパイラ
高水準言語で付加的に定義された機能と文法に従ってコーディングされたプログラムを、元の高水準言語だけを使用したプログラムへと変換する方式です。
クロスコンパイラ
コンパイラが動作している環境とは異なるプラットフォーム向けの目的プログラムを生成する方式です。
Windows上で作成して、Androidで動かすという場合に使用します。
エミュレータ
システム上で、他のOSやCPUの機能を模倣する環境を実現させるプログラムを指します。
こちらは、Android Studioでのアプリ作成でも使用しています。
ジェネレータ
パラメータを与えるだけで自動的にプログラムを生成します。
今回はここまで🤚
では、また次回。
コメント