domingo, 26 de julio de 2015

Aritmética de punto flotante

La aritmética de punto (o coma) flotante permite expresar valores muy altos o muy bajos de una manera reducida y normalizada. Cualquier número real puede expresarse de la siguiente forma:

Donde:
  • r: es el valor del número que se quiere representar.
  • s: el signo del número.
  • m: es la mantisa o significado, normalmente tiene un tamaño fijo y determina la precisión del número que se está representando. Este campo suele está normalizado de tal forma que sólo hay una cifra significativa antes del punto o la coma (de ahí lo de coma flotante).
  • b: es la base del sistema de representación, que será 10 en decimal, 2 en binario, etc.
  • e: es el exponente y representa el orden de magnitud del significado. Los valores máximo y mínimo de este valor determinan el rango de valores que se pueden representar.
Como la longitud de palabra de los procesadores y registros de los computadores tiene un tamaño fijo el uso de la notación en coma flotante se hace imprescindible. La norma IEEE 754 fija los requisitos mínimos que un sistema de coma flotante debe cumplir. Prácticamente todos los procesadores existentes siguen esta norma.

En esta entrada quiero hablar por primera vez del ingeniero e inventor español Leonardo Torres Quevedo. Aunque ya hablaré de su vida y de su extensa obra hoy haré hincapié en su aportación a la representación de números decimales en máquinas de cómputo analógicas.

Leonardo dedicó parte de su vida como inventor e ingeniero al diseño de máquinas analógicas de cálculo. Básicamente, estas máquinas eran calculadores mecánicas que permitían introducir cantidades mediante algún mecanismo móvil graduado. Leonardo ideó y perfeccionó este tipo de mecanismos para introducir cantidades a sus máquinas de cálculo.

Entre sus inventos caben destacar las máquinas analógicas, cuyo objetivo era resolver de manera continua y automática las raíces de diferentes tipos de polinomios. Estas máquinas estaban formadas por tres partes: el generador de cantidades, el generador de monomios y el generador de sumas.

El generador de cantidades también conocido como aritmóforo permitía representar números en una escala logarítmica. El aritmóforo constaba de dos discos. Uno de ellos estaba graduado de tal forma que la rotación de éste no era proporcional a la cantidad representada, sino que tenía una escala logarítmica. Esto permitía que la precisión fuera elevada para mantisas pequeñas y que no fuese innecesariamente grande para mantisas grandes. El otro disco graduado en una escala lineal avanzaba una marca por cada vuelta completa del otro disco. Este invento fue realmente un hito en la historia de la computación, ya que fue la primera vez en el que una máquina de cómputo permitía a los usuarios introducir números en escala logarítmica.

El generador de monomios también fue un invento muy original para la época. Se trababa de un mecanismo, conocido como husillo sin fin, que transformaba el logaritmo de un producto en la suma de logaritmos.

jueves, 16 de febrero de 2012

Alan Turing

Hoy me gustaría compartir un artículo publicado en la revista XLSemanal del diarío ABC sobre la vida de Alan Turing.

Aunque en los aspectos más técnicos el artículo no es muy bueno, sí que permite obtener una visión general de la enigmática vida del que hoy en día es considerado uno de los padres de la computación.

También me gustaría compartir una foto que tomé de la estatua de Alan Turing en los jardines de la calle Sackville en Manchester, muy cerca del edificio donde trabajó y enfrente del distrito gay de Manchester.

viernes, 6 de enero de 2012

IBM/360

IBM anunció el lanzamiento de la serie de computadores S360 el 7 de abril de 1964. Éste constaba de seis modelos con diferentes funcionalidades: desde el 360-30 que contaba con 64 kb de memoria principal y una frecuencia de reloj de cerca de un mega hercio, hasta el 360-75 con 512 kb y 5 mega hercios. El procesador y los módulos de memoria se estructuraban con una una longitud de palabra de 8 bits, adecuados para codificar caracteres, aritmética decimal y binaria y cálculos en punto flotante. Era posible direccionar la asombrosa cantidad de 24 Mb, aunque sólo en teoría, porque el máximo tamaño de memoria que alcanzaba era de 512 kb.



"Este evento marcó el fin de la era de la computación electrónica primitiva" fue lo que escribió un empleado de IBM de Alemania en un evento organizado para la conmemoración del 25 aniversario del lanzamiento de la serie S360. Antes de este lanzamiento, cada computador que se lanzaba al mercado poseía su propia estructura, periféricos y software. Por ejemplo, IBM mantenía seis diferentes familias de productos, y cada aplicación que se diseñaba tenía que ser reprogramada para cada una de las familias. Este hito marcaba el fin para este hándicap.

IBM dominaba el 65% del mercado, y con el lanzamiento de la arquitectura S360 dictó un estándar industrial que fue seguido entre el 80% y el 90% de los fabricantes. IBM aseguraba que era capaz de resolver cualquier tarea informática con sólo una arquitectura, por eso eligió como logotipo una rosa de los vientos y nombró a la serie con el número 360 que son los grados que cubren una circunferencia por completo.

