必ず受かる情報処理技術者試験

当サイトは、情報処理技術者試験に合格するためのWebサイトです。
ITパスポート試験,基本情報技術者,応用情報技術者,高度試験の過去問題と解答及び詳細な解説を掲載しています。
  1. トップページ
  2. 基本情報技術者
  3. 平成16年度秋季問題一覧
  4. 平成16年度秋季問題44-解答・解説-分析

平成16年度秋季問題

問題44

Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。

[条件]
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ 100 行のバイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり、コンパイルしてから実行すると 0.003 秒掛かる。
(3) コンパイル時間は 100 行当たり 0.1 秒掛かる。
(4) コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力、コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
(5) プログラムファイルのダウンロード時間など、その他の時間は無視して考える。

50
75
125
155

Javaなどのバイトコードプログラムをインタプリタで実行する方法と,コンパイルしてから実行する方法を,次の条件で比較するとき,およそ何行以上のバイトコードであれば,コンパイル方式の方がインタプリタ方式よりも処理時間(コンパイル時間も含む)が短くなるか。

[条件]
(1) 実行時間はプログラムの行数に比例する。
(2) 同じ 100 行のバイトコードのプログラムをインタプリタで実行すると 0.2 秒掛かり、コンパイルしてから実行すると 0.003 秒掛かる。
(3) コンパイル時間は 100 行当たり 0.1 秒掛かる。
(4) コンパイル方式の場合は,プログラムの行数に関係なくファイル入出力、コンパイラ起動などのために常に 0.15 秒のオーバヘッドが掛かる。
(5) プログラムファイルのダウンロード時間など、その他の時間は無視して考える。

50
75
125
155

解答:エ

<解説>

インタプリタ
ソースコードを1行ずつ機械語に変換しながら実行するプロセッサ
コンパイラ
ソースコードを一括で機械語に変換(コンパイル)してから実行するプロセッサ

 

プログラム行数をaとする。

コンパイラ方式の処理時間=実行時間+コンパイル時間+オーバヘッドより、
0.003÷100×a+0.1÷100×a+0.15

インタプリタ方式の処理時間=実行時間より、
0.2÷100×a

コンパイラ方式の処理時間<インタプリタ方式の処理時間により、
( 0.003 ÷ 100 )× a +( 0.1 ÷ 100 )× a +( 0.15 )<( 0.2 ÷100 )× a
a > 約 154.64≒155となり、155行以上であればコンパイラ方式の方が早いことになる。