[1373] Re:関数の再起について
投稿者:(ぱ)こと管理人
2009/06/23 02:34:39
ええと、細かいことですが「再起」ではなく「再帰」ですね。
>その後言語内の関数実行部を
>作ったのですが。そのまま、再起で実行する部分を使って組み込んだために、関数実行
>はVM実行部の再起になっています。
了解です。
再帰を使わずに作ると、例外処理機構でCの呼び出し階層を遡らなくてよいとか、
ファイバーのような機能を作るときに現在の実行状態を退避できるとかの
メリットがあると思いますが、例外処理をDiksamで作ってみたら、再帰を使っている
crowbarの例外処理よりもかえって大変だったような気がしますし、再帰なら
再帰でかまわないと思います。
実はDiksamでもネイティブ関数からDiksam関数を呼ぶところは再帰なので、
ファイバーとか考えるなら再考の必要がありますね……
>う~~んどうしようか、当面このままでいこうと思います。既に出来てしまっ
>てるし。スタックを増やさない限り再起が450回しか出来ない欠点はあるけど。
実用的には使われてないであろうcrowbarはさておき、RubyやPerlもCのスタックを
使ってガンガン再帰してますからねえ。