平成30年度 秋期 午前 問19
ソフトウェア
コンパイラに関する問題
手続型言語のコンパイラが行う処理のうち,最初に行う処理はどれか。
- ア意味解析
- イ構文解析
- ウ最適化
- エ字句解析
答えと解説を見る
✓ これが正解エ字句解析
解説
文字の並びを語のまとまりに切る処理が、最初に来ます。
コンパイラによる翻訳は、原始プログラムがただの文字の並びとして与えられるところから始まります。最初にやることは、その並びを意味のある最小のまとまりへ切り分けることです。この段階を字句解析と呼び、変数の名前、数値、記号、予約された語などが単位になります。切り分けが済むと、次はまとまりの並び方が文法に沿っているかを調べて構造を組み立てます。並びの正しさが確かめられてから、型の対応など内容のつじつまを調べる段階へ進みます。最後に、動きを変えずに実行を速くする書き換えを行い、目的プログラムを出力します。前の段階の結果を次の段階が受け取る形なので、順番を入れ替えることはできません。誤りの知らせがどの段階から出たかを見ると、原因の見当をつけやすくなります。役割が段階ごとに分かれている点が特徴です。
ほかの選択肢はなぜ違うのか
- ア意味解析:型の対応や名前の宣言など、内容のつじつまを調べる段階を指しています。文法上の並びが確定していないと、どの名前がどこに掛かるかを決められません。構造を組み立てた後に行う処理という位置づけになります。先に並びの確定が必要です。
- イ構文解析:切り出された単位の並びが文法に沿っているかを調べ、構造を組み立てる段階です。調べる対象は文字そのものではなく、すでに切り分けられたまとまりのほうです。切り分けが先に済んでいることが前提になっています。
- ウ最適化:出力する目的プログラムを速くしたり小さくしたりする書き換えのことです。何をする処理かが確定していなければ、書き換えてよいかを判断できません。翻訳の流れの中では、終わりのほうに置かれる処理になります。意味が定まってから行います。
出典:平成30年度 秋期 基本情報技術者試験 午前 問19
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)