<?xml version="1.0" encoding="ISO-8859-1" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title><![CDATA[Bitácora de Trabajo]]></title><link><![CDATA[http://blogs.ya.com/interdata/rss20.xml]]></link><description><![CDATA[bitácora de trabajo informático : capacitación, asesorías, soporte y desarrollo]]></description><language><![CDATA[ES]]></language><generator><![CDATA[http://www.ya.com]]></generator><item><title><![CDATA[La informática como ciencia teórica]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_25.htm]]></link><description><![CDATA[Artículo de: Claudio Gutiérrez <br/> <br/>Propósitos:<br/>Este capítulo busca presentar al estudiante el ambiente intelectual en que surgió la ciencia informática e introducirlo a los conceptos más importantes de la teoría informática, así como familiarizarle con un concepto riguroso de algoritmo y con la máquina universal de Turing. <br/> <br/>Introducción<br/>Históricamente, la informática se constituyó en ciencia, durante la primera mitad de este siglo, como un ejercicio teórico por parte de matemáticos de genio, como Alan M. Turing. Fue sobre todo una exploración de la naturaleza de los problemas accesibles a la mente humana. Es especialmente notable que las computadoras se construyeran después que esta teoría fuera concebida, y que las reflexiones de los matemáticos sobre computabilidad tomaran como objeto de reflexión al computador humano, típicamente equipado de papel y lápiz para hacer sus cálculos. En los textos que comentaremos, de diversos autores, hallaremos, en primer lugar, material de reflexión sobre los temas más generales de la computabilidad; en segundo lugar, sobre el tema de especial interés para nosotros, la máquina universal de Turing, que prefigura abstractamente el objeto que vinculamos de manera especial con la informática, a saber, la computadora digital de propósito general. <br/>La concepción de la informática como ciencia eminentemente teórica, no es la única posible visión de nuestra ciencia. Como veremos en el capítulo cuarto, la informática puede también concebirse como una investigación de carácter empírico sobre los fenómenos de la computación. Pero aun para los autores que así la conciben, la teoría de la computabilidad tiene un papel muy importante que jugar, a saber, echar los cimientos, e incluso crear el vocabulario, para el análisis de estos fenómenos. Dejamos para luego el estudio de la informática como ciencia empírica, concentrándonos aquí en sus aspectos eminentemente teóricos y matemáticos. <br/> <br/>Explicación de textos<br/>Conceptos fundamentales<br/>Ejercicio de lectura<br/>Leer ahora la selección de varios autores "Conceptos fundamentales de teoría de la computación", en el capítulo segundo de la Antología. <br/> <br/>Comentario<br/>La teoría computacional puede considerarse como un sistema de advertencia temprana (como el que existe para la prevención de huracanes) que puede ahorrar a un solucionador de problemas muchos desengaños y pérdida de energía y tiempo (Wood). Dicha teoría clasifica los problemas informáticos en tres grupos: aquellos que es posible resolver en una porción de tiempo aceptable para la limitación de la vida humana; los que son demasiado duros para ser resueltos con alguna utilidad para el hombre; y finalmente aquellos que no pueden del todo ser resueltos en un tiempo finito. El valor de esta teoría es múltiple, porque por una parte puede evitar que nos comprometamos en una empresa que está condenada al fracaso y que invirtamos en ella gran cantidad de recursos que quedarían desperdiciados; pero también nos puede guiar para acometer lo que sí es posible, como por ejemplo, darnos lineamientos que nos preparen para hacer una inversión de recursos proporcional a las necesidades efectivas de la computación que hayamos de emprender. Un caso muy común e importante es el de la previsión de tiempo (tiempo de computación) para solucionar un problema; por ejemplo, el tiempo puede ser linealmente proporcional al tamaño de los datos del problema (es decir, incrementarse exactamente en proporción al crecimiento de los datos); pero también puede ser proporcional al cuadrado de los datos, lo que posiblemente nos cree dificultades. <br/>La teoría computacional, como toda teoría, es una suerte de abstracción, es decir, de eliminación de detalles sin importancia para concentrarse la mente en lo esencial de las situaciones que interesan. En un estudio teórico, se eliminan por abstracción gran cantidad de detalles realistas sobre los sistemas que se quiere representar. Tanto es así que, a menudo, la representación es solo un esqueleto de la correspondiente secuencia de sucesos del mundo real. Podemos decir que tal representación es una estructura simplemente "simbólica" o "informática". Si la teoría se refiere a procesos mecánicos, debemos pasar por alto los detalles de composición geométrica o física de las partes, así como cuestiones de consumo de energía o de disipación de calor. Incluso idealizamos el tiempo y el espacio; el primero, considerándolo dividido en momentos separados y desconectados, y el segundo, olvidándonos por completo de algunas de sus dimensiones (por ejemplo, cuando dibujamos una máquina como un esquema de dos dimensiones). En esas condiciones, ¿cómo es posible que una abstracción tal sea la teoría de algo? Parece mentira, pero sí puede serlo. Incluso podemos decir que la eliminación de todos esos detalles hace más perceptibles, más conspicuas, las relaciones que más nos interesan; por ejemplo, ciertas consecuencias lógicas de algunos supuestos, o las relaciones de causa y efecto, o los grados de libertad en el movimiento de una pieza mecánica. La ausencia de detalles deja libre el terreno para concentrar nuestra atención en precisamente los detalles que son esencialmente importantes. Los detalles eliminados los podemos reintegrar al cuadro más adelante, cuando hayamos percibido con claridad los aspectos importantes en que estábamos interesados. <br/>Por supuesto, la naturaleza abstracta de una teoría crea un riesgo muy serio, a saber, el de equivocarse en la decisión de qué sea lo importante: si eliminamos del cuadro lo esencial y nos quedamos con detalles secundarios, estaremos mucho peor que antes de comenzar a teorizar. Dicho de otra manera, las teorías se califican por el éxito que tengan en facilitarnos la tarea de comprensión en vista a la cual las forjamos. Marvin Minsky nos señala una interesante comparación entre las teorías y las máquinas, que parecen tener algunas características inversas entre sí. En efecto, una teoría pretende describir un aspecto de la realidad. Si las predicciones que se basan en la teoría no se cumplen, tanto peor para la teoría y debemos revisarla. Algo de este tipo sucedió, como vimos en el capítulo primero, con la teoría física de Newton que, al fracasar en sus predicciones sobre el comportamiento de la luz, tuvo que ser sustituida por la teoría de Einstein. Pero con respecto a las máquinas, encontramos la situación inversa. La idea abstracta de una máquina, aunque sea tan esquemática como una teoría, es la especificación de un objeto que debemos construir y que debe funcionar. Si la máquina no trabaja de acuerdo con lo que esperábamos, censuramos a la máquina –está mal construida–, no a su teoría –concepción abstracta o especificación–. Vemos aquí un importante punto de contacto entre la ciencia pura y la tecnología: ambas usan de la abstracción; pero también un hondo contraste: en la ciencia pura, la realidad se impone sobre la abstracción, mientras que en la tecnología la abstracción se impone a la realidad. <br/>El concepto más importante de la teoría de la computabilidad es el concepto de algoritmo. De acuerdo con la generalidad de los autores que se han ocupado de estas cosas, un algoritmo es un proceso bien definido para hacer alguna cosa, en particular, una computación NOTA 1. Antes del advenimiento de las computadoras digitales, los algoritmos eran el dominio particular de los matemáticos, ya que para calcular una función cualquiera se necesitaba un algoritmo. De ahí que el concepto de algoritmo se considere vinculado a los conceptos de función, cuyo cómputo es el objeto principal de los algoritmos, y de eficazmente calculable, que es la caracterización fundamental de los mismos. Pero concentrémonos en el concepto de algoritmo. Según nuestras fuentes, un algoritmo digno de este nombre debe satisfacer las siguientes condiciones elementales: <br/>1.&#9;El algoritmo debe consistir en un conjunto finito de instrucciones.<br/>2.&#9;Debe existir un agente computacional que lleva a cabo las instrucciones NOTA 2.<br/>3.&#9;El agente computacional debe poder guardar, recabar y realizar los pasos de una computación NOTA 3.<br/>4.&#9;El agente computacional debe realizar las instrucciones por medio de pasos perfectamente distinguibles.<br/>5.&#9;El agente computacional debe cumplir las instrucciones en forma determinista.<br/>La última condición prohíbe al agente actuar en una forma probabilística, o de manera arbitraria, por ejemplo, tirando una moneda al aire para decidir si ejecuta la próxima instrucción. El escogimiento de la próxima instrucción por ejecutar debe ser determinado sola y unívocamente por los valores iniciales y las instrucciones ejecutadas hasta el momento. Una consecuencia importante de este determinismo es que el algoritmo dará siempre los mismos resultados si se comienza a ejecutar a partir de los mismos valores (Wood). <br/>Podemos fácilmente reconocer en estas cinco condiciones la forma en que opera una persona ordenada o un programa de computación. Sin embargo, todavía hay que agregar una condición fundamental: para que el algoritmo sea útil debe poder terminar en un número finito de pasos. Sin embargo, en informática práctica reconocemos varias excepciones a esta norma NOTA 4. Por otra parte, es esencial para algunos planteamientos de la teoría de la computación permitir "algoritmos" que no terminen con todos los juegos de sus argumentos. De ahí que la teoría de la computación los legitime, bajo el nombre de algoritmos parciales. <br/>Fue un gran mérito de Alan Turing el haber llegado a formular de manera expresa una intuición que con seguridad subyacía en muchas mentes matemáticas de su tiempo, pero que en él se perfiló con toda claridad. Si repasamos los cinco puntos de la definición de algoritmo, de una manera especial el quinto, podemos ver que se nos impone con mucha facilidad la idea de que un algoritmo podría ser realizado por una máquina NOTA 5. Es más, y esta es la brillante intuición de Turing, que podríamos definir algoritmo como un proceso que puede ser realizado por una máquina de un tipo especial. Dicho de otra manera, pensar algorítmicamente es equivalente a pensar mecánicamente, determinísticamente. Nótese aquí como el pensamiento de Turing viene a representar la culminación de la anticipación de Hobbes, de que razonar no es otra cosa que computar: ahora simplemente agregamos que computar es un proceso mecánico, con lo que el movimiento mecanicista llega a su apogeo en la evolución de las ideas científicas de Occidente. <br/>Uno de los méritos de esta intuición de Turing es que ilustra de una manera muy clara cuándo el concepto de algoritmo puede considerarse como un procedimiento eficaz, es decir, como un algoritmo auténtico. Como lo reconoce el mismo Gödel, la gran importancia del concepto de computabilidad de Turing es que "con este concepto se ha tenido éxito por primera vez en dar una definición absoluta de una noción epistemológica importante, a saber sin dependencia de un formalismo determinado". Como nos lo explica muy bien Minsky, si un procedimiento puede llevarse a efecto por una máquina, entonces podemos considerarlo eficaz; esto es un teorema demostrado por Turing y –en forma independiente pero equivalente– por varios otros ilustres matemáticos en los años treinta. Formulémoslo de manera precisa, usando "computadora" en vez de "máquina", ya que nos interesan fundamentalmente los algoritmos informáticos: <br/>Cualquier cosa que puede hacer una computadora puede ser descrita de manera precisa.<br/>Podemos considerar el enunciado anterior como "teorema de Turing". Pero además, es posible afirmar (aunque no probar) que si un procedimiento es considerado intuitivamente eficaz podrá realizarse mediante una máquina: <br/>Cualquier procedimiento que puede ser descrito con precisión puede ser programado para que lo realice una computadora.<br/>Este enunciado corresponde a la llamada tesis Turing-Church, una conjetura muy bien confirmada y aceptada hasta hoy por todos los matemáticos NOTA 6. <br/>En relación con estos dos enunciados, Minsky nos explica: <br/>La primera frase es lo mismo que decir que un programa de computación puede servir como una descripción precisa del proceso que la máquina realizará. La verdad de la segunda frase depende de qué queramos decir por descripción precisa.<br/>Y abundando en estos conceptos: <br/>Un procedimiento eficaz es un procedimiento en que el próximo paso está siempre claramente determinado. Si un procedimiento puede llevarse a efecto por una máquina simple, entonces podemos estar seguros de que la especificación es completa y de que el procedimiento es "eficaz". Pero también podemos afirmar (aunque no probar) que cualquier procedimiento que parezca –intuitivamente– eficaz puede realizarse mediante una máquina simple.<br/>La razón por la cual la tesis Turing-Church no se puede probar estriba en que, como bien lo dice también Minsky, es muy difícil si no imposible encontrar un equivalente formal satisfactorio para una noción intuitiva: <br/>Uno no puede siempre encontrar un equivalente formal simple y completamente satisfactorio para una noción intuitiva compleja.<br/>Davis abunda en el mismo sentido. La situación, nos dice, es análoga a la de sustituir un concepto vago, con potente atractivo intuitivo, por un concepto matemático exacto: <br/>En tal caso no tiene sentido, por supuesto, pedir una prueba matemática de la equivalencia de los dos conceptos; la misma vaguedad del concepto intuitivo lo impide. Sin embargo, es posible presentar argumentos con poderoso atractivo intuitivo, que tienden a hacer la identificación sumamente razonable.<br/>Dicho de otro modo, cuando comparamos un concepto formal con uno intuitivo, no podemos hacerlo formalmente, solo intuitivamente. Como dirían los lógicos medievales, este es un caso claro en que "la conclusión sigue la parte más débil"; solo se puede analizar formalmente la relación entre conceptos que sean todos formales: basta la existencia de un enunciado no formal para que el tratamiento de todo el conjunto tenga que ser no formal. Este problema es suficientemente generalizado como para haber recibido un nombre en la tradición filosófica: lo llamamos paradoja de la traducción. Esta paradoja se formula usualmente así: ante los inconvenientes que presenta un término impreciso o intuitivo, perteneciente al lenguaje ordinario de una comunidad o grupo de practicantes de una disciplina, surge como una eventual solución la posibilidad de traducirlo a un lenguaje más formal y preciso. Pero dado el carácter no formal de la noción original, no existe modo alguno de certificar de manera formal la correspondencia entre la noción original y la noción rigurosa. <br/>La única forma de superar esta paradoja es entender la nueva noción como una propuesta de modificación del lenguaje. Según esto, el proponente de la noción sustitutiva debe estar en capacidad de mostrar a la comunidad de hablantes respectiva que el nuevo término cumple todos los propósitos que cumplía el término viejo e interesan a la comunidad, y que carece de la ambigüedad y otras indeseables características de imprecisión que afectaban al término original. De esta manera, aunque nunca se llega a dar una sinonimia formal entre los dos términos, el término nuevo será en adelante preferido por los miembros de la comunidad para realizar todos los propósitos que realizaba con anterioridad el término original. La justificación del cambio, entonces, no es de naturaleza semántica (por equivalencia de significado) sino de naturaleza pragmática (por conveniencia de uso). <br/>Los textos de Davis, Gandy, Kleene y Cohen nos introducen a un tema de gran trascendencia en la historia de la teoría de la computabilidad. Hilbert había concebido la idea de reducir la esencia de las matemáticas al concepto de prueba o algoritmo. De acuerdo con este intento, propuso a los matemáticos de su tiempo (primer tercio del siglo veinte) buscar un algoritmo que pudiera solucionar todos los problemas matemáticos. Esa búsqueda resultó ser tan infructuosa como lo había sido antes la búsqueda de los físicos de una máquina de movimiento perpetuo. Pero no resultó fácil demostrar por qué un algoritmo tal no podía producirse. Veamos el asunto con más detenimiento. <br/>En 1928, el matemático alemán Hilbert había presentado como reto a sus colegas matemáticos demostrar tres proposiciones de gran generalidad sobre su ciencia. La primera era que las matemáticas eran completas, es decir, que cualquier enunciado matemático verdadero debería poder probarse axiomáticamente. La segunda era que las matemáticas eran consistentes, es decir, que no podría nunca derivarse de sus axiomas y con ayuda de sus reglas deductivas un enunciado que los matemáticos consideraran falso. Finalmente, Hilbert pedía que se demostrara que todo problema matemático podría decidirse por un sí o por un no, que las matemáticas eran decidibles. Ninguna de esas cuestiones sobre las matemáticas estaba clara en ese momento, pero Hilbert conjeturaba que las tres afirmaciones eran verdaderas. <br/>Ese mismo año, Hilbert había publicado, con su colega Ackermann, un librito de texto sobre lógica de primer orden NOTA 7. En ese librito se presentaba a las matemáticas (o a la lógica, que para el caso son equivalentes) como un juego, en el cual había movidas posibles de acuerdo con ciertas reglas, muy parecidas a las reglas del ajedrez. Hacer matemáticas quedaba equiparado con jugar ajedrez, y de la misma manera, razonar sobre el ajedrez, como cuando se dice que no es posible dar mate con solo dos caballos, era parecido a hablar sobre las matemáticas, como cuando se dice que todos los problemas matemáticos deben ser decidibles. Por esa concepción de las matemáticas como un juego puramente formal, los teóricos de las matemáticas del estilo de Hilbert fueron calificados de formalistas. <br/>Pero las matemáticas resultaron ser mucho más formales que el juego de ajedrez; en efecto, cuando uno razona sobre el juego de ajedrez (por ejemplo, al afirmar que dos caballos solos no pueden forzar un mate) no está jugando ajedrez. Pero el matemático checo Kurt Gödel inventó una técnica para representar conceptos como "ser una prueba" o "ser demostrable" de una manera aritmética, muy dentro del espíritu que había inspirado a Hobbes tres siglos antes a decir que razonar no es otra cosa que sacar cuentas. De donde resultaba que hacer metamatemáticas NOTA 8 era también hacer matemáticas. Aplicando esa técnica, Gödel logró probar en 1930 que las matemáticas no podían ser completas y consistentes al mismo tiempo, con lo que contestaba en la negativa los dos primeros retos de Hilbert. La manera en que lo hizo, consistió básicamente en usar su técnica para hablar aritméticamente sobre las matemáticas, para diseñar enunciados que se referían a sí mismos, parecidos a los de un cretense proverbial que decía: "los cretenses siempre mienten". En realidad, Gödel construyó una proposición que decía: "este enunciado no puede probarse", que no podía ser considerada verdadera ni falsa sin incurrir en contradicción. Así pues, Gödel había probado que las matemáticas era incompletas en el sentido técnico definido por Hilbert. <br/>El tercer reto de Hilbert el problema decisorio, a saber: encontrar un algoritmo que determine si una inferencia propuesta específica es válida o no quedaba todavía pendiente. Este problema equivalía a buscar un algoritmo para determinar si una conclusión particular puede derivarse de ciertas premisas con el uso de las reglas de prueba. Este problema era considerado el problema más importante de la metamatemática, porque un algoritmo para el problema decisorio podría, en principio, contestar cualquier pregunta matemática, mediante el expediente de formalizar en lógica de primer orden la rama de las matemáticas pertinente. Fue este tercer reto el que atraería al estudiante graduado de 24 años Alan Turing en 1936, y también sería contestado negativamente. Turing mostraría que no hay algoritmo alguno para resolver el problema decisorio, y en consecuencia, que la esperanza de resolver todos los problemas matemáticos de una sola vez era infundada. Las herramientas que Turing desarrollaría para este propósito, resultaría de extraordinaria fecundidad para el desarrollo de la informática. <br/>Para poder resolver el problema de Hilbert, Turing necesitaba una noción precisa del concepto de algoritmo. Examinado el asunto, resultó para él claro como el cristal un procedimiento eficaz –o algoritmo– fuera aquello que pudiera ser realizado por una máquina. Entonces se dedicó a dar la especificación de la máquina abstracta que pudiera hacer la tarea, que desde entonces habría de ser llamada máquina de Turing. Dado su especial carácter, su trabajo podría sin duda asimilarse a la ejecución de un algoritmo. <br/>Debemos advertir que la especificación de esta máquina no obedecía a propósito tecnológico alguno (por ejemplo, poner las bases para la producción de una computadora digital NOTA 9) sino más bien buscaba solamente la preparación de una herramienta, o lema –según el vocabulario de los matemáticos–, para su demostración de que el problema decisorio debería contestarse negativamente. Efectivamente, una solución positiva nos pondría en posesión de algoritmos para resolver todas las cuestiones matemáticas; se ofrecía así la sencilla vía para la contestación negativa al problema decisorio de mostrar un ejemplo de un problema matemático sin solución algorítmica (recuérdese la refutación de hipótesis por la mostración de un caso en contrario, según lo estudiamos en el capítulo primero). Pero para ello necesitábamos un concepto muy riguroso de algoritmo, y es donde su propuesta de sustitución de "procedimiento algorítmico" por "computable por una máquina de Turing" resulta de indispensable importancia. <br/>La invención de la máquina de Turing ocurre mediante una serie de pasos muy sencillos. Turing toma por objeto de reflexión a un ser humano que esté aplicando algún algoritmo. Turing procede por una serie simplificaciones sucesivas, cada una de las cuales, clara y distinta, como habría deseado Descartes. Una vez terminada la especificación de su máquina, como una combinación de un autómata de estado finito y una cinta de papel digitalizado indefinidamente extendible NOTA 10, Turing procederá a presentar una clase de tales máquinas, dotadas de una característica muy especial, a saber, la capacidad de imitar a cualquier otra máquina NOTA 11. Esa máquina, capaz de imitar a cualquier otra máquina, será el factor esencial para probar que Hilbert estaba equivocado al conjeturar que el problema decisorio debiera contestarse positivamente, como lo comentaremos más adelante en este capítulo. <br/>La obra de Turing coincidió con la de otros autores que descubrieron conceptos equivalentes. Así, nos recuerda Kleene: <br/>La computabilidad Turing fue una de tres maneras equivalentes de caracterizar exactamente las funciones para las cuales existen algoritmos que aparecieron en los años mil novecientos treinta. Los conceptos usados en las otras dos fueron la definibilidad lambda de Church-Kleene (desarrollada en la Universidad de Princeton en 1932 y 1933) y la recursividad general de Herbrand-Gödel (presentada por Gödel en sus conferencias de 1934 en el Instituto de Estudios Avanzados en Princeton). Su equivalencia la estableció Kleene en 1936.<br/>Y también Davis: <br/>Diferentes personas hicieron propuestas más o menos al mismo tiempo (1936), independientemente unas de otras, para identificar el concepto de función eficazmente calculable con varios conceptos precisos. En esta conexión vale la pena mencionar la noción de definibilidad lambda de Church, la noción de recursividad general de Herbrand-Gödel- Kleene, la noción de computabilidad de Turing..., la noción de definibilidad-1 de Post.... Se demostró que todas estas nociones son equivalentes.<br/>Penrose, quien duda de la validez de la tesis Church-Turing, sin embargo reconoce que esa extraordinaria coincidencia <br/>...agregó mucha fuerza al punto de vista, que llegó a conocerse como la tesis Church-Turing, de que la máquina Turing (o su equivalente) de hecho define lo que, matemáticamente, entendemos por un procedimiento algorítmico (o eficaz o recursivo o mecánico).<br/> <br/>La máquina Turing<br/>Ejercicio de lectura<br/>Leer ahora la selección. de varios autores "Las máquinas de Turing y el problema del detenimiento", en el capítulo segundo de la Antología <br/>Comentario<br/>La máquina de Turing (Kain, Hennie, Minsky) se origina como un recurso dialéctico usado por su creador en su intento de demostrar que el problema decisorio de Hilbert tiene una solución negativa (TURING 36). Básicamente, una máquina de Turing se caracteriza como un autómata de estado finito NOTA 12 en un entorno infinito. Su estructura fundamental consiste en un autómata de estado finito dotado de una memoria externa infinita NOTA 13. Podemos concebir a la memoria como una cinta dividida en cuadros, como si hubiéramos organizado en una sola línea las líneas sucesivas de un cuaderno cuadriculado. Esta es una de las simplificaciones que Turing hace: comienza con un "computador" (humano) que hace cálculos en una hoja de papel bidimensional; sin embargo se percata de que la bidimensionalidad no es esencial, y la suprime: los mismos cálculos pueden hacerse en un papel en forma de una cinta formada por la concatenación de los renglones de la hoja de papel original. Por un proceso parecido, continuará despersonalizando por etapas al "computador" hasta desembocar en la pura máquina de Turing. <br/>En cada momento del tiempo, el autómata estará colocado sobre uno de los cuadrados, del cual puede leer su contenido y sobre el cual puede escribir un nuevo contenido. Además, el autómata tiene la capacidad de moverse en cada jugada un cuadro a la izquierda o a la derecha. Como se ve, se trata de una máquina sumamente simple, y es extraordinario que a pesar de ello haya resultado un instrumento de análisis teórico tan productivo e importante. El autómata de estado finito está integrado a la cinta a través de una cabeza lectora, que siempre está sobre una cuadrado de la cinta. Esta cabeza tiene tres propiedades conductuales, todas las cuales son ejercidas durante cada ciclo de operación de la máquina de estado finito; estas conductas son: <br/>1.&#9;Leer el cuadrado que en ese momento está debajo de la cabeza lectora.<br/>2.&#9;Escribir en ese mismo cuadrado.<br/>3.&#9;Mover la máquina al cuadro adyacente, sea a la izquierda, sea a la derecha. Ese cuadrado adyacente pasa a ser el cuadrado examinado en el siguiente ciclo de operaciones.<br/>La característica más sobresaliente de los autómatas de estado finito es que mantienen una relación extraordinariamente simple entre su estructura y su comportamiento. Si tenemos la descripción del autómata, su estado interno inicial –de un número limitado de estados posibles, digamos A, B y C–, y una descripción de las señales que le lleguen de su entorno (en nuestro caso, el signo leído en el cuadro de la cinta accesible en cada momento, de un alfabeto también limitado –por ejemplo 0, 1 y blanco–) podemos calcular cuál será su estado en cada momento del futuro. <br/>Es importante subrayar que para esa máquina abstracta tan simple que es el autómata de estado finito, el tiempo se concibe digitalmente; esto quiere decir que los momentos se suceden uno a otro sin situaciones intermedias, como si un reloj de arena dejara caer grano por grano, o como ciertos relojes eléctricos saltan de la posición de un minuto a la posición del minuto siguiente, sin detenerse en ninguna posición intermedia NOTA 14. El hecho de que el tiempo sea visto de esa manera discreta va, por supuesto, en contra de lo que muchos lectores considerarán como una de nuestras intuiciones más íntimas y profundas: la continuidad de nuestra conciencia. Sin embargo, esta alteración de la realidad no debiera inquietarnos demasiado, porque al fin y al cabo es lo que las ciencias, sobre todo la física, han hecho desde tiempos inmemoriales: enfocar las cosas continuas con instrumentos discretos. El álgebra es básicamente digital y es la que nos ha dado los avances más grandes en la física. Y probablemente el análisis –la otra gran rama de las matemáticas–, que es un intento de lidiar con lo continuo, de algún modo implica también una digitalización de lo continuo. La realidad no es digital. Pero el gran descubrimiento intelectual de la cultura de occidente ha sido darse cuenta de que si uno fabrica una red digital le será posible "pescar" gran parte de la realidad (le será posible obtener un conocimiento considerable de la naturaleza). <br/>La manera más clara de expresar lo que es un autómata de estado finito consiste en presentar las funciones de transición que lo definen. Son dos en total. La primera, que llamaremos función F, determina el resultado –o signo enviado fuera del autómata– en el instante t+1, con base en el insumo y el estado interno en el instante t: <br/>R(t+1) = F(E(t),I(t)).<br/>En otros términos, el producto que va a ocurrir en el momento t+1 depende únicamente del insumo en el momento t y del estado interno de la máquina en este mismo momento. <br/>La segunda función de transición, que llamaremos función G, determina el estado interno en el instante t+1, con base en el insumo y el estado interno en el instante t: <br/>E(t+1) = G(E(t),I(t)).<br/>En otros términos, el estado nuevo en que va a estar esta máquina en el momento t+1 depende únicamente del estado en el momento t y el insumo en este mismo momento. <br/>Es importante anotar que las dos variables dependientes en estas funciones son el estado nuevo y el producto, las cuales dependen del estado anterior y del insumo en el momento anterior. <br/>Una vez que tenemos el autómata de estado finito, lo único que nos hace falta para describir la máquina Turing es colocar a aquél sobre la cinta infinita que la dotará de memoria. La máquina de Turing puede compararse a una locomotora, que sería el autómata de estado finito, montado sobre una línea de ferrocarril, que sería la cinta inagotable de almacenamiento. <br/>Es importante notar que esta cinta cuadriculada que sirve de memoria es un medio digital, es decir, en ningún momento la cabeza lectora (el autómata de estado finito) puede estar leyendo simultáneamente dos cuadrados de la cinta, ni puede estar colocado en una posición intermedia entre dos cuadrados. En otras palabras, el espacio se concibe digitalmente, como si la máquina tuviera que saltar en cada instante de una posición a otra posición. <br/>Para colocar el autómata en la cinta, desde el punto de vista de una descripción matemática, lo único que tenemos que hacer es agregar una tercera función, que llamaremos función H, a las dos funciones ya enunciadas (a saber, la función que determine el movimiento de la cinta debajo del autómata, o más exactamente, hacia adonde se habrá movido –derecha o izquierda– en el instante t+1, con base en el insumo y el estado interno en el instante t); dejamos la formulación explícita de la función de transición como un ejercicio de aprendizaje para el estudiante. La posición nueva en que va a quedar la cinta con respecto al autómata en el momento t+1 depende únicamente del estado en el momento t y el insumo en este mismo momento. <br/>Recuérdese que una función es una manera sucinta de expresar una computación, una colección de resultados posibles asociados a juegos de valores de los datos iniciales del problema. Esto quiere decir que, en muchos casos, la función puede sustituirse por una tabla, en que se instruye al agente a producir tal o cual resultado para cada juego de insumos que se le proporcionen. De ahí que las tres funciones antes enunciadas signifiquen que las máquinas de Turing pueden ser descritas sucintamente por conjuntos finitos de quíntuplos de la siguiente forma: <br/>(E0,I0,E1,R1,M1),<br/>donde los números subscritos indican el instante del tiempo a que se refieren cada uno de los símbolos, donde el instante0 es, naturalmente, el instante anterior al instante1. En estas quíntuplos, se entiende que el tercero, cuarto y quinto símbolos quedan determinados por el primero y el segundo; <br/>o sea: <br/>(estado viejo, símbolo leído, estado nuevo, símbolo escrito, dirección de movimiento).<br/>Nótese que nos estamos moviendo en un ambiente totalmente digitalizado: el tiempo es digital, porque así lo exige la definición del autómata de estado finito; y el espacio es digital, porque así lo exige el movimiento prescrito sobre la cinta infinita. Vemos aquí ya el fundamento teórico de la computadora digital para la cual la máquina Turing servirá de modelo e inspiración NOTA 15. <br/>De acuerdo con lo anterior, entonces, una máquina Turing es un mecanismo computacional hipotético formado por una unidad de control de estado finito acoplada a una cinta infinita. Cada paso en su computación consiste en adquirir un nuevo estado interno, escribir un símbolo en la cinta (naturalmente, borrando el que estaba antes ahí, aunque nada impide que el símbolo nuevo sea idéntico al anterior), y correrse hacia la izquierda o derecha (o, si preferimos visualizarlo así, correr la cinta hacia la izquierda o hacia la derecha, manteniendo el autómata inmóvil). La acción particular que se realiza en cada paso está determinada por el estado actual de la máquina y el símbolo leído en ese momento. Quedará claro, ahora que sabemos cómo opera la máquina, por qué Turing propuso que su operación se considerara como el modelo perfecto de los algoritmos eficaces, a saber, a causa de su naturaleza totalmente simple y mecánica. <br/>La operación de una máquina Turing se caracteriza por la siguiente secuencia de eventos: <br/>1.&#9;Cuando la máquina comienza a funcionar, la cinta tiene que estar en blanco, excepto por un número finito de cuadros que están estampados con ciertos símbolos. La parte estampada inicialmente con símbolos se considera que contiene los datos de la computación que deberá hacer la máquina. Un determinado cuadrado de la cinta es designado para estar inicialmente bajo la cabeza lectora, y el autómata de estado finito (que podemos considerar como la unidad de control de la máquina Turing) es forzada a comenzar en un cierto estado inicial predesignado.<br/>2.&#9;La máquina ejecuta entonces una computación, que consiste en una serie de movidas prescritas por sus reglas (las que definen las jugadas posibles del autómata, según sus tres funciones F, G y H, o sea las listas de quíntuplos del formato indicado antes). Esta computación puede continuar indefinidamente, o puede terminar después de un número finito de movidas.<br/>3.&#9;Si de hecho termina, el patrón de símbolos que queda en la cinta se toma como el resultado de la computación (Hennie). Lo que existe en la cinta cuando la máquina se detiene depende en una manera bastante complicada de lo que había escrito en la cinta al comenzar la máquina a funcionar; hay una dependencia rigurosa del evento segundo en el tiempo con respecto al primero.<br/>De este modo, podemos decir que el resultado que queda en la cinta es una función matemática de lo que había en la cinta. Exactamente cuál sea esa función, depende de la máquina de estado finito que hayamos escogido. Por eso, podemos hablar de que la máquina Turing define o computa –o incluso es– una función (función en el sentido riguroso de dependencia de un valor resultante con respecto a un valor original), exactamente igual a como la función + depende de un operando A y un operando B en la expresión "A + B". La dependencia entre lo que estaba escrito y lo que queda escrito es una función que corresponde a cada máquina particular. Por ejemplo, si la máquina fuera para calcular "A + B", el + que define la función está en el autómata, el "A" y el "B" van dados en la cinta y el resultado quedará en la cinta. <br/>Si la máquina de Turing anticipa a la computadora digital, Turing tuvo que anticipar también el arte de la programación. En efecto, las movidas atómicas disponibles en una máquina Turing son tan elementales como las instrucciones del lenguaje de máquina de una computadora digital. Pero secuencias de esas movidas atómicas pueden ser empleadas para realizar una amplia variedad de operaciones que manipulan patrones; entre ellas, formar copias de bloques o patrones especificados, sustituir un bloque o patrón por otro, comparar dos patrones entre sí para determinar si son iguales o distintos. Usando estas operaciones básicas como subrutinas, es posible diseñar máquinas Turing que realizan computaciones muy elaboradas. Algunas de ellas, como veremos enseguida, tendrán la propiedad de imitar a cualquier otra máquina Turing: son las que pueden caracterizarse como máquinas universales, el verdadero antecedente de la computadora digital de propósito general. <br/>Uno de los propósitos para los que sirve el concepto de máquina Turing es dar fundamento a la tesis de Turing-Church, pues se considera que los cálculos que pueden ejecutar las máquinas Turing incluyen todos los cálculos eficaz o mecánicamente computables. Este aserto no puede ser probado, pues "todos los cálculos eficaz o mecánicamente computables" se refiere a procedimientos habidos y por haber, incluyendo los futuros que todavía no se hayan inventado NOTA 16. <br/>La máquina de Turing le da a este investigador el instrumento que necesita para llevar a cabo su prueba de que el intento de Hilbert (encontrar un algoritmo capaz de resolver todos los problemas matemáticos) es imposible. En efecto, una máquina Turing comienza su operación con una cinta inicial y realiza una transformación en esa cinta. Si la máquina se detiene en algún momento, el resultado de la transformación es el contenido de la cinta en el momento del detenimiento. Si la máquina nunca se detiene, el resultado no está definido. Turing, en su razonamiento sobre el problema de Hilbert, propone tomar su máquina como un sinónimo de lo eficazmente computable ya que lo que ella haga se realiza por un proceso mecánico, en el que no interviene un ser humano excepto para escribir los datos y leer la respuesta. <br/>Pero primero tiene que describir una clase de máquina Turing con determinadas características: es la que llama máquina universal o máquina U. Su esencia consiste en que puede imitar o simular a cualquier otra máquina Turing, universal o no. La posibilidad de que una máquina Turing imite el comportamiento de otra máquina descansa en el hecho de que, como vimos anteriormente, una máquina Turing puede ser descrita por un conjunto de quíntuplos, expresiones simbólicas que pueden aparecer en la cinta de otra máquina Turing como datos para ser leídos. Para realizar sus computaciones, una máquina U debe ser provista en su cinta de esa descripción de la máquina que debe simular y de la descripción de la configuración inicial de la cinta de tal máquina NOTA 17. Como toda máquina puede ser representada por un conjunto ordenado de quíntuplos, y puesto que cada quíntuplo puede ser representado por símbolos en el alfabeto que la máquina U entiende, las máquinas pueden ser descritas por hileras de esos símbolos. <br/>Las características que tiene que tener una máquina Turing para ser reputada como universal se refieren a su alfabeto y a las reglas de transición entre estados de su respectivo autómata. Algunos conjuntos de reglas, supuesto el correspondiente vocabulario, producen la universalidad, mientras que otros conjuntos no la producen. El diseñar una máquina Turing que sea universal requiere el mismo tipo de creatividad que encontramos en la actualidad en los llamados programadores de sistemas, es decir, personas que son capaces de componer –en el sentido en que se compone un poema o una canción–, por ejemplo, el conjunto de instrucciones básicas de una computadora. <br/>Recordemos ahora la naturaleza del problema de Hilbert –el problema decisorio–, a saber, determinar si puede existir un algoritmo al cual se le pudiera dar como dato otro algoritmo y tuviera que decidir si ese segundo algoritmo tiene solución. Recordemos también que para tener solución, un algoritmo debe detenerse en algún momento, dando una respuesta. Entonces, todo esto quiere decir que el algoritmo que deberíamos encontrar para cumplir el sueño de Hilbert sería uno que tomara como dato cualquier otro algoritmo y, poniéndolo a funcionar (o sea, imitando su funcionamiento, de donde se sigue que este algoritmo buscado por Hilbert debería ser una máquina universal), se diera cuenta de si termina (tiene solución) o no termina (no tiene solución). Turing supone, como etapa polémica, que ese poderoso algoritmo existe. Lo supone solamente para ver si de esa suposición se deriva algún absurdo, con lo cual quedaría demostrado que no puede existir. <br/>Veamos el asunto con cuidado. Poniéndola en forma de programa, la suposición polémica de Turing luciría así en pseudo Logo (es decir, un Logo en que intercalamos explicaciones en español de aspectos del programa que no llegamos a programar en Logo): <br/>PARA SUPERALGORITMO :PROGRAMA :DATOS <br/>SIOTRO (el :PROGRAMA, activado con :DATOS, llega a detenerse) <br/>REPORTA CIERTO <br/>REPORTA FALSO <br/>FIN<br/>Pero para que este algoritmo fuera satisfactorio, de acuerdo con la especificación dada para él por Hilbert, debería ser capaz de tomar como :PROGRAMA a cualquiera de los algoritmos posibles, y decidir el caso en relación con cada uno de ellos, decidir si se detiene o no. Si en un solo caso NOTA 18 el superalgoritmo no puede decidir, si en relación con una sola pareja de elementos que tome como dato NOTA 19, este superalgoritmo no se detiene, entonces quedaría demostrado que el problema decisorio debe contestarse negativamente. Dejamos al lector la tarea de derivar una contradicción del hecho de suponer que esa máquina U hubiera sido construida (el superalgoritmo con que soñara Hilbert) y que a un programa que hiciera lo siguiente: <br/>PARA PRUEBA :U <br/>SI SUPERALGORITMO :U :U PRUEBA :U NOTA 20 <br/>REPORTA CIERTO <br/>FIN<br/>le diéramos como dato NOTA 21 ese mismo programa. En otras palabras, la tarea, que es un ejercicio de aprendizaje al final de este capítulo, consiste en tomar PRUEBA como valor de :U en PRUEBA. <br/>De esta manera, derivando una contradicción de la suposición de que existe un algoritmo capaz de resolver todos los algoritmos, más el concepto de algoritmo como un proceso que puede equipararse al funcionamiento de una máquina abstracta de un cierto tipo, Turing logra demostrar que el problema decisorio de Hilbert tiene una respuesta negativa (WAND 80). <br/>Al mostrar que no existe un algoritmo para decidir la cuestión del detenimiento de las máquinas Turing, Turing mostró (como Church, usando su propio y muy diferente método casi al mismo tiempo, y como algunos otros un poco después de ellos) que no puede haber un algoritmo general para decidir todas las cuestiones matemáticas. El problema decisorio de Hilbert quedaba contestado por sus colegas matemáticos, ¡negativamente! <br/> <br/>Conclusiones<br/>Es frecuente considerar a la máquina universal de Turing como un modelo para las ciencias del conocimiento, en el sentido de que los procesos cognoscitivos del cerebro humano pueden ser explicados en términos de esa máquina. Recordemos que la máquina de Turing fue desarrollada como herramienta para demostrar que no existe un algoritmo para solucionar el problema decisorio; es decir, fue creada para un propósito de la metamatemática, que originalmente no tenía nada que ver con la informática, y mucho menos con la ciencia cognoscitiva. No obstante, ha resultado ser fundamental como modelo de los procesos correspondientes de ambas disciplinas. <br/>¿Qué queremos decir cuando afirmamos que la ciencia trata de construir modelos de los procesos naturales? Podemos pensar el proceso natural por sí mismo como una "caja negra" de la cual vemos los insumos y los productos y podemos colegir una correlación entre ellos, pero no sabemos qué es lo que la caja negra contiene ni cómo interactúan sus partes internamente. El científico tiene la opción de "abrir la caja" (si realmente tiene esa opción), o (más corrientemente) de inventarse un modelo. El modelo, tanto como la caja negra, son ambos máquinas, en el sentido de sistemas suficientemente constreñidos como para resultar en comportamiento predecible. El modelo, para ser tal, tiene que responder, en cada caso, a la correlación entre insumos y producto de la correspondiente caja negra. <br/>La historia de la máquina Turing como modelo para las ciencias cognoscitivas es especialmente interesante, pues arranca en un campo muy ajeno a ellas, a saber, en la metamatemática. Está ligada directamente a la sustitución del concepto intuitivo de algoritmo por una noción formal equivalente. La noción intuitiva de algoritmo, como conjunto de pasos para realizar una tarea, sirve muy bien cuanto tratamos de construir algoritmos concretos para resolver problemas determinados. Sin embargo, si nos mantuviéramos en ese nivel puramente intuitivo, no podríamos aspirar a resolver problemas sobre la matemática, como por ejemplo probar que para algunos problemas no existe solución algorítmica. Para demostrar que no existe un algoritmo capaz de decidir toda clase de casos se necesita usar un concepto de algoritmo estrictamente formal, que precisamente corresponde a la máquina de Turing. <br/>Turing desarrolla su demostración de que el problema de Hilbert tiene solución negativa por etapas sucesivas. En primer lugar, toma como punto de arranque a un ser humano que realiza una computación. "Computador" es para Turing, en su artículo seminal de 1936, un ser humano y no un aparato electrónico. Turing procede a obtener su formalización de "algoritmo", por una secuencia de simplificaciones en las operaciones de ese "computador", cada una de las cuales elabora con suficiente sencillez y cuidado como para que resulte obvio que no implica ninguna pérdida de información, ninguna diferencia significativa con el concepto que queremos sustituir. Al final, la computación queda caracterizada solamente en términos de las funciones de una máquina; queda eliminado el ser humano excepto en los puntos extremos de los actos de escribir los datos y leer los resultados. Es decir, se ha operado una sustitución del ser humano que realiza una computación por una máquina de estructura simple que realiza operaciones puramente no mentales. Lo sorprendente del caso es que esa clase de máquina pueda representar a cualquier algoritmo, y que una especie de esa máquina, la máquina universal, sea capaz de imitar el funcionamiento de cualquier otra máquina. <br/>Pero hay más. Si toda la aventura comienza con la observación de las acciones de un "computador" humano, y sigue con su sustitución por una máquina, una vez lograda la máquina resulta ser el mejor modelo –en el sentido técnico explicado antes– para entender el funcionamiento del computador humano, el cerebro. Vemos aquí una especie de viaje de ida y vuelta, de tipo dialéctico. Turing comienza por un "computador" en sentido original, o sea, "ser humano que computa"; por una sucesiva simplificación de sus acciones, nos lleva a una máquina muy simple de computación: la máquina Turing. Este proceso constituye la formalización del concepto de algoritmo. Al final del "viaje de ida", el concepto intuitivo de "procedimiento eficaz" o algoritmo ha quedado sustituido por un concepto riguroso: lo que es computable por una máquina Turing. Es cuando este concepto riguroso queda así constituido y consolidado que comienza el "viaje de vuelta". El viaje de ida es de formalización, y corresponde a la llamada tesis Turing-Church. Pero el viaje de vuelta es de explicación, y corresponde a una tesis distintivamente turingiana, diferente de la tesis Turing-Church; es originalmente propia de Turing, sin que inicialmente la comparta con nadie. <br/>Esta tesis "propiamente Turing" no es una tesis metamatemática, sino más bien una tesis filosófica, a saber, la que nos dice que la máquina universal de Turing constituye un buen modelo para explicar la mente de aquel computador original, el ser humano que computa, el cerebro humano. Esta tesis propiamente es una tesis epistemológica de gran trascendencia: constituye la primera formulación completa del paradigma (en el sentido de Kuhn) de las contemporáneas ciencias del conocimiento. Nos dice, en resumen, que la naturaleza de los procesos del pensamiento o de la inteligencia pueden ser adecuadamente descritos con el modelo de una máquina de estados discretos (o digitales) y su correspondiente memoria discreta (o digital), con entera independencia de la naturaleza del cuerpo, hardware, u otra particular encarnación del ser pensante. <br/>Finalmente, ya establecida esta correspondencia ente el proceso mental y su modelo, el algoritmo o el funcionamiento de una máquina Turing, el hecho de que existan algoritmos universales (capaces de sustentar cualquier otro algoritmo), o máquinas Turing universales (capaces de imitar a cualquier otra máquina), nos pone en posición de postular como modelo general de la unidad de la conciencia pensante a esa máquina universal de Turing. La mente humana, que imita (con el pensamiento, con la reflexión, con la conversación con otras mentes) a cualquier otra mente, encuentra así su modelo científico en un esquema completamente mecanicista, enteramente en conformidad con la anticipación genial de Thomas Hobbes. Efectivamente, ningún diálogo entre seres humanos podría prosperar si el cerebro humano no fuera capaz de construir, y actualizar constantemente, un modelo del otro interlocutor, si no fuera capaz de prever sus posibles respuestas, sus deseos, sus creencias, etc. mediante el expediente de "ejecutar" mentalmente un programa que reproduzca todas esas características de la otra persona. <br/>Por lo demás, debemos subrayar que este aspecto de la obra de Turing tiene trascendental importancia, incluso más allá de la teoría de las ciencias cognoscitivas, en el campo de la ingeniería, de la tecnología informática. En efecto, la idea de la máquina universal plantea de manera abstracta la posibilidad de encontrar en la naturaleza, pero también la de diseñar, un mecanismo autorregulado capaz de imitar el funcionamiento de cualquier otro mecanismo de su misma clase. Aunque imposible de construir en la práctica, porque requiere una cinta de memoria externa de longitud infinita, la máquina universal de Turing establece el marco teórico que da sentido a máquinas más realistas que se le aproximan en la práctica por tener una cantidad enorme de memoria; serán las computadoras digitales de propósito general, como la que estoy usando para escribir este libro. La computadora digital constituye así el equivalente posible de la máquina universal: tiene una memoria limitada (en vez de la cinta infinita) y trabaja con una velocidad de proceso determinada; pero dentro de esos límites puede imitar, como la máquina universal de Turing, a cualquier otra máquina de su especie. <br/>Para ejecutar esa imitación, la máquina universal debe ser adecuadamente programada. Los ejemplos que Turing presenta en sus trabajos de 1936 de máquinas específicas constituyen los primeros ejemplos del arte de programar; la máquina universal, en particular, fue el primer ejemplo de un lenguaje de programación de tipo interpretativo, es decir, que traduce las órdenes del programador al lenguaje de máquina NOTA 22. La máquina universal constituye también un ejemplo de la técnica, importantísima en el lanzamiento de las primeras computadoras, del "programa almacenado" que permitió obtener una arquitectura de propósito totalmente general: los quíntuplos codificados en la cinta, que representan a la máquina imitada, juegan el papel de programa almacenado, y transforman la máquina original en una nueva máquina, de la misma manera que nuestra moderna microcomputadora se transforma en máquina de escribir, en hoja de contabilidad, en base de datos, o en calendario, según el programa que le pongamos a ejecutar. <br/>Estos dos órdenes de cosas, la explicación de los procesos mentales y de la unidad de la conciencia, por una parte, y la creación tecnológica de la computadora de propósito general, están estrechamente vinculados entre sí. Filosóficamente, no se trata sino de las dos caras de un fenómeno único. Este fenómeno podríamos denominarlo plasticidad informática, la capacidad para imitar una configuración determinada desde otra configuración determinada. Estas configuraciones, desde luego, son configuraciones activas, no pasivas: son procesos, o más exactamente, racimos muy complejos de procesos. En el caso de las computadoras esta plasticidad se denomina programabilidad. En el caso del cerebro humano, corresponde a lo que llamamos conocimiento o aprendizaje. En su máxima expresión, el conocimiento es imitación (o emulación) de una mente por otra mente: piensen en lo que ustedes están procurando hacer en este momento, a saber, tratar de reproducir en sus cerebros los procesos mentales por los que el mío ha atravesado conforme he escrito estas líneas. Y si el cerebro tiene la capacidad de imitar a la máquina más compleja (otra mente) con más razón posee la de imitar a máquinas más sencillas (objetos físicos o abstractos) distintos de esas "máquinas universales" que son las otras mentes humanas. Volveremos sobre los temas de la programabilidad y la plasticidad en capítulos posteriores de esta obra. <br/> <br/>Turing, el hombre<br/>Alan Mathison Turing nació el 23 de junio de 1912, en Londres, de una familia de pequeña nobleza con gran tradición intelectual, cuya genealogía puede rastrearse hasta el siglo XIV. Su abuelo estudió matemáticas en Cambridge, pero las abandonó por un curato de la Iglesia de Inglaterra. Tuvo 10 hijos. El segundo, padre de Alan, estudió literatura e historia en Oxford y sirvió como oficial del Imperio en ultramar. En un viaje de vuelta de la India, conoció a una irlandesa y se casó con ella, para volver juntos a la India donde en el otoño de 1911 fue concebido su segundo hijo, Alan. <br/>Un año después Alan se quedaría solo en Inglaterra, a cargo de una familia inglesa, junto con su hermano mayor, John. La madre no los visitaría sino en 1915, y solo brevemente. En 1916 la pareja volvió a Inglaterra, y el padre regresó solo a la India. Como era de esperar dadas las circunstancias, Alan creció como un niño díscolo y dado a los berrinches. Más tarde, al regresar el padre, intentaría restablecer su autoridad sobre Alan, y le sería muy difícil. <br/>En el año 1917, Alan aprendió a leer por sí solo, en tres semanas, con ayuda de un libro titulado "Leer sin lágrimas". En 1918 se matriculó en la escuela para aprender latín, con lo que comenzaron 10 años de luchas con la pluma de fuente y la escritura, ninguna de las cuales pudo nunca dominar suficientemente bien para superar la producción de manchones. En un picnic que realizó la familia un año más tarde, Alan fue capaz de localizar una colmena de abejas silvestres observando sus trayectorias y proyectando su intersección. En ese período, Alan disfrutaba mucho dibujando mapas. Sus padres lo dejaron de nuevo solo y esto lo afectó tanto que cuando su madre volvió a Inglaterra dos años después, no sabía todavía dividir (a la edad de nueve años). En 1921 volvió también su padre. <br/>A fines de 1922, alguien le regaló un libro americano titulado "Maravillas naturales que todo niño debe conocer", de Edwin Tenney Brewster, que le abrió los ojos para la ciencia y lo dejó marcado para toda la vida con un punto de vista materialista sobre todas las cosas. En ese libro, los seres vivos se presentaban como máquinas: <br/>Por supuesto, el cuerpo es una máquina. Es una máquina muy compleja, muchas, muchas veces más complicada que cualquier máquina hecha con las manos; pero sin embargo una máquina. Se la ha comparado a una máquina de vapor; pero eso era antes de que se conociera suficientemente cómo trabaja. En realidad es semejante a una máquina de gas, como el motor de un automóvil, de un barco o de una máquina voladora NOTA 23. <br/>Al comenzar la adolescencia, su padre renunció a su puesto en la India y se radicó con su esposa en Francia, en la costa de Bretaña, con el objeto de esquivar el pago de unos impuestos. Los hijos los visitaban en Navidad y Semana Santa, y los padres iban a Inglaterra en el verano. Este retiro prematuro del padre, que la familia consideró una decisión desastrosa, agrió mucho las relaciones entre los esposos. Durante ese tiempo, Alan se dedicó a estudiar francés, que se convirtió en su mejor asignatura, y a hacer experimentos de química, con un juego que le regalaron. También disfrutaba sobremanera jugando ajedrez, aunque nunca llegó a ser bueno en este juego. Por esa época, una gitana le profetizó que sería reconocido por la posteridad como un genio. <br/>En mayo de 1926, debió comenzar sus estudios secundarios en la escuela de Sherborne, en el sur de Inglaterra. Era una de las tradicionales escuelas públicas inglesas de la época, encargadas de inculcar los valores de la era victoriana y preparar a los futuros oficiales del Imperio. Alan, que se encontraba entonces con su familia en Francia, atravesó el estrecho entre St. Malo y Southampton en ferry, solo para encontrarse al llegar a Inglaterra con una huelga que había paralizado los transportes. Pero tal obstáculo no iba a detenerlo en su empresa educativa, sobre la cual tenía grandes esperanzas. Se consiguió una bicicleta, y pedaleó sesenta millas hasta llegar a su destino. El hecho fue tan excepcional que lo reportó el periódico de la localidad. Fue una de las muchas maneras que tuvo Turing de vivir su vida de manera independiente, aprovechando de modo original las oportunidades que le brindara el ambiente. <br/>Durante este largo período de internado Alan se quejó mucho de lo absurdamente poco que se exigía de él en términos de aprendizaje intelectual. Efectivamente, el sistema victoriano de educación daba preferencia a la formación moral, es decir, a la transmisión de las ideas de respeto a la autoridad, obediencia, cooperación y lealtad, a poner siempre la casa y la escuela por encima de los deseos personales. Bajo tal sistema, no se procuraba en absoluto "abrir la mente" del educando, como preconizaba el apreciado libro de Brewster. Lo único que un alumno podía hacer frente a tal sistema era conformarse, rebelarse o ensimismarse; Alan optó por ensimismarse. Tuvo que abandonar sus experimentos de química porque, según sus maestros, "producían malos olores". En general, era considerado un niño sucio, porque siempre andaba manchado de tinta, despeinado y con la camisa salida del pantalón. Le iba mal en todas las asignaturas, incluso en matemáticas, donde su profesor se quejó una vez de que descuidaba "las bases" para hacer investigaciones en matemáticas avanzadas NOTA 24. <br/>En 1927 conoció a un niño, compañero de la escuela, llamado Christopher, que lo atrajo profundamente. Pronto se hicieron amigos, y durante varios años disfrutaron de interminables conversaciones sobre matemáticas y diversas cuestiones científicas. Antes y después de las clases, Alan discutía con él sobre relatividad, o le mostraba sus cálculos de pi hasta la posición decimal 37. Años más tarde, al salir del colegio, esta intensa amistad terminaría trágicamente, pues Christopher murió de tuberculosis en febrero de 1930. A raíz de esta tragedia, Alan se acercó mucho a la familia de su amigo, que se dedicó a venerar la memoria de Christopher como la de un santo. Durante este período Alan coqueteó con la idea de la trasmigración de las almas, pues muchas veces creyó encontrarse en la presencia ultrafísica de su alma gemela. En particular, creyéndose intelectualmente inferior a su amigo, se sintió sin embargo llamado a realizar la obra matemática a que Christopher estaba destinado. La familia de Christopher procedió a establecer un premio científico a su memoria, que Alan ganó con sus trabajos en repetidas oportunidades. <br/>Al terminar sus estudios secundarios, Alan ganó una beca para uno de los prestigiosos "colegios" de la Universidad de Cambridge, el King's College. Alan encontró en Cambridge un ambiente único de libertad y de estímulo intelectual, lo más parecido al hogar intelectual que nunca llegaría a tener. Allí se sintió de nuevo atraído por un compañero, a quien se atrevió a declarar su amor, sólo para descubrir que no era correspondido. Más tarde, sin embargo, logró establecer una relación con otro compañero, que si bien careció de la emoción de las dos primeras, pudo desarrollarse con naturalidad y sin mayores contratiempos, constituyéndose probablemente en la relación personal más substantiva que tuvo durante su vida. Fue así como Alan llegó a aceptar la inclinación homosexual como parte de su naturaleza, actitud que solo pondría en duda por breve período cuando llegó hasta comprometerse con una compañera de trabajo, durante su legendaria lucha por descifrar el código secreto de la armada alemana. <br/>Fue como estudiante de posgrado en Cambridge, que Alan realizó su máximo descubrimiento. En la primavera de 1935, Alan tomó un curso sobre los fundamentos de las matemáticas dado por el matemático M.H.A. Newman. En ese momento, Newman era, con J.H.C. Whitehead, el más destacado exponente de la topología NOTA 25. En los años treinta, la topología estaba unificando y generalizando gran parte de las matemáticas. La base de la topología era la teoría de conjuntos, de modo que Newman se había dedicado a aclarar los fundamentos de esta teoría. Así fue como se puso en contacto con Hilbert, y conoció su llamado a los matemáticos para resolver el problema decisorio. En su versión del problema, Newman planteó a sus alumnos de 1935 la cuestión de saber si existía un proceso mecánico que pudiera ser aplicado a un enunciado matemático y producir como contestación si el enunciado podía probarse o no. La frase de Newman "proceso mecánico" quedaría sonando en los oídos de Alan. Fue entonces cuando comenzó a soñar con máquinas. <br/>"Por supuesto, el cuerpo es una máquina. Es una máquina muy compleja, muchas, muchas veces más complicada que cualquier máquina hecha con las manos; pero sin embargo una máquina", había escrito Brewster. Como tal máquina, el cuerpo era un sistema determinista. Pero Alan debía abstraer esta cualidad de estar determinado y aplicarla al manejo de símbolos. Los matemáticos solían hablar de las reglas matemáticas como procesos mecánicos, pero dejaban el concepto de máquina sin definir, como si las acciones mecánicas fueran simplemente mágicas: "Se aprieta un botón, y sale la respuesta". Esa actitud dejaba a Alan profundamente insatisfecho. <br/>Por supuesto, ya existían máquinas que manipulaban símbolos, como la máquina de escribir. En su infancia, Alan había soñado con inventar una máquina de escribir. Su madre poseía una. Se habría preguntado muchas veces en qué consistía para una máquina de escribir su calidad de mecanismo, en qué sentido su comportamiento estaba determinado por la estructura de sus partes. Pero como máquina procesadora de símbolos, la máquina de escribir tenía un defecto fundamental: podía "escribir" pero no "leer" símbolos. En todo caso, Alan se sintió profundamente motivado a producir el diseño de una máquina que despejara la magia de las argumentaciones que hacían los matemáticos, estableciendo un puente entre esas especulaciones matemáticas y los procesos físicos. <br/>Así, en el verano de 1935, Alan debió retomar sus inquietudes de la infancia y emprender un proceso mental de rediseño de una máquina de escribir. Primero debió, para eliminar los problemas de márgenes y cambios de renglón, estipular un "papel" de una sola dimensión, indefinidamente extendible en varias direcciones: fue su famosa "cinta infinita" en ambas direcciones. Enseguida, debió prever que la máquina no solo escribiera, sino fuera también capaz de borrar lo escrito (o lo que es prácticamente equivalente, estampar un símbolo nuevo sobre uno ya escrito). Después, y de lo más importante, habría que darle a la máquina la capacidad de "leer", o (más exactamente) rastrear NOTA 26, los símbolos previamente escritos en la cinta. Finalmente, habría que conservar la capacidad original de la máquina de escribir de moverse un cuadro por vez, hacia la derecha o hacia la izquierda. Tómese nota de que la digitalidad espacial del mecanismo estaba asegurada de antemano, dado que normalmente una máquina de escribir imprimía en una posición del papel o en la siguiente, pero nunca (sin forzar la acción) en una posición intermedia. Y en cuanto al tiempo, la acción de la máquina en cada momento debería hacerse depender de la configuración actual de la máquina y de la acción tomada por su motor (por ejemplo, la presión de los dedos); pero si la máquina tuviera que ser de acción automática –sin intervención humana–, como lo preconizaba el planteamiento de Newman, entonces sería necesario dotarla de una "tabla de comportamiento", de tamaño pequeño, donde se le indicara qué acción realizar en cada caso, con base en el estado en que se hallara la máquina y en el símbolo rastreado en ese momento. Finalmente, el paso crucial en el razonamiento creador de Alan debió haber sido la percatación de que la tabla de comportamiento podría ser escrita en el mismo tipo de escritura que la máquina era capaz de escribir y rastrear, con lo que pasaba a ser posible que una máquina leyera la descripción de otra máquina (¡o de sí misma!). <br/>Así, a principios de 1936, el proceso mental crucial de la obra de Turing debió quedar completamente terminado. Podríamos decir que para entonces llegaba a la madurez –no cumplidos todavía los 23 años– no solo su contribución mayor a la tecnología y cultura occidentales, sino también su concepción mecanicista integral del universo. En ese momento, su amigo Christopher debió experimentar una segunda muerte, al quedar definitivamente enterradas por un materialismo congruente y total las ideas místicas de sus años de adolescencia. La redacción de "Números computables" habría sellado esta transición. En abril de 1936, Alan mostró a Newman este trabajo, que incluía la prueba, esperada por el mundo de los matemáticos, de que no podía existir una máquina milagrosa que solucionara todos los problemas matemáticos. A cambio de ello, Alan delineaba el diseño de una máquina capaz de realizar cualquier cosa que un computador humano pudiera realizar: una máquina universal capaz de realizar el trabajo de cualquier otra máquina, mediante la lectura de su descripción en una cinta. Las implicaciones de tal idea eran enormes: una máquina así podría en principio llegar a realizar el equivalente de la actividad mental humana. Eventualmente, las máquinas podrían reemplazar al ser humano en todos los cómputos matemáticos. La posibilidad de construir un verdadero cerebro electrónico había surgido. <br/>Cuando Newman leyó el trabajo a mediados de mayo, le costó creer que una idea tan simple como la máquina Turing pudiera contestar el problema decisiorio de Hilbert que había consumido por tanto tiempo tantos esfuerzos de los mejores matemáticos del mundo. Su primera impresión fue que tendría que contener un error. Finalmente, sin embargo, tuvo que aceptar que el portento era cierto. Pocos días después llegaba, desde el otro lado del Atlántico un artículo de Alonzo Church que también contestaba –en cierta manera– el problema decisorio, aunque sus resultados eran más débiles que los de Turing. Church había desarrollado un formalismo llamado cálculo lambda y –en conjunción con el lógico Stephen Kleene– había descubierto que ese formalismo podía usarse para representar fórmulas aritméticas de manera estandarizada. En esta forma, podían probarse teoremas mediante la conversión de una cadena de símbolos en otra cadena, conforme a reglas muy simples. Church mostraba que el problema de decidir si una cadena podía transformarse en otra era insoluble, en el sentido de que no podía existir una fórmula del cálculo lambda que la realizara. Sin embargo, no era tan claro que "fórmula del cálculo lambda" fuera equivalente a "método eficaz". La demostración de Turing era más contundente y directa, basada como estaba en principios completamente básicos y elementales (HODGES 83). Así, gracias a estas diferencias, Alan pudo someter su artículo el 28 de mayo de 1936 a la Sociedad Matemática de Londres para su publicación a pesar del artículo de Church, y Newman escribió una carta a este recomendando a Alan para que trabajara con él en la Universidad de Princeton, lo que en efecto llegó a realizarse. A su vuelta de América, después de su primera experiencia americana –un poco decepcionante–, Alan encontraría una Europa que se preparaba frenéticamente para la guerra. <br/> <br/>En 1937 era conocimiento común de los servicios de inteligencia de Inglaterra que el ejército, la marina, y probablemente también la aviación alemana, cifraban sus mensajes de una manera similar, con base en una máquina llamada Enigma lanzada al mercado en los años veinte pero que los alemanes continuaban perfeccionando. Para 1938, el problema de descifrar Enigma se había convertido en el problema principal de los servicios de inteligencia británicos, y el consenso general era que el problema permanecería insoluble. Dentro del sistema imperante, en que ningún matemático era parte del equipo de inteligencia, probablemente habría tenido que ser así. Pero nada más cercano a la vocación de Alan Turing que el cifrado (y descifrado) de mensajes: el trabajo de la máquina Enigma, en particular, era algo totalmente equiparable a un "procedimiento eficaz" como los que encarnaban las máquinas Turing. No es de extrañar, pues, que Turing fuera reclutado para servir en el Servicio Secreto de Su Majestad en el verano de 1938. Con ello comenzaría un período de su vida rodeado de misterio, pues Alan nunca habló ni a sus más cercanos allegados sobre lo que hacía en este trabajo, y sus detalles solo salieron a la luz pública bastante después de su muerte. Alan realizaría su misión secreta durante varios años, en una mansión victoriana reconvertida, en Bletchley Park, cerca de Londres. <br/>La máquina Enigma era una máquina para traducir caracteres eléctricamente, mediante un juego de tres rotores, los cuales, de acuerdo a sus respectivas posiciones, convertían los símbolos en otros, de entre los 26 del alfabeto, produciendo su resultado mediante letras iluminadas. Los rotores podían estar en cualquiera de las 26 x 26 x 26 = 17576 posiciones combinatoriamente posibles NOTA 27. Naturalmente, parte de la fuerza de este sistema de cifrado era la facilidad con que sus usuarios podían variar periódicamente la posición de los rotores, con lo que de hecho variaban la clave empleada, sin tener que someter a nadie a un readiestramiento en el uso de la máquina o al manejo de tablas de equivalencia complicadas. Sin embargo, y a pesar de su gran número de posibilidades, en sí misma la máquina podía en principio ser derrotada por otra máquina, y su sofisticación sólo iría a servir, en el fondo, para infundir un falso sentido de seguridad a los alemanes. En efecto, cuantas veces Turing y su equipo lograron descifrar los mensajes de la marina alemana, los obvios síntomas de quebrantamiento de la seguridad fueron sistemáticamente atribuidos a éxitos en el espionaje; la máquina Enigma seguiría siempre siendo considerada invencible. Pero lo cierto fue que, gracias a un formidable esfuerzo realizado por los investigadores ingleses –sobre la base de un excelente trabajo inicial realizado por un equipo de matemáticos en Polonia– ya en 1940 los servicios de inteligencia británicos estuvieron en posesión de una plétora de información producida oportunamente para ser usada, que resultó especialmente importante para ganar la batalla del Atlántico. En medio de ese esfuerzo, Alan Turing desarrolló también las teorías fundamentales que levantaron la criptografía, desde el nivel de un saber puramente empírico que tenía en 1938, al carácter científico y sistemático que hoy ostenta. <br/>Durante este período, Alan fue encargado de la misión muy delicada de servir de oficial de enlace con los científicos de la información que trabajaban del otro lado del Atlántico. En esa condición viajó de nuevo a América, y visitó sin restricciones, bajo la directa protección del Gobierno de Washington, los laboratorios informáticos más secretos de los Estados Unidos. En correlación con investigadores de la compañía Bell, entre ellos el cibernético Claude Shannon, desarrolló un sistema de transmisión cifrada de la voz, bajo el nombre de código Delilah, por medio del cual se esperaba que el Primer Ministro británico pudiera conversar directamente con el Presidente de los Estados Unidos. El sistema Delilah llegaría a concluirse aproximadamente para las fechas en que se rindió el gobierno alemán a las fuerzas aliadas. <br/>Pero todas estas actividades no consumían totalmente la energía creadora de Alan. Ya en el año 1943 comenzó su colaboración con intentos muy prometedores, auspiciados por el gobierno inglés, de desarrollar un "cerebro electrónico" basado en el modelo de la máquina universal de Turing. Pronto se lo enroló en el Laboratorio Nacional de Física, para la producción de la primera computadora británica, la ACE, en competencia férrea con la ENIAC de la Universidad de Pensilvania, por llegar a ser la primera computadora digital del mundo NOTA 28. Sin embargo, por ese tiempo Turing se había aburrido del trabajo con la máquina universal. Podemos decir que con ello perdió –y el mundo también– la extraordinaria oportunidad de haberse trasladado del campo del hardware al más promisiorio del software, especialmente del software de sistemas NOTA 29, del cual él podía considerarse también como auténtico padre. Sin embargo, su curiosidad intelectual lo llevaba ya por otros caminos. <br/>En agosto de 1946 murió su padre. Con esto comenzaría una relación más íntima con su madre, que duraría hasta la muerte de Alan. En setiembre de 1947, volvió a Cambridge, después de ocho años de ausencia. Su pasado en el servicio secreto había quedado en la oscuridad, pues ninguno de los gobiernos aliados tenía interés en que se supiera que tenían conocimiento de los métodos de cifrado de otros gobiernos, sobre todo en medio del nuevo contexto internacional, matizado por la guerra fría con la Unión Soviética. A fines de la década aceptó un puesto en la Universidad de Manchester, donde colaboró marginalmente en las últimas etapas de la producción de la primera computadora exitosa del mundo, creada por F.C. Williams. Sin embargo, su curiosidad intelectual lo había llevado a preocuparse por otro problema, muy diferente de la computación, a saber: la teoría matemática de la morfogénesis NOTA 30. En 1951, ya con varias marcas de computadoras en el mercado, obtendría un reconocimiento tardío por su trabajo de Números computables, al ser elegido Fellow de la Royal Society; sus padrinos fueron Bertrand Russell y Max Newman. <br/>La personalidad de Alan Turing en su vida corriente era, según sus amigos, muy agradable. Así, todos los testigos consultados por sus biógrafos lo consideraban una persona con gran sentido del humor, y admiraban su compañerismo, su conversación amenísima, su carácter atlético, y su apreciación de la naturaleza. Su defecto principal era una inmensa veneración por la inteligencia, que establecía una barrera para la relación personal que muchas personas no eran capaces de franquear. Su entusiasmo por las ideas y su completo desinterés por obtener dinero, poder o fama eran proverbiales. También es cierto que nunca tuvo consideración por los convencionalismos sociales, y que vivió siempre como él quiso, eligiendo personalmente sus propios estilos de vida, aunque sin incomodar a nadie. Irónicamente, una persona que había realizado hazañas sin paralelo de carácter intelectual, no habría de estar a la altura de esas capacidades al tener que lidiar con situaciones personales especialmente comprometedoras en la crisis más grave de su vida. <br/>Esta parte triste de la historia de Alan Turing se inicia con un encuentro casual en la calle Oxford de Londres a fines de 1951, con un chico de 19 años, famélico y bien parecido. Arnold Murray era un desempleado, con pequeños antecedentes penales, sin oficio ni beneficio. Alan estableció con él una relación sexual intermitente, con visitas regulares de Arnold a su casa. A fines de enero de 1952, la casa de Alan fue asaltada por un intruso –probablemente un amigo de Arnold al que este había hecho confidencias– que robó una serie miscelánea de objetos de poco valor. Alan cometió la imprudencia de reportar este robo a la policía, y dos oficiales vinieron a su casa a tomar huellas digitales. Unos días después, precisamente cuando se anunciaba la muerte de Jorge VI y el acceso al trono de Isabel II, dos detectives llegarían a interrogar a Alan por un delito diferente, en que él mismo era el imputado: "indecencia grave", según una ley contra el homosexualismo, dictada en 1885. El estatuto legal violado, con pena de hasta dos años de prisión, se definía exclusivamente en términos del cuerpo masculino NOTA 31, y se aplicaba absolutamente, sin consideración a edad, intervención de dinero, o carácter privado o público de los actos. A todas las preguntas de los investigadores policiales Alan contestó inmediatamente la verdad, con lo que los detectives se dieron el gusto de solucionar su caso en unos pocos minutos. <br/>El 27 de febrero Alan y Arnold se presentaron ante el tribunal para la iniciación de los procedimientos. El abogado de Alan obtuvo su libertad contra fianza, mientras se realizaba el juicio; Arnold fue mantenido en custodia. Alan escribió a su hermano John, informándole de la situación: "Supongo que sabes que soy homosexual"; pero John no tenía idea de tal cosa, aunque siempre le había considerado "misógeno". En la carta Alan le decía que planeaba alegar inocencia en el juicio (¡no sentía haber cometido falta alguna!), lo cual inquietó al hermano, quien tenía sentido práctico y se daba cuenta de lo comprometedoras de las circunstancias. Finalmente, junto con el abogado, convencieron a Alan de aceptar la culpa, para facilitar los trámites. Venía luego la dura tarea de informar a la madre; Alan viajó a Guildford, donde ella vivía, y le explicó tanto como ella pudo comprender –probablemente poco– lo cual la mujer procedió a enterrar rápidamente en su inconsciente. Lo cierto es que estas circunstancias no los separaron, sino tal vez los acercaron más todavía. Finalmente, había que informar a Max Newman, lo más parecido a una figura paterna en la vida de Alan. Newman quedó atónito, pero su reacción fue de completo apoyo. Alan le pidió que actuara como testigo de carácter, lo que Newman aceptó e hizo muy bien. También lo apoyó de igual manera otro colega de Cambridge, Hugh Alexander. El liberalismo cambridgeano se portaba a la altura, pese al temible "estigma por asociación" en una sociedad en que el homosexual era equiparado al leproso. Max Newman fue preguntado en el juicio si recibiría a tal hombre en su casa, y contestó que ya lo había hecho, pues Alan era amigo personal suyo y de su esposa. Describió a Alan como "particularmente honrado y sincero", "completamente absorbido en su trabajo", y "una de las mentes matemáticas más profundas y originales de su generación". El veredicto suspendió la pena, bajo la condición de someterse a un tratamiento a base de hormonas para contrarrestar sus tendencias sexuales. <br/>El período posterior al juicio no se caracterizó ni por estados depresivos de Alan, que según sus amigos nunca los tuvo, ni tampoco, singularmente, por problemas de aceptación social. Sus compañeros de trabajo en Manchester continuaron tratándolo con normalidad. Su vida social, que de todos modos –por vocación y decisión propias– nunca había sido muy amplia, no pareció afectarse. Sí tuvo que lamentar que en adelante le fue imposible entrar a los Estados Unidos, que en ese tiempo prohibía el ingreso a los homosexuales convictos. En cuanto al tratamiento de hormonas, tuvo consecuencias desagradables para su bienestar, aunque no precisamente las previstas por el juez y la ley. Probablemente la consecuencia más desfavorable para Alan de la sentencia en su contra habría sido el hecho de que en adelante tuvo que multiplicar sus viajes al Continente –en vacaciones y fines de semana– como única manera legal de tener distracciones compatibles con sus gustos personales. Se pone uno a pensar si estos múltiples viajes de un conocido homosexual que había sido agente secreto no habría puesto nerviosos a los dirigentes de los servicios de inteligencia de Inglaterra y de los Estados Unidos, donde entonces regía el macartismo de la década, con su paranoia anticomunista. En efecto, las esferas oficiales de ambos países habían repetidamente señalado en esa época a los homosexuales como "riesgos a la seguridad" en relación con nombramientos en los puestos públicos. <br/>Alan Turing fue encontrado muerto en su apartamento en la mañana del 8 de junio de 1954. Contiguo a su cama se encontró una manzana, de la cual faltaban unos mordiscos. También había en la casa un frasco de cianuro, así como un recipiente que contenía una solución de esa sustancia. La autopsia rindió dictamen de envenenamiento por cianuro, aunque la manzana nunca fue examinada. La policía calificó el caso como suicidio, declarándolo cerrado. <br/>La repentina muerte de Alan causó consternación entre sus amigos. Sus vecinos lo habían convidado a cenar solo unos días antes, y se había mostrado con ellos alegre y conversador. Ninguno de sus compañeros de trabajo reportó haber notado ninguna alteración reciente en su conducta o humor. En cuanto a la madre, para ella el caso estaba tan claro como para la policía: "Siempre le dije a Alan que tuviera el cuidado de lavarse las manos después de sus experimentos"; no había duda para ella: todo había sido un accidente. Como quiera que haya sido, en esta forma lamentable terminó, prematuramente, la vida de una de las mentes más preclaras del siglo. <br/> <br/>Ejercicios de aprendizaje<br/>1) Turing supone, como etapa polémica en su demostración de que el problema decisorio de Hilbert debe responderse en la negativa, que un poderoso algoritmo, capaz de decidir si cualquier algoritmo se detiene con todos sus insumos, existe. Poniéndola en forma de programa, la suposición polémica de Turing luciría así en pseudo Logo: <br/>PARA SUPERALGORITMO :PROGRAMA :DATOS <br/>SIOTRO (el :PROGRAMA, activado con :DATOS, llega a detenerse) <br/>REPORTA CIERTO <br/>REPORTA FALSO <br/>FIN<br/>Para que este algoritmo fuera satisfactorio, de acuerdo con la especificación de Hilbert, debería ser capaz de tomar como :PROGRAMA a cualquiera de los algoritmos posibles, y decidir si se detiene o no con cada uno de ellos y cualesquiera datos que le acompañen. Derive una contradicción del hecho de suponer que SUPERALGORITMO existe, que hay un programa que hace lo siguiente: <br/>PARA PRUEBA :U <br/>SI SUPERALGORITMO :U :U PRUEBA :U <br/>REPORTA CIERTO <br/>FIN<br/>y que a este último programa le damos como dato el mismo programa PRUEBA. <br/>2) Escriba la tercera función de transición que define matemáticamente a la máquina de Turing, es decir, la que determina la posición de la cinta en el momento t+1. Recuerde que la posición nueva en que va a quedar la cinta con respecto al autómata en el momento t+1 depende únicamente del estado en el momento t y el insumo en este mismo momento. <br/>3) Dibuje un diagrama de una máquina Turing que represente en forma gráfica lo más adecuadamente este concepto. <br/> <br/>Respuestas a los ejercicios de aprendizaje<br/>1) Del texto del programa PRUEBA se sigue que <br/>(*) PRUEBA se detiene con el insumo :U si y solo si :U no se detiene con el insumo :U. <br/>Esta propiedad hace al programa parecido al caso del mítico cretense que decía: "los cretenses siempre mienten", de modo que podemos preguntarnos: ¿se detendrá el programa PRUEBA si le damos como insumo PRUEBA mismo? Veamos. Si sustituimos en (*) :U por PRUEBA, nos da: <br/>(**) PRUEBA se detiene con el insumo PRUEBA si y solo si PRUEBA no se detiene con el insumo PRUEBA, <br/>lo cual es claramente la contradicción que queríamos derivar. De esta manera, derivando una contradicción de la suposición de que existe un algoritmo capaz de resolver todos los algoritmos, más el concepto de algoritmo como un proceso que puede equipararse al funcionamiento de una máquina abstracta de un cierto tipo, Turing logra demostrar que el problema decisorio de Hilbert tiene una respuesta negativa (WAND 80). <br/>2) <br/>M(t+1) = H(E(t),I(t)). <br/>3) Hay muchas maneras válidas de realizar esta tarea. Por ejemplo, el autómata de estado finito puede representarse como una cajita, por cuyo interior pasa la cinta infinita; o puede el autómata quedar representado por un carro de ferrocarril y la cinta por la línea férrea, cuadriculada por durmientes. En todo caso, en el interior de la representación del autómata debe sugerirse la lista de quíntuplos que definen su comportamiento; igualmente, la representación de la cinta debería tener signos del alfabeto correspondiente. El diagrama debe sugerir el carácter infinito de la cinta. <br/> <br/>Ejercicios de evaluación<br/>Conteste por escrito, lo más clara y completamente que pueda. Califique cada respuesta comparándola con las respuestas que se ofrecen enseguida. Si alguna de las preguntas resulta mal contestada, busque el material atinente en el texto y repáselo hasta quedar satisfecho con su asimilación del mismo. <br/>1) ¿Por qué es importante la teoría en informática? <br/>2) ¿Qué es un algoritmo? <br/>3) ¿A qué se llama el problema decisorio y cuál es su importancia? <br/>4) ¿Cómo se define un autómata de estado finito? <br/>5) ¿Cómo se define la máquina de Turing? <br/>6) ¿Qué papel cumple la máquina de Turing en la solución del problema decisorio? <br/>7) ¿Qué es una máquina universal de Turing? <br/>8) ¿Cuál es la importancia de la máquina universal? <br/>9) ¿Cuál es la contribución de Turing a las ciencias cognoscitivas? <br/>Respuestas para los ejercicios de evaluación <br/>1) La teoría nos ofrece un juego de conceptos rigurosos con qué trabajar; además, constituye un sistema de advertencia temprana sobre el tipo de problema informático con que nos enfrentemos, permitiéndonos saber antes de acometerlo si es solucionable, y si es solucionable con los recursos de que disponemos. Para hacer un estudio teórico es necesario eliminar por abstracción muchos detalles y notas realistas de los sistemas que nos interesan. Casi siempre nuestra abstracción es tan ruda que deja dentro de la máquina solamente una representación esquelética de la estructura de la secuencia de sucesos –una suerte de estructura "simbólica" o "informática"–. Pasamos por alto en nuestras abstracciones la composición geométrica o física de las partes mecánicas. No obstante esa simplificación, o más exactamente gracias a ella, podemos hacer predicciones importantes sobre el comportamiento de nuestros sistemas con base en unos pocos datos. Pero esto supone que estamos en posesión de una buena teoría, es decir, una teoría que se haya concentrado en los aspectos importantes de los sistemas y haya prescindido de los no importantes. <br/>2) Un algoritmo es una serie de pasos para realizar una tarea, que idealmente debe terminar. Sin embargo, la computación prescrita por el algoritmo puede no terminar para ciertos argumentos que se escojan. Cuando una computación sí termina, ese hecho debe ser perfectamente obvio y el resultado de la computación debe estar bien definido. Aún más, este resultado debe depender solamente de los argumentos particulares a los cuales el algoritmo fue aplicado. Un algoritmo consiste en una colección de instrucciones, cada una de las cuales especifica una operación básica que debe llevarse a efecto en uno o más miembros del dominio del algoritmo. Un algoritmo especifica una manera mecanicista de evaluar una función. Es, pues, un procedimiento eficaz para lograr el resultado de la función correspondiente. Mientras que la idea informal de un algoritmo es bastante vieja, las formulaciones cuidadosas de esta idea son todas relativamente recientes. No fue sino hasta los años mil novecientos treinta que el trabajo de Turing, Church y Post proveyeron modelos formales satisfactorios para la noción de computación algorítmica y llevaron a la definición de las funciones computables. <br/>3) El problema decisorio es un problema planteado por Hilbert que consistía en encontrar un algoritmo que determinara si una inferencia matemática dada era válida. El problema decisorio fue llamado "el principal problema de la lógica matemática", porque un algoritmo para el problema decisorio podría, en principio, ser usado para contestar cualquier pregunta matemática: sería suficiente emplear una formulación en lógica de primer orden de la rama de las matemáticas pertinente a la cuestión bajo consideración. Turing mostró que no hay algoritmo alguno para resolver el problema decisorio. Habría sido muy útil tener un procedimiento decisorio que nos permitiera, dada una máquina y su respectiva cinta, determinar si el proceso se detendría algún día. El término "procedimiento decisorio" significa aquí un único conjunto de instrucciones, dado de una vez por todas, que nos facultara para resolver el problema del detenimiento para todo par máquina-cinta. Pero, de acuerdo con la demostración de Turing, no puede haber ningún procedimiento eficaz que pueda ofrecer esto. Está implícito en su argumento el compromiso con la tesis de que las computaciones de las máquinas Turing incluyen todos los procedimientos eficaces. Al mostrar que no existe un algoritmo para decidir la cuestión del detenimiento de sus máquinas, Turing mostró (como Church, usando su propio tipo de enfoque bastante diferente) que no puede haber un algoritmo general para decidir las cuestiones matemáticas. <br/>4) Un autómata de estado finito es una máquina abstracta sumamente sencilla que mantiene una relación extraordinariamente simple entre su estructura y su comportamiento. Si tenemos la descripción del autómata, su estado interno inicial –de un número limitado de estados posibles–, y una descripción de las señales que le lleguen de su entorno, podemos calcular cuál será su estado en cada momento del futuro. En el diseño de un autómata de estado finito el tiempo se concibe digitalmente; esto quiere decir que los momentos se suceden uno a otro sin situaciones intermedias. La manera más clara de definir un autómata de estado finito particular consiste en presentar las funciones de transición que lo definen. Son dos en total. La primera determina el resultado –o signo enviado fuera del autómata– en el instante t+1, con base en el insumo y el estado interno en el instante t: <br/>R(t+1) = F(E(t),I(t)).<br/>La segunda función determina el estado interno en el instante t+1, con base en el insumo y el estado interno en el instante t: <br/>E(t+1) = G(E(t),I(t)).<br/>Las variables dependientes en estas funciones son el estado nuevo y el producto, las cuales dependen del estado anterior y del insumo en el momento anterior. <br/>5) Una máquina Turing es un mecanismo computacional hipotético formado por una unidad de control (un autómata de estado finito) acoplada a una cinta infinita. Cada paso en una computación de máquina Turing consiste en escribir un símbolo en la cinta, correr la cinta hacia la izquierda o hacia la derecha y adquirir un nuevo estado interno. La acción particular que se realiza en cada paso está determinada por el estado actual de la máquina y el símbolo rastreado en ese momento. A causa de la naturaleza simple y mecánica de sus computaciones, las máquinas Turing pueden ciertamente ser consideradas como procedimientos eficaces. Además se supone, aunque no puede demostrarse –dada la naturaleza de la cuestión– que las computaciones posibles en una máquina Turing comprenden todos los procedimientos eficaces (tesis Turing-Church). La manera más concreta de definir una máquina Turing particular es expresar tres funciones: las dos primeras corresponden a su autómata de estado finito, y la tercera, <br/>M(t+1) = H(E(t),I(t)),<br/>que se refiere a la cinta, determina la posición digital de la cinta en el instante t+1, con base en el insumo y el estado interno en el instante t. La posición nueva en que va a quedar la cinta con respecto al autómata en el momento t+1 dependerá únicamente del estado en el momento t y el insumo en este mismo momento. <br/>6) Si una solución positiva al problema decisorio hubiera llevado a algoritmos para resolver todas las cuestiones matemáticas, se habría seguido que si existiese incluso un solo problema sin solución algorítmica, el mismo problema decisorio no podría tener solución algorítmica. Ahora bien, la noción intuitiva de algoritmo sirve perfectamente bien cuando lo que necesitamos verificar es que algún procedimiento propuesto de verdad constituye una solución positiva a un problema dado. Sin embargo, si hubiéramos permanecido en este nivel intuitivo, no habríamos podido esperar probar que algún problema no tiene solución algorítmica. Para estar seguros de que ningún algoritmo funcionará en relación con un problema de un cierto tipo, parece necesario hacer un reconocimiento de la clase de todos los algoritmos posibles. Esa es la tarea que se impuso Turing con la definición de una máquina abstracta, cuya operación para computar una función puede tomarse como la existencia de un argumento eficaz para calcular dicha función. El mérito de Turing es haber propuesto un equivalente formal aceptable (la máquina de Turing) para un concepto intuitivo no formal (el de algoritmo), y que ese equivalente formal haya resultado útil en todos los casos en que necesitábamos usar el viejo concepto de algoritmo. <br/>7) Una máquina universal de Turing es una máquina Turing capaz de imitar el funcionamiento de cualquier otra máquina Turing. Prefigura abstractamente el objeto que vinculamos de manera especial con la informática, a saber, la computadora digital de propósito general. La posibilidad de que una máquina Turing imite el comportamiento de otra máquina descansa en el hecho de que una máquina Turing puede ser descrita por un conjunto de quíntuplos, expresiones simbólicas que pueden aparecer en la cinta de otra máquina Turing como datos para ser leídos. Para realizar sus computaciones que imiten a otra máquina, una máquina universal debe ser provista en su cinta de esa descripción de la máquina que debe imitar, así como de la descripción de la configuración inicial de la cinta de tal máquina. Como toda máquina puede ser representada por un conjunto ordenado de quíntuplos, y suponiendo que cada quíntuplo puede ser representado por símbolos en el alfabeto que la máquina universal entiende (que puede estar constituido, por ejemplo, por el signo 1 y el signo bl (espacio en blanco), las máquinas Turing para ser imitadas pueden ser descritas en la máquina universal por hileras de esos símbolos. Las características que tiene que tener una máquina Turing para ser reputada como universal se refieren a su alfabeto y a las reglas de transición entre estados de su respectivo autómata. Algunos conjuntos de reglas –supuesto el correspondiente vocabulario– producen la universalidad, mientras que otros conjuntos no la producen. <br/>8) La importancia de la máquina universal es triple. Por una parte, permitió a Turing contestar el problema decisorio (también llamado, después de Turing, problema del detenimiento), poniendo así fin a un programa de investigación metamatemática infecundo. En segundo lugar, inspiró la construcción del computador digital de propósito general, dando origen a la disciplina científica y a la tecnología de la informática. En tercer lugar, ofrece a los científicos cognoscitivos el modelo más útil provisto hasta ahora para sus investigaciones. <br/>9) La contribución de Turing a las ciencias cognoscitivas es haber ofrecido, en la máquina universal, un modelo de los fenómenos mentales que se ha convertido en el paradigma vigente para la práctica de su profesión (¡ni más ni menos!).<br/>Notas<br/>NOTA 1 Una aplicación más humilde es la preparación de un plato de comida: podemos considerar también a la receta de cocina como un algoritmo, pues es una serie definida de pasos para realizar algo, en este caso el plato terminado. <br/>NOTA 2 No hay nada que requiera esencialmente que ese agente sea un ser humano. <br/>NOTA 3 Este requerimiento lo satisfacen tanto las computadoras como los seres humanos, puesto que ambos tienen memoria. <br/>NOTA 4 Es posible concebir empleos útiles para algoritmos que no terminan. Un caso extremo es el de un marcapasos, que para mantener a su dueño vivo debe precisamente continuar para siempre. Otro caso más ordinario es el de un programa de "menú", en que debe darse un ciclo eterno para consultar periódicamente al usuario qué quiere hacer enseguida. <br/>NOTA 5 En realidad, parece tan natural identificar la idea de algoritmo con la idea de procedimiento mecánico, que uno se pregunta por qué se necesitó un genio de la estatura de Turing para llegar a establecer una cosa tan simple. Pero en realidad, esta es una característica del pensamiento genial, que una vez ejercitado sus frutos nos parecen a todos como evidentes. Es interesante, sin embargo, notar aquí la asociación entre la genialidad y el pensamiento eminentemente simple: la contribución de los genios generalmente se ha dado por una percepción obsesiva de una idea esencialmente sencilla. <br/>NOTA 6 Advirtamos, sin embargo, que un físico ilustre, Roger Penrose, la pone en duda, al suponer que puede haber procesos físicos –aún no descubiertos– que se basen en principios matemáticos no computables en este sentido. A pesar de su autoridad como físico, Penrose no parece tener más base para su afirmación que un argumento "per ignorantiam", es decir, basado no en lo que sabemos sino en lo que no sabemos; generalmente este tipo de argumento es rechazado por los lógicos como ilegítimo. Otro ejemplo de un argumento de este tipo sería: "¿Cómo podemos afirmar que no existen los fantasmas? Todavía la ciencia no ha podido crear máquinas adecuadas para fotografiarlos, pero algún día la ciencia progresará suficientemente para poder hacerlo". Este asunto se ahonda en una sección de nuestro capítulo VI. <br/>NOTA 7 Se llama lógica de primer orden a la lógica que estudia la estructura de enunciados que predican propiedades de individuos, pero nunca propiedades de propiedades. Por ejemplo: "Todos los filósofos son griegos" es un enunciado (falso) de primer orden, pero "Yo heredé algunas virtudes de mi madre y todos los vicios de mi padre" es un enunciado (probablemente verdadero) de segundo orden; en efecto, "vicios" y "virtudes" no son propiedades de individuos sino de otras propiedades: por ejemplo, mi madre era paciente, y su paciencia era una virtud; mi padre era irascible, y de su irascibilidad se predica que es un vicio. <br/>NOTA 8 Análisis teórico sobre las matemáticas, como el que Hilbert practicaba al plantear sus cuestiones fundamentales sobre la integridad, la congruencia y la decidibilidad de las matemáticas. <br/>NOTA 9 De hecho, aunque no fuera su propósito, la "máquina universal de Turing" resultó ser la más perfecta especificación para tal computadora. <br/>NOTA 10 Como se explica en detalle más adelante en este capítulo. <br/>NOTA 11 Aquí tenemos que tomar en cuenta que una máquina universal de Turing es capaz de imitar a cualquier otra máquina de Turing. Es decir, una máquina abstracta puede imitar solamente a otra máquina abstracta. Sin embargo, si agregáramos a la máquina universal las interfaces necesarias para comunicarse con el mundo exterior (sensores y órganos efectores), podríamos bien decir que la máquina universal es capaz de imitar a cualquier máquina real, sin limitación alguna. Un ejemplo muy claro de esta situación lo encontramos hoy en la automatización de la industria con base en las computadoras digitales (buenas aproximaciones reales de la máquina universal de Turing). <br/>NOTA 12 Los autómatas de estado finito son máquinas que proceden por pasos claramente separados y discretos de un estado a otro a través de un número finito de estados internos. Por definición, es una máquina capaz de estar en solo uno de un conjunto limitado de estados en cada momento, que siempre está en uno de esos estados y que, además, es capaz de saltar de uno a otro de ellos, de acuerdo con ciertas reglas, que son las que definen cada máquina particular. <br/>NOTA 13 Más estrictamente, una memoria que puede extenderse indefinidamente, según lo requiera la computación en curso. <br/>NOTA 14 Lo contrario de un reloj digital es un reloj analógico, donde podemos leer posiciones intermedias hasta donde alcance el poder de resolución de nuestra vista. <br/>NOTA 15 Atención: toda computadora digital es una aproximación a una máquina Turing; la computadora digital de propósito general es una aproximación a la máquina universal de Turing, explicada más adelante. <br/>NOTA 16 Tenemos aquí un problema parecido al problema de la inducción, discutido en el capítulo precedente. <br/>NOTA 17 Siendo así que nuestras computadoras digitales son una aproximación cercana de las máquinas universales, excepto por tener memoria limitada, podemos expresar la misma idea en relación a ellas: para que una computadora imite a otra, bastaría que le suministráramos a la primera, en calidad de datos en algún medio electrónico que ella pueda leer, la descripción de la otra computadora (que también podemos llamar "programa") y los datos sobre los cuales tendría que trabajar. <br/>NOTA 18 Recuérdese el análisis de Popper sobre la refutación de los enunciados universales: un solo caso basta para falsarlos. El enunciado que quería probar Hilbert era, desde luego, un enunciado universal, a saber: No existe ningún algoritmo que el superalgoritmo buscado –cualquiera que este sea, es tarea de los matemáticos el encontrarlo– no pueda probar. <br/>NOTA 19 Es decir, que imite su funcionamiento. <br/>NOTA 20 Esta llamada recursiva a PRUEBA es otra manera de decir que el programa vuelve a empezar su trabajo. <br/>NOTA 21 Expresado en quíntuplos de símbolos de la clase de los que, según se explicó antes, pueden representar a las máquinas Turing. <br/>NOTA 22 La máquina imitada corresponde a las instrucciones del lenguaje interpretativo, mientras que la acción de la máquina original corresponde al lenguaje de máquina, producto del alambrado o hardware de la computadora física. <br/>NOTA 23 Citado por Andrew Hodges (HODGES 83), de donde también se toma la mayor parte de la información incluida en este resumen biográfico. <br/>NOTA 24 Por ejemplo, descubriendo la serie infinita para la función tangente inversa. <br/>NOTA 25 La topología es una rama de las matemáticas que estudia los fenómenos de conectividad, es decir, las propiedades geométricas que no dependen de las medidas de las figuras. <br/>NOTA 26 Me parece ser esta palabra la mejor traducción del verbo inglés to scan. <br/>NOTA 27 Al cambiarse periódicamente la posición de los rotores, que por supuesto rozaban el uno con el otro, se variaban los caminos de tantas conexiones eléctricas implantadas en sus cuerpos como hay letras en el alfabeto. Es decir, cada posición de los rotores en su conjunto producía otros tantos caminos cruzados de la electricidad que iba desde el punto original de pulsación de cada letra hasta la forma iluminada que se tomaba como su correspondiente codificación. <br/>NOTA 28 En realidad, ninguna de esas dos máquinas ganó la carrera por producir la primera computadora en el sentido contemporáneo del término, es decir, máquina electrónica digital de propósito general, con programa almacenado de igual forma que los datos. El 21 de junio de 1948, en la Universidad de Manchester, Inglaterra, corrió el primer programa en una máquina de esta especie, desarrollada por F.C. Williams. La primera computadora americana fue BINAC, de Eckert y Mauchly. <br/>NOTA 29 El software de sistemas es el que concierne primordialmente a la producción de lenguajes de programación –verdaderas máquinas Turing virtuales– y sistemas operativos; es decir todo aquello que no sean programas de aplicaciones. <br/>NOTA 30 Al dividirse el huevo fecundado sucesivamente en otras células, llega un momento en que las nuevas células no son ya réplicas idénticas de la célula original. Alan creyó discernir en esta división hacia formas divergentes un proceso matemático digno de estudio, y se dedicó a él con resultados muy poco sustanciosos. <br/>NOTA 31 Es interesante consignar que en 1921 la Cámara de los Comunes votó en favor de extender la prohibición del homosexualismo para que cubriera a ambos sexos. Pero la Cámara de los Lores rechazó la reforma, con el argumento de que la sola mención del delito "podría darles ideas a las mujeres". <br/>Copyright © 1993-1997 Claudio Gutiérrez<br/> <br/>Pegado de <http://claudiogutierrez.com/La_informatica_como_ciencia_teorica.html> <br/>]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[Visual Studio .NET para Linux...]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_24.htm]]></link><description><![CDATA[se que no me vas a creer... ya tampoco lo creía ... he publicado un artículo sobre este t"truco".... revisa este link : <br/>http://www.interdata.cl/Artículos/DotNetNukesobreLinux/tabid/318/Default.aspx<br/><br/>y luego me envias tus comentarios...<br/><br/>saludos....]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[No estaba muerto andaba trabajando...]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_23.htm]]></link><description><![CDATA[No habí escrito nada, estaba concentrado en ponerme al día con los trabajos y remediar aquello de que en casa del herrero cuchillo de palo.<br/><br/>He estado trabajando en el sitio web de mi empresa, los invito a registrarse para consultas sobre temas de sql server y desarrollo... allí los espero ... <br/><a href="http://www.interdata.cl"> sitio de Interdata</a>]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[Una frase para el bronce]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_22.htm]]></link><description><![CDATA[Lo hermoso está en lo simple, como esos poemas chinos....<br/><br/>he aquí una buena ....<br/><br/>"Ser desarrollador no es un cargo, sino la consecuencia de desarrollar el software..." (wiikipedia en español)]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[Aunque no lo crean las ranas vuelan...]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_21.htm]]></link><description><![CDATA[aprender de los ranazos, errores, condoros, y otros.... un lenguaje directo del cuore.... reirnos de nosotros mismos para ganarnos la carrera, a nosotros mismos.... <br/><br/>Así que si ven volar las ranas dejenlas volar, y por qué no sumarse a la bandada.... <br/><br/>Aqui se engancho mi compadre.... bien... fuerza.... esto es muy dificil... lo fácil es pararse en el podio y hacer como que sabemos y dictar lecciones que nosotros mismos entendemos....<br/><br/>Aquí llegó el Manuel Contreras (el bueno...) y se lanzó a la blogósfera... Diario de un instructor.]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[El mejor debugger crosslanguage.....]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_20.htm]]></link><description><![CDATA[como de costumbre nos pillamos haciendo lo contrario de lo que decimos y predicamos : El cura Gatica predica pero no practica.<br/><br/>El mejor depurador es leer con paciencia el codigo fuente, si esta enredado y no lo entendemos está mal. El arte de programar es hacer las cosas simples.<br/><br/>Es como en las reuniones de pautas y desarrollo. Si no nos ponemos de acuerdo en 10 minutos, no lo sigamos intentando del mismo modo, alguien está equivocado, primero nos chequeamos nosotros, y luego chequeamos al interlocutor. la mayoría de las veces nosotros estamos equivocados... recomendación. desconectar el pensamiento, si piensas te equivocas.... deja que fluya... estudia filosofía china.<br/><br/>Aprende mirando a tus dicipulos. ellos te imitan.....]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[Como para escribir un torpedo... para continuar ...]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_19.htm]]></link><description><![CDATA[ÍTACA<br/>Cuando salgas de viaje para Ítaca,<br/>desea que el camino sea largo,<br/>colmado de aventuras, de experiencias colmado.<br/>A los lestrigones y a los cíclopes,<br/>al irascible Poseidón no temas,<br/>pues nunca encuentros tales tendrás en tu camino,<br/>si tu pensamiento se mantiene alto, si una exquisita<br/>emoción te toca cuerpo y alma.<br/>A los lestrigones y a los cíclopes,<br/>al fiero Poseidón no encontrarás,<br/>a no ser que los lleves ya en tu alma,<br/>a no ser que tu alma los ponga en pie ante ti.<br/><br/>Desea que el camino sea largo.<br/>Que sean muchas las mañanas estivales<br/>en que -¡y con qué alegre placer!-<br/>entres en puertos que ves por vez primera.<br/>Detente en los mercados fenicios<br/>para adquirir sus bellas mercancías,<br/>madreperlas y nácares, ébanos y ámbares,<br/>y voluptuosos perfumes de todas las clases,<br/>todos los voluptuosos perfumes que te sean posibles.<br/>Y vete a muchas ciudades de Egipto<br/>y aprende, aprende de los sabios.<br/><br/>Mantén siempre a Ítaca en tu mente.<br/>Llegar allí es tu destino.<br/>Pero no tengas la menor prisa en tu viaje.<br/>Es mejor que dure muchos años<br/>y que viejo al fin arribes a la isla,<br/>rico por todas las ganancias de tu viaje,<br/>sin esperar que Ítaca te va a ofrecer riquezas.<br/><br/>Ítaca te ha dado un viaje hermoso.<br/>Sin ella no te habrías puesto en marcha.<br/>Pero no tiene ya más que ofrecerte.<br/><br/>Aunque la encuentres pobre, Ítaca de ti no se ha burlado.<br/>Convertido en tan sabio, y con tanta experiencia,<br/>ya habrás comprendido el significado de las Ítacas. <br/><br/>Constantino Cavafis.<br/><br/>fuente:<br/><br/>http://www.fernandoflores.cl/blog/?p=265<br/>]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[Este fin de semana, no escribí nada ... ando electrónico...]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_18.htm]]></link><description><![CDATA[desde el viernes ando medio cucarro... no se si es el resfriado, medio mareado.... el domingo por la noche empiezo a ordenar la pega de la semana, reviso emails, borro la mayoría, reviso los RSS.... ordenando el humanware propio encuentro un buen link....<br/><br/>http://www.willydev.net/DesktopDefault.Aspx<br/><br/>La filosofía de Willy.<br/><br/>Sobre el Piso Ideológico y filosófico de este sitio: Los tips, Artículos, ejemplos, reseñas presentadas en este sitio han sido recopilados tras largas horas de navegación, lectura y duras jornadas de desarrollo. Este pretende ser un recurso gratuito sin ánimo de lucro. Considero que el conocimiento es una forma de empezar a ser libre por eso este sitio no poseerá banners de venta, ni membresías, tampoco esta interesado en vender su lista de correo, ya que de por si este actuar es a mi ver no tico. Serán siempre bienvenidas las donaciones que busquen el beneficio general y no el particular. Si por alguna razón encuentra material de su autoría y no desea que sea publicado en este sitio no dude en escribirme para que sea retirado. Este sitio se declara independiente y de dominio publico, todo su contenido puede ser duplicado y republicado bajo la filosofia de CopyLeft. Este sitio solo se hara responsable de la Informacion publicada en su dominio, No se hace responsable de lo que se divulgue a su Nombre, y/o utilizando sus logos o Colores distintivos.. Valdrá siempre mas un segundo de pie, que una vida de rodillas!!.  <br/><br/>]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[lapsus .....]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_17.htm]]></link><description><![CDATA[recuerdo que en la charla de interoperatividad me entusiasme hablandole de organizarnos en Internet linkeando nuestros blogs y el tema de estar vinculados via RSS..... y estaba hablando del sitio web para desarrolladores de aplicaciones windows, y luego no recuerdo si les di el link... aquí va por las dudas. <br/><br/>http://wdevs.com/]]></description><author><![CDATA[rolandoescobar]]></author></item><item><title><![CDATA[interoperatividad - charla 9 de junio.]]></title><link><![CDATA[http://blogs.ya.com/interdata/c_16.htm]]></link><description><![CDATA[gracias a todos los participantes en la charla, gracias por su participación y aportes a la discusión.<br/><br/>Espero que les pueda servir en algo para hacer mejores sistemas y ampliar el uso de las tecnologías que conocemos y gustan.<br/><br/>Subi la presentación. Recuerden que lo mas importante es el debato y no lo que uno escribe, que además son ideas que muchos han ido aportando. Lo mas interesante es lo que haremos y no lo que esté escrito, lastima no se pueden grabar las conversaciones y los comentarios de ustedes, pero bueno, ya tendremos esa posibilidad en el futuro.<br/><br/>Bienvenidos a la blogosfera si entusiasme a alguien con esta idea, nos interlinkeamos y mantenemos una discusión permanente y de aportes mutuos. Eso es mucho mas interesante que la charla misma. Invitenme a las charlas de ustedes... y nos seguimos encontrando una y otra vez en la vida diaria y laboral.<br/><br/>Suerte a todos.<br/>y gracias.<br/><br/><a target="_blank" href="http://blogs.ya.com/interdata/files/Interoperativiad.pps">Interoperativiad.pps</a>]]></description><author><![CDATA[rolandoescobar]]></author></item></channel></rss>
