Presentation is loading. Please wait.

Presentation is loading. Please wait.

An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl

Similar presentations


Presentation on theme: "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl"— Presentation transcript:

1 An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl

2 Introduction 7つのプログラミング言語で同じ処理をするプログラムを書いてもらうテスト 複数の人が実験台に プログラムの種類
Z1000:1000個の電話番号をランダムに生成 M1000:1000個の任意の電話番号(空を含む) Z0:電話番号を生成しない(初期化処理測定用) 電話番号をアルファベットに変換し辞書から検索

3 Results – Run time 初期化処理(z0) サーチ処理(z1000) C, C++は速い
スクリプトではPerl, Pythonが速い サーチ処理(z1000) Rexx, Tclだけやたら遅い

4 Results – Memory consumption
メモリ消費量はC, C++が最も少ない Javaが最も多い スクリプト言語は意外にメモリを食わない

5 Results – Program length and amount of commenting
スクリプト言語はプログラム行数が短くて済む そのせいか、プログラム中に含まれるコメントの比率が高い

6 Results – Program reliability
Z1000テスト C, C++, Perlが正しくない答え Javaがクラッシュ M1000テスト JavaとTclとPythonでクラッシュしたのが出た ・・・これはプログラムが変なのでは?

7 Results – Work time and productivity
コーディングにかかる時間はスクリプト系がやはり短くて済む LOC/hour (Line Of Code) Tclで時間がかかり気味の人がいる

8 Results – Program structure
スクリプト系の場合 電話番号をキーにして、データを連想配列に サーチの処理は連想配列を使って簡単に記述できる 非スクリプト系の場合 配列に入れる データ構造をツリー状にする、という手もある サーチの処理は自前で書かなければいけない C++, Javaはハッシュテーブルのクラスが用意されているのに、使わない人が多い

9 Conclusion C, C++, JAVA 実行速度 ○ △(しかし許容範囲) メモリ △(←の倍くらい食う) 生産性
Perl, Python, Rexx, Tcl 実行速度 △(しかし許容範囲) メモリ △(←の倍くらい食う) 生産性 △(コーディング時間がスクリプト言語の倍くらい) 信頼性


Download ppt "An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl"

Similar presentations


Ads by Google