問題タブ [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.

0 投票する
1 に答える
1214 参照

verilog - アルテラ FPGA の J1 For CPU のデュアル ポート RAM を 2 つのシングル ポート RAM に置き換えます。

ザイリンクス FPGA で動作する素晴らしい J1 Forth CPU ( Verilog ソース コード) が提供されています。それを Altera Cyclone II FPGA に移植しようとしていました。

アルテラのデュアルポート RAM メガファンクションを正しく動作させるのに苦労しています。Verilog コードから判断すると、デュアル ポート RAM の代わりに 2 つのシングル ポート RAM を使用できますか?

本当の問題は、J1 Forth が実行中に自身のコードを変更するかどうかです。そうでない場合は、デュアルポート RAM をコード RAM ({_pc} でアドレス指定) とデータ RAM (_st0[15:1] でアドレス指定) に分けてみませんか?

0 投票する
2 に答える
2745 参照

c - C の関数ポインタ テーブル

C で Forth インタープリターを実行しています。Forth 辞書をより適切に実装する方法を決定できません。

opcode一連のコード - 単語の機能です。したがって、各opcode[i]は何らかの関数に対応します。要素[opcode<->function pointer]を持つテーブルである必要があると思います。しかし、それを実装する方法は?

関数の大きさがわからない。オペコードだけで関数を実行する必要があるため、 void*を使用することはできません(または使用できますか?)。

私は何をすべきか?

0 投票する
3 に答える
515 参照

forth - Forth / Gforth API はどこにありますか?

私は数日前からForthを学び始めました。最初のプログラムをコーディングした後、Java API のようなものや、既に実装されているすべてのメソッドの包括的なマニュアルがあるのではないかと考えていました。

Forth / Gforth API を勧めてもらえますか?

0 投票する
2 に答える
639 参照

definition - Forth 定義内で単語を作成する方法

私はGforthを使用しており、定義に単語を作成したいと考えています。Gforth の cmd 行で、次のように入力できます。

より具体的には、スタック上のサイズを想定し、その配列へのアドレスを持つワードを作成する配列関数を定義しました。

したがって、入力10 array fooすると、後で使用できますfoo

しかし、10 array foo別の定義内に記述すると、コンパイル エラーが発生します。コンパイルする foo を置き換えてみましs" foo"たが、実行時に次のように爆発します。

長さゼロの文字列を名前として使用しようとしています

これを行う方法はありますか?

0 投票する
1 に答える
775 参照

audio - C言語用のSuperCollider(または同様のリアルタイム合成システム)インターフェースはありますか(できればDLL形式で)?

ゲーム エンジン内で SuperCollider のさまざまなプラグインを使用することに興味があります。しかし、私のプログラミング言語 ( SwiftForth ) の FFI は、単純な古い C 言語の DLL ファイルしかサポートしていません。

まず、ある種の OSC インターフェイスが必要であることはわかっています。次に、SuperCollider を何らかの方法で実行する必要があります。これがゲームでどのように行われるかについての詳細はまだわかりません。

また、SuperCollider へのコマンドライン インターフェイスについても読んだことがあります。それは私がやりたいことにとって実用的ですか?

私は提案や代替案を受け入れますが、交渉の余地がないのは SwiftForth だけです。私は既にエンジン関連のコードを大量に作成しており、その独自性と柔軟性のためにリアルタイム合成を追加したいと考えていました。

0 投票する
4 に答える
1823 参照

artificial-intelligence - Forth 言語は人工知能プログラミングにどの程度有効ですか?

私は長い間、忠実なForth'erであり、多くのアプリケーションのニーズに合わせて小さな言語を学習し、適応させてきました。私はかつて、人工知能システム (AI) を実装する言語として Forth を使用するというアイデアをいじりました。しばらく前に、MindForthが生まれた場所に誰かが挑戦しました。それは有望な結果を示しましたが、アイデアを改善するために何も行われていません。

当然、FORTH はあなたの言語を話す言語です。単語の長さや定義でできること (許可するハードウェアの制限) に制限はなく、言語構造を単語の辞書に編成するだけで、AI ロジックを実装するのに適した小さな言語になります。

AI の問題をコードで解決するための従来のアプローチは、言語がさまざまなセグメントに分割され、後で複雑なルールに変換されるルールベースのシステムを使用/作成することです。これは、言語全体が開発されるまで続きます。あなたが私に尋ねると、これは本当に退屈です。Forth は、単純に Forth であることによって、この種の縄跳びを行います。

私は、MindForth がすでに達成したことを拡張する個人的なプロジェクトに注目してきましたが、個人使用のための完全な AI を開発しようとしています。

どのように進めればよいですか?

0 投票する
0 に答える
670 参照

emacs - Forth モード emacs gforth.el 使用時のエラー

要するに、gforth.el を使用して .fs ファイルを開こうとすると、 Emacsから次のエラー メッセージが表示されるということです。

エラー: nil をコンパイルする方法がわかりません

私の.emacs ファイルには、次の行だけが含まれています。

gforth.el が含まれているディレクトリは、ロード パスにあります。

Emacs バージョン: 24.3.1

ファイルをバイト コンパイルしようとすると、エラー/警告が表示されます。

0 投票する
0 に答える
283 参照

rsa - Forth 言語での RSA / DSA 実装

カスタムForthカーネル用のPGP実装を開発する必要があります。このプロジェクトで使用する (任意の) Forth でのRSA / DSA実装をどこで入手できるかについて、誰かが私に指針を与えることができるかどうか疑問に思っていました。

私は、好きなように使用できる柔軟なライセンスを持つソース コードを好みます。これにより、独自の RSA/DSA アルゴリズムをコーディングする時間を大幅に節約できます。このアルゴリズムは、デバッグして安定したものに成熟するのに数日かかります。

さらに、x86 アーキテクチャ 32/64 ビット用の純粋なアセンブリでの RSA/DSA 実装、できればForth コードの代替としてのNASM用の Intel 構文での RSA/DSA 実装をどこで入手できますか。アセンブラ コードを使用してネイティブ ワードをカーネルに書き込むだけで (カーネルは 64 ビット アセンブリ言語であるため)、アルゴリズムの機能を実行できます。

0 投票する
2 に答える
743 参照

forth - Forth での累乗の実装

Gforthを使用して累乗を実装しようとしています。理論的には、スタックベースの言語がどのように動作するかを理解しています。ただし、Gforth での実装に問題があります。

これが私が今持っているものです:

ただし、実行すると、次のようなスタック アンダーフローが表示されます。

Gforth のループ構造は、ループ時にスタックを操作していますか?

私がオンラインで見たほとんどのループの例はかなり複雑で、Forth を初めて使用する人を混乱させるため、Forth がどのように機能するかについてはわかりません。

実装の何が問題になっていますか?