En/Je/On 2016-10-14 13:19, javier gil javgi...@gmail.com [forth-es] escribió / skribis / wrote :
> Lo que no entiendo es por qué no utilizas las capacidades de Forth > para adaptar esas librerías a tus necesidades. Por ejemplo, en > cualquier sistema Forth actual podrías escribir una lista de palabras > que sirviera de interfaz a las librerías externas (y a tus propias > palabras), de modo que cuando interpretes tu aplicación científica con > esa lista de palabras en la cima del orden de búsqueda, podrás usar tu > propia versión del lenguaje, sin ninguna limitación: pila única, > operadores inteligentes, lo que quieras. ¿Has considerado esta opción? > ¿Por qué crees que necesitas escribir una implementación propia con > una variante especializada de Forth en lugar de crear una capa a tu > medida sobre un sistema Forth moderno, como Gforth u otro? > > > Aunque no entiendo exactamente qué quieres decir, la respuesta más > > rápida que se me ocurre es ésta: un Forth a mi medida son algo así > > como 40K, y eso es mucho menos que luchar con librerías externas. > > Además, si uso Forth uso Forth, no me gusta mezclarlo con otras > > cosas. Para uso general ya tengo C y para cálculo científico ya > > tengo Matlab. Y si esas librerías se escriben en Forth, ¿qué ventaja > > hay? Lo que quería decir es que tal vez podrías conseguir lo que necesitas usando Gforth u otro sistema moderno y alguna biblioteca existente (me refiero a bibliotecas escritas en Forth, nada de C u otros, como Forth Scientific Library o Forth Foundation Library), adaptando el conjunto a tus necesidades mediante una capa superior de código escrito por ti. Sobre esa capa final escribirías las aplicaciones científicas y matemáticas. Un ejemplo trivial: bastaría redefinir los nombres de los operadores para que, para tu aplicación, todos los números fueran reales: : + ( r1 r2 -- r3 ) f+ ; Otra cosa diferente es que quieras escribir un sistema Forth completo por otros motivos, no solo para escribir esas aplicaciones con él. -- Marcos Cruz http://programandala.net