An empirical comparison of C, C++, Java, Perl, Python, Rexx, and Tcl sada@ecn Introduction • 7つのプログラミング言語で同じ処理をするプロ グラムを書いてもらうテスト • 複数の人が実験台に • プログラムの種類 – – – – Z1000:1000個の電話番号をランダムに生成 M1000:1000個の任意の電話番号(空を含む) Z0:電話番号を生成しない(初期化処理測定用) 電話番号をアルファベットに変換し辞書から検索 Results – Run time • 初期化処理(z0) – C, C++は速い – スクリプトではPerl, Pythonが速い • サーチ処理(z1000) – Rexx, Tclだけやたら遅い Results – Memory consumption • メモリ消費量はC, C++が最も少ない • Javaが最も多い • スクリプト言語は意外にメモリを食わない Results – Program length and amount of commenting • スクリプト言語はプログラム行数が短くて 済む • そのせいか、プログラム中に含まれるコメ ントの比率が高い Results – Program reliability • Z1000テスト – C, C++, Perlが正しくない答え – Javaがクラッシュ • M1000テスト – JavaとTclとPythonでクラッシュしたのが出た • ・・・これはプログラムが変なのでは? Results – Work time and productivity • コーディングにかかる時間はスクリプト系 がやはり短くて済む • LOC/hour (Line Of Code) – Tclで時間がかかり気味の人がいる Results – Program structure • スクリプト系の場合 – 電話番号をキーにして、データを連想配列に – サーチの処理は連想配列を使って簡単に記述できる • 非スクリプト系の場合 – 配列に入れる – データ構造をツリー状にする、という手もある – サーチの処理は自前で書かなければいけない • C++, Javaはハッシュテーブルのクラスが用意さ れているのに、使わない人が多い Conclusion C, C++, JAVA Perl, Python, Rexx, Tcl 実行速度 ○ △(しかし許容範囲) メモリ ○ △(←の倍くらい食う) 生産性 △(コーディング ○ 時間がスクリプト言 語の倍くらい) 信頼性 ○ ○
© Copyright 2025 ExpyDoc