組み込み Forth 言語逆コンパイラを使用して、どのような定義済み Forth ワードのソースコードでも表示できます。
ok see old-name |
このコマンドは、old-name のソースの (ソースコメントなしの) リストを表示します。
see は (see) と対をなしています。つまり、(see) の機能は Forth ワードの逆コンパイルを行い、その実行トークンはスタックから取り出されます。次の例を参照してください。
ok ' old-name (see) |
(see) は see と同じ書式のリストを生成します。
ok see see : see ' ['] (see) catch if drop then ; ok see (see) defer (see) is : (f0018a44) 40 rmargin ! dup dup (f00189c4) dup (f0018944) (f0018980) (f0018658) ??cr ; ok f0018a44 (see) : (f0018a44) 40 rmargin ! dup dup (f00189c4) dup (f0018944) (f0018980) (f0018658) ??cr ; |
上記のリストは、次のことを示しています。
see そのものは、fcode-debug? が true に設定されて external または headers としてコンパイルされた Forth ソースワードだけで構成されています。
(see) は据え置きワードです。(see) 内には、headerless としてコンパイルされた、したがって、括弧で囲まれた 16 進アドレスとして表示されているワードもあります。
(see)でワードを逆コンパイルすると、see が生成するものと同じリストが生成されます。
Forth アセンブラ言語に実装されているワードについては、see は Forth アセンブラのリストを表示します。たとえば、dup を逆コンパイルすると、次のように表示されます。
ok see dup code dup f0008c98 sub %g7, 8, %g7 f0008c9c stx %g4, [%g0 + %g7] f0008ca0 ld [%g5], %l0 f0008ca4 jmp %l0, %g2, %g0 f0008ca8 add %g5, 4, %g5 |