11

私は自分の頭の中にある個人的なプロジェクトのためにフォースを勉強しています。小さな仮想マシンに実装するのは本当にクールでシンプルな言語のようです。

特に語彙の使用の可能性に感銘を受けました。一方で、全体的にとてもシンプルな言語では、辞書のしくみが複雑すぎると思います。私はそれについていくつかの論文を読んだので、これを言います、そして私は多くの論争が存在することを知っています。

Forthのいくつかの機能を命令に実装しているマイクロプロセッサがいくつかありますが、それらが辞書や語彙などの機能をどのように実装しているかを知りたいので、それらのマイクロプロセッサのような仮想マシンを実装できます。

つまり、辞書は成長する単純なヒープではなく、単純にインデックスを付けることができる単純な線形ベクトルでもないため、マイクロプロセッサのマイクロコードが実行するのは簡単ではありません(私は推測します)。もちろん、これらの特別なプロセッサが、追加のコードなしで、本来あるべきように辞書を実装できるとしたら、私は本当に感銘を受けます。これは不可能だと思います。

したがって、私のプロジェクトでは、たとえば6852のように、ヒープを使用してインタープリターを操作し、オペコードを使用してコード化することを検討しています。辞書のコードは、Forthのインタープリターとエディターとともにコンパイルされます。 。これはもっと現実に見えるはずだと思います。

このすべての論争は何についてですか?辞書と語彙の使用に関して、これらの特別なプロセッサはどのように機能しますか?

4

2 に答える 2

5

Forthに関するウィキペディアの記事には、辞書の元の実装に関する簡単な説明が含まれています。The EvolutionofForthの「開発と普及」も参照してください。元の実装では、リンクリストが使用されていました。しかし、hashtable(map)の方が適切な近似のようです。

于 2010-09-08T04:13:40.910 に答える
0

自分のマシンで実行されている小さいものを選び、そこから移動します。ciforth(ただし、m4ウィザードである必要があります...)、eForth(多数のバリアント)、ff、lbForthを探します。

アイアンまで行きたい場合は、jonesforth(x86_32の場合)またはjonesforth64(x86_64の場合はビットi386コメント)を確認してください。それは、混乱の多くがどのように/なぜ一緒にぶら下がっているのかを説明します。

于 2018-04-24T19:07:55.863 に答える