問題タブ [forth]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
memory-management - 以前に変数に割り当てられたメモリの割り当てを解除します (create を使用)
メモリの割り当て/解放に関するGforthのマニュアルを読んでいますが、これは理解できません。次のように、4 つの整数を保持するためにメモリのチャンクを割り当てたとします。
次に、おそらくより多くのメモリを割り当て、おそらくいくつかのメモリの割り当ても解除したので、今は割り当てを解除したいと思いますfoo
。それ、どうやったら出来るの?するとエラーにfoo free
なります。foo 4 cells free
string-formatting - 画像の数値出力にリテラル スペース文字を追加する
試行錯誤の約数時間後、私はそれを行う方法を理解できませんでした...私が取り組んでいるコードは次のとおりです。
余談ですが...出力を印刷する簡単な方法はありませんかprintf
?もう 1 つの可能性は、一種の文字列の最初の文字としてスペース文字を指定することです。s" "
編集:
私ができることがわかりました:s\" \040 test"
Gforthで(マニュアルには標準ではないと書かれていますが)。そして、s\" \x20 test"
これはおそらく標準ですが、それが標準であるかどうかを示す文の部分がどこに関係しているかはよくわかりません。それでも、写真の数値出力と組み合わせる方法を教えていただければ幸いです。
EDIT2
これは私がそれが使用されると私が期待する方法です:
conventions - Forth ソース コード ファイルの最も一般的なファイル名拡張子は何ですか?
Forth ソース コード ファイルを拡張子.4th
、.fth
、.frt
および.f
. Forth ソース コード ファイルの最も一般的なファイル名拡張子はどれですか?
forth - Forth で関数の定義を出力する
単語が Forth で既に定義されている場合、その定義を出力する方法はありますか?
emit
、などの Forth の組み込み関数の多くはdrop
、言語自体の観点から定義されていると聞いたので、それらの定義を確認できるようにしたいと思います。
forth - Forth でスタックから n 番目の要素を取得する
その上のすべての要素をポップせずに、Forth のインデックスでスタックの要素にアクセスする方法はありますか?
たとえば、1 から 1000 までの数字をスタックにプッシュした場合、どうすれば 500 番目の要素を取得できますか?
assembly - 6502 軽量圧縮アルゴリズム
私が書いている Forth のコモドール PET (楽しみのために) のデュアル カセット テープ デッキに仮想メモリを実装しています。興味があれば、私がこれまでに持っているものはhttp://github.com/chitselb/pettilにあります。
PET のネイティブ 192 バイト カセット データファイル形式を使用する予定です。そうそう、すべてに 32K の RAM しかありません。私はウォズの優れたメモリ効率の良いSweet-16インタプリタを言語に組み込みました。
Forth ブロックは (通常) 1024 バイトです。ブロック ID に 2 バイトを追加すると、利用可能な仮想アドレス空間が 64 メガバイトに制限され、テープに収まる容量よりもはるかに大きくなります。「再生」デッキ (デバイス 1) と「記録」デッキ (デバイス 2) があり、FLUSH では仮想メモリ全体を 1 つのドライブから別のドライブにコピーする必要があります。なぜ風車を傾けるのですか?当時、ほとんどの PET 所有者が持っていたのはカセット テープでした。
ほとんどのデータは Forth コードの画面であり、この実装では 1000 バイトのテキストと 24 バイトの行折り返しテーブルになります。これは、PET ROM 画面エディターも利用しているためです。私が探しているのは、Lempel-Ziv のような複雑なものの CPU とメモリのオーバーヘッドなしで、この目的のために (おそらく) 単純なランレングス エンコーディングを打ち負かすものの提案です。「忘れてください」以外のすべての提案を歓迎します。