過去の桐井戸端BBS (桐ver.8)
28215 一括処理を記述するとき日本語とアルファベットでどちらのほうが処理速度が速いのでしょうか うむ 2004/11/15-19:02
ふと気付いたのですが、一括処理を記述する際、関数・一括処理コマンドで例えば、
#条件選択と#COND、ケースとifなど日本語とアルファベットのうち、
どちらかで記述した方が処理速度が速くなるとかあるのでしょうか?

28217 Re:日本語とアルファベット 佐田 守弘 2004/11/15-19:40
記事番号28215へのコメント
うむさん
まず総論的に言えば、大勢にどころかほとんど影響ない問題だろうと思います。

原理的に言えば、桐のプログラムの中にこれらの命令語のリストがあるだろうと思いますが、
多分、始めの方に書いてある命令語の方が、後の方よりも、サーチする時間が短くなるだけ速かろうと思います。
ただし、それが日本語か英名かのどちらかは分りません。
日本語の命令の方が先に作られ、後から英名が作られた事が多いとすれば、日本語の方が速いかも知れません。
辞書順でソートされていたら英名の方が速いかも知れません。

しかしそれは単なる理屈の上の原理的な話です。
むしろ他の事の方が大きく影響するかと思います。

質問の件を気にするのであれば、HD上で桐のシステムと一括処理や表データが書き込まれているトラックが近接しているか、
離れているかの方が影響するかと思います。
それ以外にも影響する要因は多いので、日本語名か英名かの違いは、
誤差要因よりもはるかに微々たるものと言った方が正しいでしょう。

佐田守弘(KS-00119)

その様な事よりも、私は、「どちらが見やすい記述か」を大切にしています。
一目で見やすい様に、日本語名を使う事をお奨めします。
28218 製作者にとって「どちらが見やすい記述か」の問題 ONnoji 2004/11/15-20:54
記事番号28215へのコメント
うむさん、こんにちは。

この話題は桐ver.8 や 桐ver.9 や 桐ver.9-2004 のことだろうと思います。

理屈の上では確かに、正式名と別名で構文を解釈する部分で少しだけ差があるはずですが、
これを実感することは無いだろうと思います。

これは私の憶測の域を出ませんが…
Windows桐では一括処理( .cmd )やイベント処理( .kev )を実行する際に、
最初に擬似コンパイルしているように思います。
もしも、私の憶測が正しければ、
中間言語に変換する際に、正式名と別名で構文を解釈する部分で少しだけ差があるはずですが、
擬似コンパイルしたコードを実行する際には、正式名も別名も区別が無くなっているので、
実行速度には変わりが無いだろうと思われます。

この私の憶測は別にして、
実際問題として正式名と別名の違いで、差を実感・体感するのは困難なのではないでしょうか。

すでに佐田さんが次のように述べられています。

>その様な事よりも、私は、「どちらが見やすい記述か」を大切にしています。
>一目で見やすい様に、日本語名を使う事をお奨めします。

私も基本的に賛成です。

以下はあくまでも私の個人的な感想ですが…

>ケースとif

私の場合、ケースは条件が3個以上の場合にしか書きません。
もしも、条件が一つの時には、if <条件> ... end
else条件がある場合には、if <条件> ... else ... end
としています。
※さすがに、if の代わりに「もしも」コマンドはありませんね。
※これは if は普通に当たり前だからで、K3殿も承知されているようですね。

>#条件選択と#COND

私の場合、#条件検索と入力するのは億劫なんですよ。
本当に出来れば、#iif:イミーディエットイフと書きたいのですが、
さすがにこれは駄目です。(>_<)
仕方がないので、コンディション:condition、つまり、#cond と書いています。

その他に、#文字列 → #str、 #部分列 → #sst としています。
これは私が今まで使っていた言語との関連なのですが、
私には #文字列 よりも #str:スリング:string の方が感覚にぴったりと合います。
同様に、#部分列 よりも #sstr:サブストリング:substring が私の感覚に合います。

今まで桐以外の舶来ソフトを使っていた人には、
桐の日本語名の関数は馴染みにくい場合があるのではないでしょうか。
私の場合には、桐の日本語名関数のかなりの大部分に違和感を覚えるので別名をよく使います。

しかし、関数の日本語名は敬遠する私ですが、
コマンド名とメソッド名は桐の正式名称を使います。

桐は日本語のデータ処理言語を持っているところが良い所だと思います。
桐のコマンド名とメソッド名が自然言語指向であることは素晴らしいことです。
これは早い話が、桐のコマンド名とメソッド名が日本語ライクであるということです。

一括処理( .cmd )やイベント処理( .kev )を読む時、
日本語ライクなコマンドで記述されているのは、とても読み易いです。

しかし、別名のコマンドで書かれていると、これが桐なのかと一瞬戸惑います。
これってベーシックだろうか??と思っちゃうんですね。
※これは個人的な話ですが、私はベーシックというのは大嫌いなんです。(^^ゞ

一括処理( .cmd )やイベント処理( .kev )が、
正式名称の日本語ライクなコマンドで記述されているのは、とても美しいと思います。
「やっぱり桐はこれでなけりゃ〜!」と本気で思います。

しかし、関数の名称と同じように、
逆に別名のコマンド名の方が感覚にぴったりと合う人もいるはずです。

結局、最終的には製作者にとって「どちらが見やすい記述か」の問題なんですね。


28225 Re:日本語とアルファベット うむ 2004/11/16-22:53
記事番号28215へのコメント
佐田様、ONnoji様

すみません、忘れていました。ver.8です。
自分はDOS時代から一括処理を組んでいるんですが、付け足していったひどいルーチンってこともあり、
CPUがGHz速になっても時間かかるわ、途中で「エラーが発生…」で落ちるわでなんとかならないものかと思案しておりました。
やはり、根本的に見直さなければならないようですね…
ストレス少ない日本語記述だし、基本に返って書き直してみます。

ありがとうございました。

戻る