IBM incluyó el termino arquitectura en el negocio de los ordenadores. Al fijar una arquitectura, se establecía una especificación funcional, que debían seguir todas las aplicaciones, mientras que el diseño y la implementación técnica podía evolucionar a medida que lo hiciese la tecnología. La meta de este concepto era establecer una clara distinción entre la estructura física y la lógica. La serie S360 no se basaba todavía en circuitos integrados, pero usaba circuitería híbrida: transistores, diodos, resistencias y capacidades adheridos a substratos cerámicos  y conectados usando la tecnología de láminas gruesas (Thick Film Technology).

El desarrollo de esta familia de computadoras se considera uno de los mayores proyectos industriales de la historia. Su coste superó al doble del coste del proyecto Manhanttan, en el que se desarrollo la primera bomba atómica. Se construyeron seis fábricas específicas para su ensamblado, incluyendo una en Francia y otra en Alemania. Se contrataron a unas 50.000 personas para fabricar los ordenadores en las líneas de producción. La revista de negocios Fortune bautizó al proyecto como el juego de cinco billones de dolares de IBM. El proyecto se desarrolló bajo la dirección del que entoces era el presidente de IBM: Tom Watson Junior, que era hijo de su fundador. En la siguiente fotografía se le puede ver el día del lanzamiento.



Antes del lanzamiento de esta familia de computadores, una pequeña compañía llamada Control Data Corporation había desarrollado con un equipo de 34 personas su computadoras CDC 6600, que en ese momento era el computador más grande y rápido del mercado. Tom sabía que esta máquina competiría directamente con las supercomputadoras más altas de la serie. Para ello IBM usó todo su poder y su propaganda para lanzar una campaña de descrédito y consiguió que los clientes depositaran su fe en la compañía. Esto no sentó nada bien a Control Data Corporation que demandó a IBM por prácticas mercantiles injustas. IBM tuvo que pagar 100 millones de dolares a CDC, una cantidad irrisoria para el gigante.

Paradógicamente, el éxito de IBM se convirtió casi en su propia ruina, ya que los supercomptadores que establecía esta serie, basados en un procesado de datos centralizado, dieron paso a lo largo de la década de los ochenta a los ordenadores personales. Finalmente IBM entró en este negocio justo a tiempo, gracias a la ayuda de Microsoft.

El sistema operativo OS/2, diseñado para PCs, es un descendiente del OS/360. El OS/360 fue en su momento el software más complejo escrito hasta el momento, con un millón de líneas de código. Se rumoreaba que también tenía cientos de fallos de programación y que por cada bug que se solucionaba uno nuevo salía a la luz.

martes, 25 de octubre de 2011

John McCarthy

Ayer, 24 de octubre de 2011, a los 84 años de edad moría el estadounidense John McCarthy.

John McCarthy fue el precursor del termino Inteligencia Artificial. Describió el lenguaje de programación Lisp, un lenguaje basado en el cálculo lambda muy usado en Inteligencia Artificial.

Trabajo en el MIT y en la Universidad de Stanford y en 1971 fue galardonado con el premio Alan Turing por sus aportes al campo de la Inteligencia Artificial.



jueves, 20 de octubre de 2011

¿Quién era Dennis Ritchie?

He encontrado un enlace donde aparece un gráfico muy representativo de la cantidad de lenguajes, tecnologías, sistemas operativos y compañías que han surgido a partir de la obra de Dennis Ritchie. Seguramente hayan surgido más ideas y empresas, pero en este gráfico se pueden ver las que más transcendencia han adquirido y así entender la importancia de su obra,


jueves, 13 de octubre de 2011

Dennis Ritchie y Steve Jobs

El mes de octubre de 2011 pasará a la historia de la informática como un mes teñido de negro, ya que, en un período de menos de una semana han muerto dos figuras relevantes del mundo de la informática. El 5 de octubre perdía la vida tras una larga enfermedad Steve Jobs a los 56 años de edad y el 5 de octubre, también tras una larga enfermedad, moría Dennis Ritchie, un mes después de su 70 cumpleaños. Ambos eran estadounidenses.

Dennis Ritchie formó parte de dos hitos clave en la historia de la informática: participó en el proyecto que desarrolló el sistema operativo UNIX y en la implementación del lenguaje de programación C. Es coautor de uno de los libros más extendidos de este lenguaje: El lenguaje de programación C. En 1983 recibió el premio Alan Turing, máximo galardón en el campo de la informática, por sus aportes a la teoría de sistemas operativos.



