Written in Japanese(UTF-8)
2014.8.30
INASOFT
2014.8.30
INASOFT
/トップ/いじくるつくーる/ダウンロード/WebHelp/ヘルプトップ/
本ソフトウェアの開発は終了しています。ヘルプに記載されている情報も古いものになっています。

連載(R-Script10周年 第2回) [ 2/ 5]
第2回 R-Scriptの苦労した点
公開日:2011/12/18
最近めっきり寒くなってきましたね。僕の経験上、苦労と寒さがコラボレーションしたときに風邪を引くことが多いです。みなさま、風邪などひかぬよう、十分暖かくして下さいね。さてさて、今日はそんな「苦労」話について書いてみようかと思います。
当時(2002年頃)は、すでにインターネットが普及しており、回線はブロードバンドになっていましたから、技術的な不明点を調べるためにネットを用いる環境は整っていました。そんな中で、R-Scriptを作るにあたって注意した点は、
- R-Script自身は、C++で一生懸命コーディングする必要があり、そこには手間が掛かる。
- R-Script作成目的はスクリプト記述時の手間を減らすためなので、R-Scriptには十分に時間をかけて作るべきであるが、どこまで時間をかけて作るべきか?
- R-Script自身にかける手間と、スクリプト記述時の手間は、トレードオフになる。
でしょうか。卒業研究には「1年間」というタイムリミットがあるので、当然、やることを絞らなければなりません。
また、当時の僕の技術力で、どこまで実現可能なのか?という制限もありました。
そこで当時は、R-Scriptという言語を設計するにあたって、次のようなことを考えました。
- R-Scriptでは基本的に、1つのレジストリエントリを編集するために、1つの命令(関数呼出し)を記述する。それを記述すれば、レジストリからの読込み〜編集〜書込みの一連の流れを、R-Scriptが勝手にやってくれる。
- 上記の流れに乗らない(ある程度汎用性のある)特殊処理については、特殊処理用のスクリプト命令(関数)を作り、スクリプトに処理を記述する。
- 特殊処理用のスクリプト命令(関数)を作るほどでもない、完全非汎用的な特殊処理については、C++でDLLを作って、スクリプトから呼び出させる。
「R-Script作成時・スクリプト記述時」間のトレードオフを3段階に分けることにより、手間が各所毎に分散するように工夫してみたというわけです。これによってできあがった構成が、
- 1行のスクリプト記述で完全制御 … コントロール作成のレジストリキー・エントリ名指定で作る。
- スクリプトで特殊処理を記述する … 上記コントロール作成でレジストリキー・エントリ名を省略し、レジストリの読み書き、文字列操作用関数等で細かい制御を行う。
- 外部DLLに任せる … CallDll、CallDll$ でDLLを呼び出す。
工学の世界ではよく言われているそうですが、「7:3の法則」とかいうものがあるそうですね。これは、
- 全体の7割の動作は、3割の苦労で作られる。(主立った処理など)
- 残りの3割の動作は、7割の苦労で作られる。(エラー処理・特殊処理など)
と言われるというわけです。(これは「8:2の法則」と言われることもあります)
R-Scriptにこれを当てはめると、「7 … 1行のスクリプト記述で完全制御、2.9 … スクリプトで特殊処理を記述する、0.1 … 外部DLLに任せる」くらいの割合になるでしょうか。
戻る
前へ 次へ
※このページは、ソフトウェアに付属のヘルプファイルをWeb用に再構築したものです。大部分に自動変換を施しているため、一部は正しく変換しきれずに表示の乱れている箇所があるかもしれませんが、ご容赦下さい。また、本ドキュメントはアーカイブドキュメントであり、内容は「いじくるつくーる」最終公開時点、あるいは、それより古い時点のものとなっております。一部、内容が古くなっている箇所があるかと思いますが、あらかじめご了承下さい。
※このページへは、自由にリンクしていただいてかまいません。
このページに関するご意見の受け付けは終了しています。