In article <20020402113421.EBAE7349 / helium.ruby-lang.org>,
  "K.Kosako" <kosako / sofnec.co.jp> writes:

> そうですね。やっとわかりました。
> (?:a*)??は(?:a+)??に自動的に変換するようにします。
> 自動的に変換するのはこのパターンだけです。
> その他はエラーか警告表示するだけです。

えぇと、なんでこれだけ変換するんでしょう? 最適化のためなら、たとえば
(?:a*)* を a* にするとか候補はいろいろあると思うんですが。

つまり方針がよくわかりません。

* 冗長な記述を認める。
* 冗長な記述を認めない。

* なるべく最適化する。
* 最適化しない。

それぞれどっちなんでしょう。

おそらく、冗長性を認めるか否かは人間があえて冗長に書きたいような記述が
存在するかどうかが問題で、安全な最適化はやれる時には常にやった方がいい
んだと思いますが。
-- 
[田中 哲][たなか あきら][Tanaka Akira]
「ふえろ! わかめちゃん作戦です$(C⊇」(Little Worker, 桂遊生丸)