martes, 27 de octubre de 2015

Programación lúdica: cuadrados mágicos

PROGRAMACIÓN LUDICA
Existen todo género de herramientas de programación en este mundo del cómputo personal. En Windows es donde quizás hemos visto las mejores aplicaciones en este sentido. Las herramientas visuales son francamente excepcionales y hay que ser objetivos: Linux aún no cuenta con herramientas de un poder parecido. Sin embargo, no todo parecía estar perdido cuando Borland (ya desaparecida como empresa), creadora de Delphi, C++Builder y Jbuilder, decidió hacer una versión llamada Kylix (Delphi para Linux), el cual pretendía incorporar esta estupenda herramienta en el mundo Linux. Desafortunadamente la versión 3 de Kylix es menos poderosa que incluso Delphi 3 para Windows y después de esto no se trabajó más en Kylix. De hecho, fue abandonado a su suerte.
Las mejores herramientas de programación tienen sentido sólo si existen programadores que puedan sacar jugo de las mismas. Para eso se necesita entrenar y capacitar a las siguientes generaciones que finalmente, son quienes seguirán escribiendo los programas que en el futuro se necesiten. Y es claro algo: hay que capacitar en la ciencia de la computación y no meramente en la herramienta de programación de moda. Lo importante es que los principios fundamentales de la programación (comunes a todos los lenguajes), se conozcan y se difundan. Así, cuando el programador necesite aplicarse en algún lenguaje particular, aunque le parezca desconocido, a la larga notará estos elementos comunes y en un par de semanas podrá escribir todo género de aplicaciones.
Curiosamente, ciertos lenguajes de programación han pasado desapercibidos hoy día. Tenemos a Prolog, que en su momento fue la gran promesa del proyecto quinta generación de los japoneses (actualmente cancelado), el cual suponía que el software moderno tendría los elementos más importantes de la llamada inteligencia artificial. Los japoneses intentaron crear toda una generación de computadoras basadas en Prolog para que las aplicaciones que corrieran tuviesen mucho más “inteligencia” que las que actualmente conocemos.
El problema de Prolog, inventado en 1972 por Colmeraur, es que –a pesar de sus grandes ventajas para cierto tipo de aplicaciones– es muy ineficiente para una buena cantidad de tareas que hacemos normalmente en la computadora. Y no es que no pueda escribirse un buen editor de textos o una estupenda hoja de cálculo en Prolog, sino que no es el lenguaje más indicado para ello.
Prolog se basa en inferencias lógicas. A manera de ejemplo, si me presentan a alguien que se llama Jorge Flores y yo encuentro un parecido con un amigo mío llamado Luis Flores, quizás mi cerebro haga automáticamente una inferencia y me nazca preguntarle a Jorge: “¿no tienes un hermano llamado Luis?”. Ese tipo de inferencias las puede hacer Prolog. La herramienta, a diferencia de los lenguajes imperativos (Pascal, C++), prefiere describir el problema a programar el algoritmo (la receta de cocina, pues), que resuelva la dificultad. Prolog resuelve todo a través de un motor de inferencias, también reconocido como algoritmo de Robinson (en honor al autor, que publicó por primera vez el mecanismo en 1968). De esta manera y abreviando el asunto (quizás demasiado), en Prolog describimos el problema y el lenguaje nos da las soluciones a través de dos mecanismos: la recursión y el backtrack.
La recursión es simplemente llamarse a sí mismo. En términos de programación significa que una rutina se llame a sí misma hasta que cierta condición impida que se cicle eternamente. El backtrack es, para decirlo en palabras simples, el regresar sobre nuestros pasos si resulta que la solución hallada no cumple con nuestras expectativas. 

No hay comentarios:

Publicar un comentario

Gracias por su comentario