2017-10-13 3 views
1

私は組み込みシステムでForthを直接学習しようとしており、Leo BrodieのStarting Forthをテキストとして使用しています。私が使用しているForthバージョンは、Arduino Unoに飛んできた328eForth(ATmega328への移植)です。328eForthに「DO LOOP」がないのはなぜですか?

DO LOOPの単語は328eForthに実装されていないように見えます。これはBrodieの学習に不自由さをもたらします。しかし、「WORDS」を使用して辞書を見ると、一連の繰り返し単語が存在することがわかります。次のAFTが再び繰り返されるまで、また他の人の間で繰り返す。 328eForthからDO LOOPを省略したのはなぜ

Q1を次のように

私の質問がありますか?

Q2他の既存の単語でも実現できますか?もしそうなら、どうしたらいいのですか? (私はが非常に DOループの省略のために正当な理由があるはずだと思います...)

Q3 328eForthループの言葉のいくつかのコメント例を挙げることができますか?

+0

にいくつかのExposéを追加しました。 – meagar

答えて

6

1:異なるループ構築物を選択した。

Q2:言葉FORNEXTはちょうどダウン0 実行にゼロを含む倍の正確指定された数をカウント同様の機能を実行します。
(n2 n1 --) DO ... LOOPは常に少なくとも1回実行されます。追加の(精神的な)簿記が必要です。人々は私が覚えているように長いことを約 について文句を言っています。

質問3:382eforth documentation ForthArduino_1.pdfにはいくつかの例があります。


編集:ポストごとに質問してくださいQ2

+2

DO LOOPの主な問題は、ループステップが負の場合に発生します。それとも少なくともそれは一部の人々が考えるものです。 iForthの最初のバージョンはFOR NEXTしかありませんでしたが、2年間の苦労の末、このアイデアは非生産的であると結論付けました。 DO LOOPはFOR NEXTよりはるかに柔軟です。 –

関連する問題