2010-09-08 8 views
9

Ich studiere für ein persönliches Projekt, das ich in meinen Gedanken habe. Es scheint eine wirklich coole und einfache Sprache zu sein, die in einer kleinen virtuellen Maschine implementiert werden kann.Wie implementiert Forth das Wörterbuch? (Kontroverse)

Ich bin besonders beeindruckt von den Möglichkeiten der Verwendung von Vokabularen darauf. Auf der anderen Seite denke ich, dass die Funktionsweise des Wörterbuchs zu komplex für eine Sprache ist, die insgesamt so einfach ist. Ich sage das, weil ich einige Papiere darüber gelesen habe, und ich weiß, dass es viele Kontroversen gibt.

Es gibt einige Mikroprozessoren, die einige Funktionen von Forth in ihren Anweisungen implementieren, und ich bin interessiert zu wissen, wie sie das Wörterbuch und Funktionen wie das Vokabular auf ihnen implementieren, damit ich eine virtuelle Maschine implementieren kann, die wie diese Mikroprozessoren aussehen.

Das Wörterbuch ist kein einfacher Heap, der größer wird, und ist kein einfacher linearer Vektor, den wir einfach indexieren können, also ist es nicht einfach, den Mikrocode eines Mikroprozessors zu benutzen (ich schätze) . Ich wäre sehr beeindruckt, wenn diese speziellen Prozessoren in der Lage wären, das Wörterbuch so zu implementieren, wie es sein sollte, natürlich ohne zusätzlichen Code. Ich denke, das ist unmöglich.

Also für mein Projekt erwäge ich, den Interpreter mit einem Heap, mit Opcodes zu manipulieren, wie es zum Beispiel in der 6852 ist. Und der Code für das Wörterbuch, soll zusammen mit dem Interpreter und kompiliert werden der Herausgeber in Forth. Ich denke, das sollte eher wie die Realität aussehen.

Worum geht es bei dieser Kontroverse? Wie funktionieren diese speziellen Prozessoren in Bezug auf das Wörterbuch und die Verwendung von Vokabularen?

+0

@otkins Wie planen Sie die virtuelle Maschine zu implementieren? In Assembler? ANSI C? Die Wahl der Implementierungssprache und der Zielarchitekturen wird den größten Einfluss darauf haben, wie das Wörterbuch implementiert werden kann. –

+0

Erzähle noch einmal genauer, welche Mikroprozessoren verwendest du und welche Implementierung von Forth verwendest du am Anfang? –

Antwort

3

The Wikipedia article on Forth enthält eine kurze Beschreibung der ursprünglichen Implementierung des Dictionary. Siehe auch "Development and Dissemination" in The Evolution of Forth. Die ursprüngliche Implementierung verwendete eine verknüpfte Liste. Aber eine Hashtabelle (Karte) scheint eine bessere Annäherung zu sein.

Verwandte Themen