2 part forth (907レス)
前次1-
抽出解除 レス栞

472
(3): 464 [sage] 2008/10/07(火) 23:32:13 AAS
>465
465(1): デフォルトの名無しさん [sage] 2008/10/07(火) 06:15:51 AAS
x86アーキテクチャには思いっきりスタックポインタがありますが?

>>464のいう「最近のCPU」が非ノイマンアーキテクチャとかを指すなら
スタックがないCPUもあるかも知れないけど。
いや、スタックポインタ(レジスタ)じゃなくてスタック。>467
467(1): デフォルトの名無しさん [sage] 2008/10/07(火) 12:34:16 AAS
>>464 の言ってる「スタック」はハードウェアスタックのことと思われる。

>>463
「データスタックってのは、言ってみれば「無限に増えるアキュムレータ」って感じ。」
ってのは、確かにハードウェアスタックを思わせる記述だが。
の通りですな。>463
463(4): デフォルトの名無しさん [sage] 2008/10/06(月) 21:49:04 AAS
・リターンスタックが普通のCPUで言うとことの「スタック」。
 ワード(Cで言うところの関数、実際にはサブルーチン)
 を呼ぶと呼び出し戻るためのアドレスを積む。

# 普通のCPUでCALL命令(68系だとBSR、JSR)を実行すると
# リターンアドレスがスタックに積まれるのは理解しているよね?

・データスタックってのは、言ってみれば「無限に増えるアキュムレータ」って感じ。

・「辞書」が命令コードストレージ、C言語でいえばTEXTセグメント

Forthの本質は上記3点をおさえて置けば理解できるんだが。

BPがリターンスタックと等価なんて言ってる人とか、

>・リターンスタック: 実行する命令列(辞書で展開された単語含む)
>リターンスタックというよりもオーダースタックといった方がちょうど良い気がするけどね

なんて言っている人、本当に理解できてるの?
で『アドレスを積む』とか
書いているからHWスタックのことかと思った。
スタックを内部に持つCPUの話があった記憶があったので勘違いしたわ。すまんね。

forthあんまり詳しくないんで済まんのだけど、『リターンスタックには、ワードを呼ぶと呼び出し戻るため
のアドレスを積む』んだっけ?
正規化の観点からは『まだ実行していないWORD』もリターンスタックに積めた方が便利だと思うけど。
WORDコンパイルの実装で手が抜けなくなるし……
473
(2): デフォルトの名無しさん [sage] 2008/10/07(火) 23:56:37 AAS
>>472
意味が理解できん。
「まだ実行してないWord」を積む、って具体的に何を積むの?
まだ実行してないワードのアドレスなら辞書に入ってると思う(関節スレッディングの場合)
475: デフォルトの名無しさん [sage] 2008/10/08(水) 06:31:12 AAS
>>472
Forthと関係なく、関数の呼び出し元に戻るためにアドレスをスタックに積む、
という動作は、アセンブリレベルでは普通の関数呼び出し規約。
Forthは言語レベルでリターンスタックを操作できる言語だけど、
普通は意識しなくてもいいから、リターンアドレスが何のために存在しているのか
理解できない人がいても不思議じゃないけど、せめてもう少し自分で勉強して欲しい。
486
(2): 464 [sage] 2008/10/09(木) 08:54:40 AAS
>485
485(1): デフォルトの名無しさん [sage] 2008/10/09(木) 06:24:10 AAS
リターンスタックに積んであるリターンアドレスは、
「これから実行される命令列」へのポインタそのものと見なせるから、
そのアイデアが新しいとは思えないけどな。
Forthぐらいバーチャルマシンの実装が簡単な言語もないし。

ただ、リターンスタックの意味がよくわからないままに、
他の言語のように抽象構文木を再帰的に処理するような
実装にしていると、リターンスタック操作の実装で悩むの
かもしれない。
>463は呼び出したWORDを積むことを前提にしているし、>451
451(2): デフォルトの名無しさん [sage] 2008/10/05(日) 19:02:41 AAS
>442
大雑把にはこんな感じかね。
・データスタック: 引数&戻り値
・リターンスタック: 実行する命令列(辞書で展開された単語含む)

リターンスタックというよりもオーダースタックといった方がちょうど良い気がするけどね
>472で言ってるのが >463 >473
思い切り否定されてるので、forthじゃそういう考え方無いのかな、と思った。
もしforthでもそういう使い方しているんだったらおいらの不勉強だね。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.043s