【問題】
【難易度】★★★★☆(やや難しい)
次の文章は,マイクロコンピュータのプログラム言語に関する記述である。文中の\( \ \fbox{$\hskip3em\Rule{0pt}{0.8em}{0em}$} \ \)に当てはまる最も適切なものを解答群の中から選べ。
マイクロコンピュータのプログラム命令は,メモリから命令レジスタに読み込まれた後,命令デコーダで解読されて制御回路へ伝達される。このようなマイクロコンピュータが直接理解できるプログラム命令は,\( \ 2 \ \)進数で記述された機械語である。機械語を扱うときには\( \ 2 \ \)進数\( \ 4 \ \)桁分を表す\( \ \fbox { (1) } \ \)進数を用いることが多い。
一般的に機械語命令は,基本動作を表す命令コードと命令の対象となる数値やデータのアドレスなどを表現する\( \ \fbox { (2) } \ \)によって構成される。例えば,相対アドレスを指定する場合は,プログラムカウンタの値に\( \ \fbox { (2) } \ \)によって指定した値を加えて,目的のアドレスを算出する。停止命令や無操作命令など,一部の命令では\( \ \fbox { (2) } \ \)の無い命令もある。
\( \ \fbox { (3) } \ \)は,機械語とほぼ\( \ 1 \ \)対\( \ 1 \ \)に対応したニモニックを用いる言語で,機械語よりもプログラムの内容が分かりやすい。
機械語や\( \ \fbox { (3) } \ \)を低水準言語という。
人間が理解しやすいように記述した原始プログラムを一括して機械語などの低水準言語に変換する言語を総称して,\( \ \fbox { (4) } \ \)言語という。この変換作業によって原始プログラムは目的プログラムとなり,さらに別のプログラムや\( \ \fbox { (5) } \ \)と結合させて実行可能プログラムとなる。
実行時に原始プログラムを一文ずつ解釈し,逐次実行していく言語としてインタプリタ言語がある。この言語は,\( \ \fbox { (4) } \ \)言語に対してプログラム変更手順が容易であるが,実行速度は遅くなる。
〔問8の解答群〕
\[
\begin{eqnarray}
&(イ)& アセンブラ &(ロ)& 非手続き形 &(ハ)& インデックスレジスタ \\[ 5pt ]
&(ニ)& ライブラリ &(ホ)& オペコード &(ヘ)& エミュレータ \\[ 5pt ]
&(ト)& オブジェクト指向 &(チ)& 10 &(リ)& 16 \\[ 5pt ]
&(ヌ)& オペランド &(ル)& \mathrm {HTML} &(ヲ)& 8 \\[ 5pt ]
&(ワ)& \mathrm {C} \ 言語 &(カ)& リンカ &(ヨ)& コンパイラ \\[ 5pt ]
\end{eqnarray}
\]
【ワンポイント解説】
プログラム言語に関する問題で,電気を専門にされている方ではなく,情報を専門にされている方が得意分野となる内容であると思います。基本的には選択問題なので,元々得意な方以外は改めて理解する必要はない問題であると考えられます。
【用語の解説】
(イ)アセンブラ
アセンブリ言語をコンピュータが理解できる機械語に変換するプログラム。機械語と一対一で対応している
(ロ)非手続き形(言語)
人間が理解しやすいように記述した原始プログラムを一括して機械語などの低水準言語に変換する言語
(ハ)インデックスレジスタ
コンピュータの記憶装置の一つで,現在扱っている要素が先頭から何番目かを記憶しておくことで、容易にデータにアクセスすることができる装置
(ニ)ライブラリ
定型化できる機能を持つプログラムを他のプログラムが利用できる状態にしたもの
(ホ)オペコード
ひとつの命令に対してどのような命令を行うかを表すもの
(ヘ)エミュレータ
システムやソフトウェアの動作を模倣し、代替として用いることができるソフトウェア。ファミコンのエミュレータをパソコンで用いる等の使い方が流行ったことがあります。(もちろん違法です。)
(ト)オブジェクト指向
プログラム記述の考え方の一つで,複数人のプログラマがルールを守ることができるようにプログラムを作る考え方です。専門家以外不要な知識と思います。
(ヌ)オペランド
ひとつの命令に対して,その命令の対象となるもの
(ル)\( \ \mathrm {HTML} \ \)
ウェブのページを作成するために必要な言語です。「電験王」も\( \ \mathrm {HTML} \ \)言語で記載されています。
(ワ)\( \ \mathrm {C} \ \)言語
ソフトウェアを作成するために用いられる言語の一つです。
(カ)リンカ
コンパイラやライブラリの言語を結合して最終的に実行する役割をもつもの
(ヨ)コンパイラ
アセンブラと同様,人間が入力したプログラミング言語を機械語に変換するもので特に汎用性が高い言語を変換するもの
【解答】
(1)解答:リ
題意より,解答候補は(チ)\( \ 10 \ \),(リ)\( \ 16 \ \),(ヲ)\( \ 8 \ \),となると思います。機械語を扱うときは\( \ 2 \ \)進数\( \ 4 \ \)桁分を表す,すなわち\( \ 2^{4}=16 \ \)を表す\( \ 16 \ \)進数が用いられます。
(2)解答:ヌ
用語の解説の通り,問題文に合う選択肢は(ヌ)オペランドとなります。
(3)解答:イ
題意より,解答候補は(イ)アセンブラ,(ロ)非手続き形,(ヨ)コンパイラ,等となると思います。いずれも機械語に変換する言語ですが,機械語とほぼ\( \ 1 \ \)対\( \ 1 \ \)に対応したニモニックを用いる言語となっているので,アセンブラ言語となります。
(4)解答:ヨ
題意より,解答候補は(イ)アセンブラ,(ロ)非手続き形,(ヨ)コンパイラ,等となると思います。人間が理解しやすいように記述した原始プログラムを一括して機械語などの低水準言語に変換する言語はコンパイラとなります。
(5)解答:ニ
題意より,解答候補は(ハ)インデックスレジスタ,(ニ)ライブラリ,(カ)リンカ,等になると思います。文中の内容はリンカの役割を示したものですが,結合されるものはライブラリが適切となります。