2010-09-08 6 views
9

J'étudie le Forth pour un projet personnel que j'ai en tête. Il semble être un langage vraiment cool et simple à implémenter dans une petite machine virtuelle.Comment Forth implémente-t-il le dictionnaire? (controverse)

Je suis particulièrement impressionné par les possibilités d'utilisation des vocabulaires. D'un autre côté, je pense que le fonctionnement du dictionnaire est trop complexe pour un langage globalement si simple. Je dis cela parce que j'ai lu des articles à ce sujet et je sais qu'il existe beaucoup de controverses. Il y a quelques microprocesseurs qui implémentent certaines fonctionnalités de Forth dans leurs instructions, et je suis intéressé de savoir comment ils implémentent le dictionnaire et les fonctionnalités comme le vocabulaire sur eux, donc je peux implémenter une machine virtuelle qui ressemble à ces microprocesseurs. Autrement dit, le dictionnaire n'est pas un simple tas qui grandit, et ce n'est pas un simple vecteur linéaire que l'on peut simplement indexer, donc ce n'est pas une chose facile pour le microcode d'un microprocesseur (je suppose) . Je serais vraiment impressionné si ces processeurs spéciaux sont capables d'implémenter le dictionnaire comme il se doit, sans aucun code supplémentaire, bien sûr. Je pense que c'est impossible. Donc pour mon projet, j'envisage de coder l'interpréteur avec un tas, avec des opcodes pour le manipuler, comme c'est par exemple le cas dans le 6852. Et le code pour le dictionnaire, doit être compilé avec l'interpréteur et l'éditeur à Forth. Je pense que cela devrait ressembler plus à la réalité.

De quoi parle toute cette controverse? Comment fonctionnent ces processeurs spéciaux, en relation avec le dictionnaire et l'utilisation des vocabulaires?

+0

@otkins Comment envisagez-vous d'implémenter la machine virtuelle? En assembleur? ANSI C? Le choix du langage d'implémentation et des architectures cibles aura le plus grand impact sur la manière dont le dictionnaire pourrait être implémenté. –

+0

Dites une fois encore plus précis, quel microproceseur utilisez-vous, et quelle implémentation de Forth vous utilisez au démarrage? –

Répondre

3

The Wikipedia article on Forth contient une brève description de l'implémentation originale du dictionnaire. Voir aussi "Development and Dissemination" dans The Evolution of Forth. L'implémentation d'origine utilisait une liste chaînée. Mais une hashtable (carte) semble être une meilleure approximation.

Questions connexes