前田です。

中村暁史 <anakamur / exa.i-tech.co.jp> writes:

> ->Followup-To: fj.comp.oops です:-)
> 
> ごんたくんのきもちがよくわかるっす。(和訳:できるかなー)

あまりruby-list向けの話題ではないと思ったものですから。
# かといってruby-devでもないですし。

> ところでnifty/fprogpro/mes6は如何致しましょう :-Q

NIFTYは課金がもったいないので辞めてしまいました。

> ->オブジェクト指向かどうかと、ungetが必要かどうかという問題は
> ->独立だと思います。
> 
> 構文を表現するオブジェクト群ツリーの中のどこに
> 次の単語(など)をattachするか?を決め兼ねてさまようことは
> あるでしょうけど、だからといってそれを「読む以前の状態に戻す」
> 必要はない、んではないかなと思ったもんで。
> 
> 手続き指向で関数呼び出しによって動く言語(Cとか)でコンパイラを
> 作るときに特有、つーかそういう言語向けに処理手順を最適化した
> 結果として、「戻す」があるんだと、古典的な(つまりそーいう言語を
> 対象とした)コンパイラの作り方本を読んだときの俺の雑感です。
> 
> だって手続き指向だと、読み元くらいしか、さまよったオブジェクト
> (じゃないけど)を一時的に持たせる場所がないんですもん(T_T)

別に手続き指向(?)でも一時的な変数なり構造体のメンバなりにデー
タを持たせることはできるのではないでしょうか。
結局ungetに相当する処理を自分でやるか、ライブラリにやっても
らうか、という問題なので、オブジェクト指向かどうかとは直接関
係はない、というのがボクの意見です。

RubyのIOにもungetcはありますけど、読んできた値を元のオブジェ
クトに読み戻すという処理はオブジェクト指向的(?)に見ても自然
ではないでしょうか。
古典的な手法を古典的であるからというだけの理由で捨てることは
ないと思います。
# 直列オブジェクト指向だってすでに古典的なテクノロジですし。

-- 
前田 修吾