En/Je/On 2015-10-30 18:51, pablohreda [forth-es] escribió / skribis / wrote :
Yo conocí Forth con unos 15 años, cuando ya estaba muy familiarizado con BASIC y, algo menos, con ensamblador de Z80. Quizá lo primero que me sorprendió y me atrajo fue lo diferente que era de los otros lenguajes y los fundamentos tan efectivos y sencillos en que se basaba. No tenía nada que ver con el resto y eso me llamó la atención y despertó mi curiosidad. Después, tras familiarizarme con el lenguaje y empezar a hacer los primeros programas, me sorprendieron su velocidad, su ilimitada flexibilidad, su inagotable potencia, su eficiente uso de la memoria y, en general, de los recursos de la computadora. Fue un descubrimiento casi mágico. No había límites a la creatividad. Después, poco a poco, cuando fui aprendiendo cómo funciona internamente Forth, mi admiración fue en aumento. > Cuando encontre forth, lo primero que me atrajo fue QUE NO > LO ENTENDIA, sabia muchos lenguajes de programacion pero > el codigo FORTH no lo entendia, me costo bastante > encontrarle le vuelta, sobre todo hacer un primer > programa. Eso suele ocurrir. Forth no funciona como los demás lenguajes: no hay un compilador o intérprete complejísimo que traduzca el código fuente a otra cosa. Nada de eso. Lo que hay es una sencillísima máquina virtual, transparente y totalmente comprensible y accesible para el programador, que ejecuta comandos secuencialmente, comandos que se pueden crear sobre la marcha. En otros lenguajes uno escribe un programa con las herramientas invariables que el lenguaje le da; no hay opción. En Forth, por el contrario, lo que se hace es crear un lenguaje específico para el objetivo que haya que lograr. > El uso de pila es el primer rechazo, porque tengo que > ordenar la ejecucion si puede hacerlo el compilador? sin > embargo en lisp nadie se queja de CDR o CAR, y en el fondo > es lo mismo. Con el tiempo me di cuenta que esta forma de > programar tiene sus ventajas...si, nadie lo dice, pero > pensar en el orden de ejecucion y ordenar para realizar el > menor numero de operaciones sin repetir cosas lleva a un > mejor entendimiento del problema. Si, es mas dificil armar > una rutina teniendo que pensar este orden que sin > pensarlo, pero.. cuando esta hecho,tiene un efecto de > simplificacion y entendimiento en el problema que paga con > creces el tiempo invertido. Al final, internamente, todos los lenguajes usan pilas. Manejar la pila directamente exige una actitud diferente al escribir el código, pero tiene muchas ventajas: el paso de parámetros es trasparente y el código es más compacto y rápido. Las ventajas son sobresalientes cuando el código está dividido en palabras pequeñas que hacen tareas claras fácilmente reconocibles, lo que al fin y al cabo es una de las esencias de Forth. -- Marcos Cruz http://programandala.net
