合格講座:第15回「テクノロジ系 開発ツール」|Tech Book Zone Manatee

マナティ

熱血!藤井講師の基本情報技術者試験 合格講座

合格講座:第15回「テクノロジ系 開発ツール」

2016年(平成28年)秋の[基本情報技術者試験]本番直前まで、合格するための重要ポイント各種プログラミング言語と言語プロセッサの特徴、ソフトウェア作成およびコンパイルのプロセスなどを解説します!

開発ツール分野への対応と攻略ポイント

各種プログラミング言語と言語プロセッサの特徴、ソフトウェア作成およびコンパイルのプロセスなどが問われるでしょう。

本試験出題例

基本情報技術者 平成23年秋期問題 午前:問22
※リンク先はIPAサイトの過去問(PDFファイル)になります。

コンパイラにおける最適化の説明として,適切なものはどれか。
 オブジェクトコードを生成する代わりに,インタプリタ用の中間コードを生成する。
 コンパイルを実施するコンピュータとは異なるアーキテクチャをもったコンピュータで動作するオブジェクトコードを生成する。
 プログラムコードを解析して,実行時の処理効率を高めたオブジェクトコードを生成する。
 プログラムの実行時に,呼び出されたサブプログラム名やある時点での変数の内容を表示させるようなオブジェクトコードを生成する。

2進数とプログラミング言語

コンピュータが理解できるのは2進数だけです。そのため、人間がコンピュータに何かを指示・命令するためには2進数で命令しなくてはなりません。コンピュータが最も理解しやすい2進数の仕組みを利用した言語を機械語(マシン語)といいますが、逆に人間にとって2進数は0と1の羅列であることからとても扱いづらいために、比較的人間の言葉に近い命令を多く含んで習得しやすい言語が次々と開発されてきました。それが各種のプログラミング言語です。

・プログラマはプログラミング言語を用いてプログラミングを行い、次に紹介する言語プロセッサによって機械語へ翻訳し、実行可能な形式に変換するのです。

言語プロセッサの種類と特徴

言語プロセッサとは、人間が書いたプログラムをコンピュータが理解できる機械語に変換するためのソフトウェアのことです。また、どの言語がどの種類の言語プロセッサを使用するかというのは特定されているわけではありませんが、多くの言語ではコンパイラが用いられています。主な言語プロセッサには次のものがあります。

コンパイラ…プログラム全文を一括して解析(文法チェックやコード編集など)して機械語に変換する。そして、実行時ルーチンを結合し、実行時の処理効率を高めたオブジェクトコード(ロードモジュール)を作成する。この一連の処理を最適化という。
インタプリタ…プログラムの命令を1つずつ取り出して変換・実行を繰り返す。プログラムの作成途中に実行してデバッグ※に活用することもできる。
アセンブラ…アセンブラ言語で記述された原始プログラムを、機械語のプログラムに翻訳する。言語と言語プロセッサが同名なので注意。
ジェネレータ…ユーザが指定したパラメタによってプログラムを自動生成する。報告書作成用のプログラム言語であるRPG(Report Program Generator)が代表例。

その他の言語プロセッサ

その他の言語プロセッサには次のようなものがあります。いずれも特定のプログラム内容を異なる形式または言語に変換処理する目的を持っています。

エミュレータ…他の機種用のプログラムを異なる機種上で実行できるように変換処理するプログラム。
クロスコンパイラ…他の機種のコンピュータ上で動作させるためのプログラムを別の機種上で開発(コンパイル)するための変換処理プログラム。
トランスレータ…原始プログラムを異なる処理系のプログラム言語に変換するプログラム。
プリコンパイラ…コンパイルの前処理として、マクロ定義やデータの変換、整列などを実行するプログラム。処理過程で原始プログラムを記述した言語構造に変換される。

ユーティリティプログラム

ユーティリティプログラム(サービスプログラム)とは、プログラミングに活用するための各種データ処理プログラムおよびデバッグツールなどを指します。また、プログラム中の誤りをバグといいますが、バグを取り除く作業をデバッグといいます。デバッグは開発者の目と勘に頼る部分が大きいのですが、デバッグツールと呼ばれるツールを使用することでその作業負担が軽減されます。主なユーティリティプログラムには次のようなものがあります。

インスペクタ…オブジェクトのデータ構造や値を確認するためのツール。
エディタ…テキストファイルを作成する。プログラム入力を補助する機能が搭載されているものも多い。
デバッガ…バグを検出する目的をもつツール類。デバッギングエイド。
トレーサ…処理の誤りを検出するため、プログラムを1ステップずつ実行(トレース)するためのツール。
メモリダンプ…プログラムの処理の適正を確認するため、プログラム内容を16進表示(出力)するツール。ファイルダンプ。スナップショットダンプ。Windowsではdebugコマンドで実行する。

■解答と解説

正解:

 Javaなど、別のインタプリタが機械語に変換する対象として用いるために中間コードが生成されるのであり、最適化ではありません。  クロスコンパイラについての記述です。  バグ検出のためのデバッガの機能についての記述です。

著者プロフィール

藤井淳夫(著者)
事務官として防衛庁に入庁し、システム開発及びシステム管理業務に従事。1998年に独立、IT系社会保険労務士としてITコンサルティング、ITを駆使した人事労務管理及び情報処理技術者育成事業を展開する。大学・企業等における講義講演時間数が1万時間を超える「カリスマ講師」。著書多数。
ホームページ:http://www.ilovepc.jp