2010-09-08 10 views
9

Estoy estudiando Forth para un proyecto personal que tengo en mente. Parece ser un lenguaje realmente genial y simple de implementar en una pequeña máquina virtual.¿Cómo implementa Forth el diccionario? (controversia)

Estoy especialmente impresionado por las posibilidades del uso de vocabularios en él. Por otro lado, creo que la forma en que funciona el diccionario es demasiado compleja para un lenguaje que es en general tan simple. Digo esto porque he leído algunos artículos al respecto, y sé que existe mucha controversia.

Existen algunos microprocesadores que implementan algunas de las características de Forth en sus instrucciones, y estoy interesado en saber cómo implementan el diccionario y características como el vocabulario, para poder implementar una máquina virtual que se parezca a esos microprocesadores.

Es decir, el diccionario no es un simple montón que crece, y no es un vector lineal simple que podemos simplemente indexar, por lo que no es fácil hacer el microcódigo de un microprocesador (supongo) . Realmente me impresionaría si esos procesadores especiales son capaces de implementar el diccionario como debería ser, sin ningún código adicional, por supuesto. Creo que esto es imposible.

Así que para mi proyecto, estoy considerando codificar el intérprete con un montón, con códigos de operación para manipularlo, como por ejemplo en el 6852. Y el código para el diccionario, se compilará junto con el intérprete y el editor en Forth. Creo que esto debería parecerse más a la realidad.

¿De qué se trata toda esta controversia? ¿Cómo funcionan estos procesadores especiales, en relación con el diccionario y el uso de vocabularios?

+0

@otkins ¿Cómo piensa implementar la máquina virtual? En ensamblador? ANSI C? La elección del idioma de implementación y las arquitecturas de destino tendrán el mayor impacto en cómo se puede implementar el diccionario. –

+0

Dígale una vez más con más precisión, qué microprocesador usa y qué implementación de Forth usa al inicio? –

Respuesta

3

The Wikipedia article on Forth contiene una breve descripción de la implementación original del Diccionario. También vea "Development and Dissemination" en The Evolution of Forth. La implementación original usó una lista vinculada. Pero una tabla hash (mapa) parece ser una mejor aproximación.

Cuestiones relacionadas