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

Slides:



Advertisements
Similar presentations
生物統計学・第 14 回 Perl を使いこなす インストール、プログラミング 2014 年 1 月 20 日 生命環境科学域 応用生命科学 類 尾形 善之.
Advertisements

情報システムプロジェクト I 第2回 FileScanner.java ~ファイル入力、文字切り出し機能を持つ プログラムの作成~
アルゴリズムとデータ構造 第2回 線形リスト(復習).
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第3回 配列(1) 情報・知能工学系 山本一公
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
第3回参考文献発表 PHP言語 岩永逸平.
JavaScript プログラミング入門 2006/11/10 神津.
MySQLに接続するデータベースプログラム
知識情報演習Ⅲ(後半第1回) 辻 慶太(水)
2008/03/01 D-BOF k.inaba はじめての initial D 2008/03/01 D-BOF k.inaba
FORTRAN 科学技術計算用 数値演算精度を重視したシステム K=0 DO 10 I=0,N,1 K=K+I 10 CONTINUE
分散コンピューティング環境上の Webリンク収集システムの実装
侵入検知システムの構築と ログの可読性向上
実行時のメモリ構造(1) Jasminの基礎とフレーム内動作
プログラミング演習Ⅱ 第12回 文字列とポインタ(1)
最適化ソルバーのための Python言語入門
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
情報科学1(G1) 2016年度.
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
理由:文字数より要素数の多い配列を用いた時に,文字列の最後を示すため
Perlを用いた 学内専用アップローダの作成
図書館ツール発想日記 ~「東京大学内のサイトから関連学術用語のデータを得る」(仮称)システムへの寄り道思考経路~
①データ構造 ②アルゴリズム ③プログラム言語 ④マークアップ言語
心理学情報処理法Ⅰ コンピュータ言語の歴史.
第20章 Flyweight ~同じものを共有して無駄をなくす~
アスペクト指向プログラミングを用いたIDSオフロード
第10回 プログラミングⅡ 第10回
第13回 ハッシュテーブルを使ったプログラム ~高速に検索するには?~.
二分探索木によるサーチ.
マクロ経済学初級I 第3回.
型付きアセンブリ言語を用いた安全なカーネル拡張
細かい粒度でコードの再利用を可能とするメソッド内メソッドのJava言語への導入
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング言語入門 手続き型言語としてのJava
Cプログラミング演習 中間まとめ2.
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
プログラミング言語入門.
Java Bytecode Modification and Applet Security
コンピュータに計算させる命令を確かめよう!
すぐできるBOOK -スケジュール編-.
前回の練習問題.
社会シミュレーションのための モデル作成環境
2016年度 植物バイオサイエンス情報処理演習 第6回 情報処理(4) データを加工する・2
JXTAの概要 P2P特論 (ソフトウェア特論) 第3回 /
DSLはVisualツールのサポート前提
アスペクト指向言語のための 独立性の高いパッケージシステム
第5章 計算とプログラム 本章で説明すること ・計算の概観と記述法 ・代表的な計算モデル ・プログラムとプログラム言語.
シナリオを用いたレビュー手法PBRの追証実験 - UMLで記述された設計仕様書を対象として -
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
実装編②HashTable,JavaAPI
C言語 はじめに 2016年 吉田研究室.
プログラミング言語入門 2013 (C言語 初級) 演習期間 担当 参考資料 採点 10/24 - 1/23 (全10回) 松澤,鈴木,児玉
アルゴリズムとプログラミング (Algorithms and Programming)
マイグレーションを支援する分散集合オブジェクト
コンパイラ 2012年10月1日
ソフトウェア工学 知能情報学部 新田直也.
C#プログラミング実習 第3回.
設計情報の再利用を目的とした UML図の自動推薦ツール
``Exponentiated Gradient Algorithms for Log-Linear Structured Prediction’’ A.Globerson, T.Y.Koo, X.Carreras, M.Collins を読んで 渡辺一帆(東大・新領域)
「マイグレーションを支援する分散集合オブジェクト」
Webインテリジェンス論 Protégé演習 (インストール)
第2回 Webサーバ.
識別子の読解を目的とした名詞辞書の作成方法の一試案
C#プログラミング実習 第1回.
1.2 言語処理の諸観点 (1)言語処理の利用分野
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
プログラミング言語Ⅰ(実習を含む。), 計算機言語Ⅰ・計算機言語演習Ⅰ, 情報処理言語Ⅰ(実習を含む。)
Homepage: anthnet.co.jp
就職活動.
Presentation transcript:

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) サーチ処理(z1000) 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 実行速度 ○ △(しかし許容範囲) メモリ △(←の倍くらい食う) 生産性 △(コーディング時間がスクリプト言語の倍くらい) 信頼性