FE EXAM

言語処理プログラム(ソースコードの変換役)

人間が書いたプログラムをコンピュータが実行できる形式に変換するソフトウェアの総称。

DIAGRAM
コンパイラ
インタプリタ
アセンブラ
ソースコード人間が書くx = 1 + 2print(x)言語処理プログラム(変換役)コンパイラ入力: 高級言語処理: 一括翻訳インタプリタ入力: 高級言語処理: 逐次解釈実行アセンブラ入力: アセンブリ言語処理: 機械語へ変換機械語/ 実行0101 1100

人間が書いたソースコードは、コンピュータがそのままでは理解できません。言語処理プログラムがあいだに入って、機械が実行できる形へ橋渡しします。

解説

📌
言語処理プログラムとは

ソースコード言語処理プログラム機械語

言語処理プログラムとは、人間が書いたプログラム(ソースコード)を、コンピュータが実行できる形式に変換するソフトウェアの総称です。コンピュータが直接理解できるのは 機械語(=0と1だけで表された命令のこと)だけで、人間が読み書きしやすい言葉とはかけ離れています。そのギャップを埋めるのが言語処理プログラムの役目です。

身近な例で考えると、外国語の通訳・翻訳者に似ています。日本語しか話せない人(人間)と、英語しか分からない人(コンピュータ)のあいだに通訳が入って、お互いに伝わる形に変換してくれる──その通訳役が言語処理プログラムです。

上の図解では、ソースコードが3種類の言語処理プログラム(コンパイラ・インタプリタ・アセンブラ)を経て、機械語や実行へとつながる流れを示しています。それぞれ変換のしかたが異なります。

📂
3種の分類

言語処理プログラムは、代表的に次の3種類に分類されます。
コンパイラ:高級言語(=人間に分かりやすい言葉で書く言語のこと)を一括翻訳する
インタプリタ:高級言語を1行ずつ逐次(ちくじ)解釈しながら実行する
アセンブラ:アセンブリ言語(=機械語に近い低水準の言語のこと)を機械語に変換する

種類入力する言語変換のしかた
コンパイラ高級言語一括翻訳
インタプリタ高級言語逐次解釈実行
アセンブラアセンブリ言語機械語へ変換

同じ「変換役」でも、扱う言語のレベルと変換の進め方が異なります。コンパイラとインタプリタは人間に近い高級言語を扱い、アセンブラは機械語にぐっと近いアセンブリ言語を扱う、という点をまず押さえましょう。

⚖️
役割の違い

事前に一括翻訳翻訳 → 実行ファイル実行(高速)1行ずつ解釈実行解釈 → 実行 を1行ずつ繰り返す

3種の最も大きな違いは、「いつ・どうやって変換するか」です。コンパイラアセンブラは、実行する前にプログラム全体をまとめて翻訳し、実行ファイル(=そのまま動かせる機械語のファイル)を作っておきます。

一方のインタプリタは、実行ファイルを作りません。プログラムを動かしながら1行ずつ「解釈→実行」を繰り返すのが特徴です。

項目事前に翻訳(コンパイラ/アセンブラ)実行しながら(インタプリタ)
変換のタイミング実行前に一括実行しながら1行ずつ
実行ファイル作る作らない
実行速度速い遅め(毎回解釈)

料理にたとえると、コンパイラはレシピを全部読んで作り置きしておく方式、インタプリタはレシピを1行読んでは作り、また1行読んでは作る方式です。作り置きは食べるとき(実行)が速く、その場調理は始めるのが手軽、というイメージで整理すると分かりやすいです。

練習問題

🎯
基本情報技術者 練習問題

Q1.言語処理プログラムの説明として最も適切なものはどれか。
A.ハードウェアを直接制御するための電子回路
B.人間が書いたプログラムをコンピュータが実行できる形式に変換するソフトウェアの総称
C.プログラムの実行結果を画面に表示する装置
D.データを保存するための記憶装置
Q2.高級言語で書かれたプログラムを実行ファイルとして一括翻訳するのはどれか。
A.コンパイラ
B.インタプリタ
C.アセンブラ
D.リンカ
Q3.アセンブリ言語で書かれたプログラムを機械語に変換するのはどれか。
A.コンパイラ
B.インタプリタ
C.アセンブラ
D.OS

関連コンテンツ