Reading Gauche/vm/insn/LOCAL_ENV_TAIL_CALL


Top / Reading Gauche / vm / insn / LOCAL_ENV_TAIL_CALL

LOCAL_ENV_TAIL_CALL

LOCAL_ENV_TAIL_CALL(DEPTH)

説明

LOCAL_ENV_CALL 命令の末尾呼び出し最適化版命令。
末尾呼び出しの最適化はTAIL_CALL と同じ方法で実現している。
LOCAL_ENV_CALL が末尾呼び出しの場合に、余分な継続を破棄する事で空間を節約している。
詳細はTAIL_CALL参照。

使用例

(disasm (lambda () ( letrec ( (a (lambda () (b) ) )

              (b (lambda () (a) ) ) )

             (a) (b) ) ) )

0 LOCAL-ENV-CLOSURES(1) (#<lambda 0>); (letrec ( (a (lambda () (b))) (b (lambda ...

2 LOCAL-ENV(0) ; (lambda () (b))

3 PRE-CALL(0) 7

5 LREF10 ; b

6 LOCAL-ENV-CALL(0) ; (b)

7 POP-LOCAL-ENV

8 LREF0 ; b

9 LOCAL-ENV-TAIL-CALL(0) ; (b)

10 RET

internal_closure_0 (name=b, code=0x241b260, size=4, const=0 stack=6):

args: #f

0 LOCAL-ENV(0) ; (lambda () (b))

1 LREF10 ; b

2 TAIL-CALL(0) ; (b)

3 RET

関連項目

コメント

コメントはありません。 コメント/Reading Gauche/vm/insn/LOCAL_ENV_TAIL_CALL?

お名前:

MENU

now: 4

リンク


最新の20件
2018-10-07 2018-09-20 2018-09-03 2018-05-09 2017-09-29 2017-01-10 2016-12-11 2016-10-04 2016-08-14 2016-05-29 2015-12-28 2013-02-25 2013-02-21 2013-02-20 2013-02-12 2013-02-11 2013-02-10
最新の20件
2010-02-01 2010-01-31 2010-01-30 2010-01-29 2010-01-16

Counter: 1521, today: 2, yesterday: 1

リロード   新規 編集 凍結 差分 添付 複製 改名   トップ 一覧 検索 最終更新 バックアップ   ヘルプ   最終更新のRSS

Last-modified: 2009-09-26 (土) 18:49:48 (3342d);  Modified by mona
PukiWiki 1.4.6 Copyright © 2001-2005 PukiWiki Developers Team. License is GPL.
Based on "PukiWiki" 1.3 by yu-ji
Powered by PHP 5.2.17
HTML convert time to 0.074 sec.