"Si no te entiendo mal, es lo que se llama código enhebrado por signos (token threaded code): Lo que guardarías en la definición de una palabraen el diccionario sería una lista de signos (octetos, en tu caso), que servirían de índices para encontrar la función correspondiente (en el lenguaje en el que escribirás el intérprete) mediante una matriz."
¡Exacto! "No entiendo a qué te refieres. `>r` y `+` no reciben un tratamiento diferente por parte del sistema. Son dos palabras como cualquier otra. Si redefines `>r` como dices, al ejecutar la versión redefinida obtendrás un error porque lo que hay en la pila de retorno cuando se ejecuta el `>r` contenido en la versión redefinida es la dirección de retorno de esta versión redefinida, no la anterior en el enhebrado, que es la que supuestamente quieres mover con `>r`." Tal y como yo lo entiendo, al escribir : >r >r ; se crea una entrada nueva en el diccionario, con la _cadena_ ">r" y el bytecode de la operación >r, o bien la dirección del código que ejecuta >r. Por tanto, cuando después yo uso ">r", el intérprete buscará en el diccionario el _nombre_ ">r", y al encontrarlo accederá a la dirección del código. No debería por tanto haber ningún error. [Se han eliminado los trozos de este mensaje que no contenían texto]