Steve Jobs fue cofundador de la empresa Apple. Adquirió fama mundial tras lanzar al mercado el ordenador personal Macintosh 128K, que marcó un hito al ser uno de los primeros ordenadores que contaba con ratón e interfaz gráfica de usuario, aunque ninguna de estas ideas eran originales de Apple. Quizá, pasará a la historia por la revolución que llevó a cabo a su vuelta a Apple con el lanzamiento del ipod e itunes y sobre todo por el iphone, donde se adelantó una generación en esta tecnología y pilló a los demás fabricantes con el pie cambiado.

jueves, 22 de septiembre de 2011

Zuse Z4

La historia que voy a contar hoy comienza en Berlín a mediados de los años treinta del siglo pasado. El protagonista es un joven ingeniero civil llamado Konrad Zuse que se plateó la posibilidad de construir máquinas de cálculo controladas por programa. Como él mismo confesó más tarde, su principal empuje para dar este paso fue que era demasiado perezoso para hacer pesados cálculos estadísticos. Cuando todavía vivía con sus padres, diseño la Z1, una máquina mecánica que nunca funcionó realmente. Unos pocos años después, mostró su máquina Z3 ante un puñado de dirigentes de los servicios de investigación de la aviación alemana. Esta máquina era un dispositivo electromecánico basado principalmente en relés. Los programas se introducían en rollos de película de 35 mm perforados. Esta presentación, que tuvo lugar el 12 de Mayo de 1941, es para muchos el día del nacimiento del ordenador, ya que era programable y completamente automática. Zuse formó su propia empresa, la primera empresa en comercializar ordenadores, dejando su trabajo como ingeniero en la fábrica de aviones de Henschel en Dessau.

En 1941 Zuse desarrolló la Z4, como una síntesis de la Z1 y la Z3. La Z4 era un dispositivo electromecánico en el que las cuatro operaciones básicas, el cuadrado y la raíz cuadrada estaban implementadas de forma cableada. Todas ellas usaban notación de coma flotante de 32 bits. La arquitectura del procesador desarrollado por Zuse era más avanzada que otros diseños desarrollados en otros países, de los cuales nunca tuvo conocimiento debido al aislamiento que sufrió Alemania durante la Segunda Guerra Mundial. La memoria almacenaba 64 números de 32 bits y era un dispositivo mecánico artesano basado en pines y agujeros. El control del programa se realizaba por medio de dos lectoras de cintas, una para el programa principal y otra para las subrutinas. Más tarde incorporó saltos condicionales. Para el operador diseñó una mesa con interruptores y lámparas. La Z4 fue la primera computadora en ser vendida.

Debido a los bombardeos que sufrió Berlín la máquinas Z1 y Z3 quedaron sepultadas bajo los escombros y se perdieron, aunque en la actualidad se conservan copias en algunos museos. Mientras tanto, Zuse y unos 20 asistentes continuaron trabajando en la Z4 en un sótano. En los últimos días previos a que Berlín fuese ocupado por los rusos, Zuse consiguió llevar en camión la máquina a un pueblo de los Alpes suizos y escapó al sur con su mujer y asistentes. En 1946 se mudó con su familia a Hopferau donde continuó con el diseño de su máquina mientras hacía demostraciones a los vecinos de dicha localidad.

En 1949, Zuse tuvo una interesante visita de un profesor de Facultad de Matemáticas Aplicadas de la Universidad Politécnica de Suiza. El profesor, llamado Eduard Stiefel, dictó una ecuación diferencial a Zuse, éste perforó un rollo de película con un programa, la introdujo en la Z4 y ésta devolvió el resultado correcto.

La Universidad Politécnica de Suiza se ofreció a alquilarle la Z4 por cinco años a cambio de 30.000 francos suizos. Zuse se hizo con un local en Neukirchen (Suiza) para su empresa, donde mejoró el funcionamiento de la Z4. Seis meses después viajó a Zurich, donde realizaría la ceremonia de presentación de su máquina. Unos minutos antes de que hiciese la presentación, la Z4 soltó algunas chispas e inundó la sala de olor a quemado. Zuse se arremangó, realizó un par de soldaduras y la demostración fue todo un éxito.

La Z4 se utilizó para el diseño de aviones y turbinas o problemas de óptica entre otros muchos usos. Debido al ruido que generaba su funcionamiento día y noche, Zuse bromeaba asegurando que había llevado vida nocturna a la tranquila Suiza.

Ambros Speiser, un joven ingeniero, fue el responsable del manejo de la máquina. Según sus propias palabras, la Z4 era interactiva en todos los sentidos de la palabra: los matemáticos podían ver los resultados intermedios y hasta se la podía oír procesando en los armarios de los relés.

Los aliados se sirvieron del uso de algunas computadoras, como la ENIAC usada por Von Neumann para calcular trayectorias de proyectiles o modelos climatológicos para evitar desastres aéreos; o las computadoras diseñadas por Alan Turing para descifrar los códigos alemanes cifrados por la máquina Enigma. ¿Qué hubiese pasado si Hitler hubiese centrado su atención en las máquinas de Zuse?