martes, 23 de octubre de 2012

Historia de los Instrumentos de cálculo
Precursores de los computadores digitales
Nacimiento de los computadores
Evolución de los lenguajes y de la metodología
Tecnología actual, tendencias y perspectivas

El nacimiento de la Computación, tal como la vemos hoy día, es recientísimo (apenas tiene medio siglo de edad), e incluso está en pleno desarrollo; por eso, junto al interés que despierta el origen de los instrumentos de cálculo y la informática, surge la necesidad de conocer, siquiera someramente, su alcance en la actualidad, así como la de imaginar las expectativas de futuro previsibles.
Precursores de los computadores digitales
La antigüedad
Desde que los hombres aprendieron a contar han necesitado apoyarse en el cálculo para manipular cantidades y buscar métodos para facilitarlo. Estos métodos fueron bastante rudimentarios hasta que los sabios y astrónomos hindúes recogieron la herencia greco - babilónica inventando la numeración posicional actual.

Con el desarrollo de esos métodos, fue necesario anotar números (ya Fueran considerados datos, cantidades auxiliares o resultados finales), apareciendo así los primeros instrumentos de cómputo: el uso de los dedos con tal objeto condujo a las primeras técnicas de cálculo digital; y parecida finalidad tuvo el uso de piedras (calculi, término latino del que procede la palabra cálculo) entre los romanos, el de los nudos (quipa) sobre una cuerda, o las muescas practicadas por diversos pueblos sobre varas de madera.
Desde entonces, los avances se han debido a progresos en los métodos, en los instrumentos y en la integración de ambos.

Dos utensilios de esta época merecen ser citados: la máquina analógica de Anticíteros, precursora de los calendarios astronómicos bizantinos; y especialmente el ábaco, que apareció entre el tercer y el primer milenio a. C., y puede ser considerado como la primera máquina digital, ya basada en la numeración posicional.

Antecedentes del cálculo mecánico

Los autómatas de reloj que todavía adornan los campanarios de las iglesias medievales (a partir de finales del s. XIII) son automatismos mecánicos diseñados para reproducir una secuencia fija de movimientos.

Precisamente se les ha llamado autómatas de programa interior para expresar así que la serie de sus movimientos está intrínsecamente descrita en su maquinaria.

La máquina de Pascal

Hacia la mitad del s. XVII, Pascal construyó una calculadora, capaz de sumar y restar, basándose en la pieza fundamental de los engranajes de los molinos: la rueda dentada. El funcionamiento de la máquina de Pascal puede compararse al de un cuentakilómetros: cada rueda posee diez posiciones y, a cada vuelta, provoca en la siguiente un arrastre de una posición.

Son directos descendientes de la máquina de Pascal las máquinas electromecánicas de oficina, hoy ya en desuso, y las UAL (unidad arigmetico logico) de los actuales computadores, cambiando las ruedas dentadas por circuitos electrónicos.

En 1673, Leibniz perfeccionó la máquina de Pascal, incorporándole la multiplicación (por adición repetida del multiplicando en diferentes órdenes decimales) y la división.

Las rudimentarias operaciones que facilitaban estos aparatosos instrumentos no compensaban su costosa construcción. Por ello, los progresos consistieron en perfeccionamientos menores hasta finales del siglo XIX, en que se supo incorporar a las máquinas de cálculo una aportación procedente de la industria textil.

La máquina de Babbage

Las máquinas de Pascal y Leibniz se consideran de programa exterior, debido a que las instrucciones son aportadas por el hombre junto con los datos, como ocurre con las calculadoras más simples. No obstante, sus instrucciones son demasiado simples como para poder considerarse un programa. Esta noción apareció cabalmente con la máquina de Jacquard, mecánico francés que en 1790 concibió la idea de un telar automático, capaz de tejer sus dibujos obedeciendo secuencias de instrucciones previamente registradas en tarjetas perforadas. El telar de Jacquard fue construido en 1800, y ha revolucionado la industria textil, pero el interés que tiene para nosotros es la aportación del verdadero concepto de programa exterior, tal como lo entendemos actualmente.

En el s. XIX, C. Babbage concibió su Máquina Analítica (1834), capaz de seguir las secuencias de instrucciones proporcionadas desde el exterior (como los datos), previamente registradas en tarjetas perforadas. El modus operandi de la máquina de Babbage consistía en ir leyendo tarjetas (descriptoras de operaciones) y ejecutándolas sucesivamente. La gran aportación de Babbage consiste en reunir las dos siguientes características:

· La flexibilidad de las calculadoras de Pascal y Leibnitz, que operan sobre distintos datos, pero carecen de automatismo, estando su velocidad siempre limitada por la lentitud de introducir los datos y las operaciones

· El automatismo de los autómatas de reloj, que no requieren la intervención humana, por lo que funcionan sin interrupción, aunque carecen de flexibilidad, ya que cada secuencia de movimientos requiere el diseño de una máquina distinta.

Babbage no pudo terminar la construcción de su máquina de diferencias. Repetidamente se ha sostenido que la complejidad de esta máquina rozaba probablemente los límites de la mecánica; sin embargo, estudios recientes [Swa93] demuestran que su diseño era completamente viable.
En el diseño de la máquina de diferencias se deñen los órganos esenciales de cualquier sistema computacional actual:

Entrada
de instrucciones y datos
Almacén
memoria
Unidad de Control
con su actual cometido
Molino
Calculador, U.A.L.
Salida
con su actual cometido


Por ello se le ha llamado “el Padre de la Computación moderna".

La tabulación mecánica

El desarrollo de los estados modernos fue lo que determinó la necesidad de procesar grandes volúmenes de datos: siguiendo un mandato constitucional en EE.UU., era necesario realizar un censo de la población cada diez años. En 1886 se hizo patente la imposibilidad de obtener los resultados del censo de 1880 antes de 1890. Consciente de esta situación, Hollerith, funcionario de la oficina de censos, ideó un sistema de tabulación de los datos basado en tarjetas perforadas similares a las del telar de Jacquard.

Con su sistema, Hollerith consiguió procesar el censo de 1890 en la cuarta parte del tiempo requerido para el de 1880. Su método fue tan eficiente que abandonó la Oficina de Censos, e inauguró una compañía de desarrollo de máquinas electromagnéticas (incorporando a su invento los avances en electromecánica y electricidad, construidos para perfeccionar el teléfono) que fue la precursora de la actual IBM.

Con el desarrollo de los computadores, las tarjetas perforadas pasaron a ser uno de los principales soportes de la información, situación que perduró hasta finales de los años setenta.

Nacimiento y evolución de los Computadores digitales

En la primera mitad del siglo XX, gracias a los avances en tecnología electrónica, se crearon las primeras calculadoras electromecánicas, que funcionaban a base de relés.

Al poseer los relés dos estados (abierto y cerrado), constituyen el elemento ideal para representar los dos dígitos de la numeración binaria (0 y 1), y también los dos valores lógicos (verdadero y falso) del álgebra de Boole. Por ello, los relés pueden considerarse elementos de memoria capaces de albergar resultados parciales. Además, estos instrumentos eran capaces de seguir secuencias de instrucciones almacenadas previamente sobre tarjetas perforadas.

Los primeros computadores que funcionaron a base de tecnología eléctrica fueron:

1. En 1943, el Harvard Mark I, con relés electromagnéticos.

2. En 1943, el Colosus I, considerado como el primer computador electrónico, a base de (200) válvulas, diseñado durante la II Guerra Mundial para descifrar los mensajes del encriptados alemán Enigma.

3. En 1946, el ENIAC,2 también a base de (18.000) válvulas, diseñado para confeccionar tablas balísticas.

A partir de los relés, la lenta mecánica fue poco a poco desplazada por la electricidad: el tubo de rayos catódicos, el transistor, los circuitos impresos y más tarde integrados, etc.

En realidad, estas máquinas estaban programadas al más bajo nivel (en términos de direcciones físicas de memoria, etc.) para desempeñar tareas muy específicas. Por ello, carecían por completo de versatilidad, debido a la dificultad que entrañaba reprogramarlas.

El modelo de von Neumann

En 1945, von Neumann dio el paso definitivo, incorporando a las máquinas de relés de entonces los dos siguientes conceptos:

1. Programa registrado, utilizando la memoria del calculador para almacenar el programa de instrucciones junto con los datos.

2. Ruptura (condicional) de secuencia, es decir, capacidad automática de decisión: dependiendo de cierto valor se ejecutaría una parte del programa u otra.

En 1945, von Neumann definió su modelo de computador, que es en esencia el que funciona en nuestros días, con dos características:

1. La secuencialidad en la transmisión y tratamiento de los datos

2. La codificación de instrucciones mediante impulsos electromagnéticos, reemplazando el cableado

Generaciones tecnológicas

Las máquinas basadas en el modelo de von Neumann se comercializaron en los años cincuenta (1952-55) y, desde entonces, la carrera ha sido y sigue siendo imparable. De esta década parten las siguientes generaciones tecnológicas:

Primera generación

Las válvulas electrónicas desplazaron a los relés, y los computadores adquirieron velocidad y potencia. Citamos entre los computadores de la primera generación el ENIAC, terminado en 1946, y el UNIVAC,4 primera máquina con la arquitectura de von Neumann. El modus operandi era el siguiente:

· Carga del programa y los datos, previamente perforados (T1)

· Ejecución (T2)

· Salida de los resultados (T3)

El tiempo total invertido es la suma T1 +T2 + T3. Las fases primera y tercera se llaman tiempos de ocio del procesador, porque en ellos permanecía inactivo.

Segunda generación

El aumento de potencia se debe a una innovación de los laboratorios Bell en 1948: el transistor. En cuanto al modo de trabajar, se introdujo la simultaneidad de las operaciones de cálculo con las de carga y salida, reduciéndose los periodos de ocio del procesador.

Para aumentar la velocidad de las operaciones de carga/salida, que retrasaban todo el proceso, se introdujo el uso de cintas magnéticas, más rápidas que las tarjetas perforadas. Este modo de trabajar se llama off-lining.

Tercera generación

Tecnológicamente, los avances en velocidad y potencia se deben a la incorporación de circuitos integrados (1952) y memorias de semiconductores (1971).

En esta generación el trabajo se caracteriza por explotar la simultaneidad del procesamiento con las operaciones de entrada/salida mediante la multiprogramación, consistente en que varios programas coexisten en memoria, y cuando uno de ellos debe realizar una operación de entrada/salida, el procesador no se detiene, sino que se dedica a otro programa. Así, la UCP nunca está ociosa habiendo trabajo por hacer, facilitándose además la asignación de prioridades a los programas que se encuentran a la espera.

Cuarta generación

Se incorporan nuevas tecnologías de fabricación y de integración de los componentes físicos entre sí (VLSI: Very Large Scale of Integration).

En cuanto a la explotación, se generalizan:

· Elteleprocesamiento: extensión del sistema de carga y proceso a terminales remotas, sacando partido de la asignación de prioridades.

· Los sistemas interactivos o conversacionales: los usuarios intervienen en el desarrollo de las sucesivas etapas, lo que trae consigo una mayor flexibilidad en la modificación y puesta a punto de programas.

· Eltiempo compartido, con lo que se mejora el tiempo medio de respuesta.

· Esta generación se corresponde cronológicamente con la difusión de los llamados computadores personales.

Evolución de los lenguajes y de la metodología

Mientras tanto, a partir de los años cincuenta, los lenguajes también emprenden la carrera de su evolución particular: para evitar la codificación de programas a bajo nivel, es preciso que sea la máquina la que adquiera lenguajes próximos al humano.

A la aparición del FORTRAN (FORmula TRANslator system) siguieron el Algol y el Cobol, intentando acercarse a un lenguaje universal.

La avalancha posterior de lenguajes y dialectos demostró que esas tentativas de universalidad resultaron vanas.

Por otra parte, la actividad de la programación experimentó en los años sesenta un desarrollo mucho más rápido que las técnicas empleadas en él; esta crítica situación se conoce como crisis del software. No existía una metodología de la programación: cada programador desarrollaba sus propios método o trucos para programar, y se consideraba a la programación más como un arte que como una técnica. Muy pronto surgió la necesidad de sistematizar la programación, desarrollando herramientas y hábitos de diseño metódicos y disciplinados para conseguir que los programas fueran correctos, eficientes y mantenibles. La tesis de la programación estructurada y las aportaciones de Dahl, Dijkstra, Hoare [DDH72] y el propio Wirth, vinieron a conferir a la programación un carácter de disciplina.

Aparece así la programación estructurada y modulary comienzan a aplicarse técnicas de diseño de algoritmos como el método de los refinamientos sucesivos. En este contexto nace el lenguaje Pascal, que fue creado con el propósito de enseñar a programar de una forma metódica y disciplinada. De hecho, se considera como un lenguaje ideal para entrar en contacto con la programación, por lo que es el primero que muchas universidades vienen enseñando durante años. Los nuevos lenguajes de programación que aparecen a partir de los años setenta incorporan estas técnicas, facilitando su desarrollo y aplicación.

Posteriormente, los lenguajes de programación han seguido evolucionando, y paralelamente las técnicas de desarrollo de algoritmos.

Tecnología actual, tendencias y perspectivas

A partir de la aparición del computador personal al principio de los años ochenta, la informática ha dejado de ser un coto cerrado de un grupo restringido de especialistas y se ha popularizado, alcanzando a usuarios sin ningún tipo de conocimientos previos en este área.

Hoy en día, la Informática está difundida por un sinfín de sectores: las finanzas, la gestión, la investigación, el control de procesos industriales (diseño, concepción y fabricación asistidas por computador), la educación, la edición, la composición musical, etc., y el número de usuarios que utilizan la informática en su trabajo o en su ocio sigue aumentando.

En los países desarrollados, cada día está más cercana la predicción de “un computador en cada puesto de trabajo y en cada hogar".

Por ello, se hace necesario facilitar la relación entre el usuario y el computador y disminuir el tiempo de aprendizaje, y para lograrlo se recurre a modelos más intuitivos que muestran al computador como un escritorio o mesa de trabajo, a las aplicaciones como tareas y los ficheros de datos como carpetas de documentos, mediante entornos de tipo gráfico.

A su vez, se ha dado una notable evolución tecnológica: los computadores son cada vez más potentes y más baratos. Se puede afirmar que esta evolución es más rápida en el campo del hardware que en el software. Aparecen computadores con enormes posibilidades, pero los programas capaces de aprovecharlas llegan con varios años de retraso.

La mayor capacidad de proceso está permitiendo la entrada de la informática en campos en los que su presencia era limitada, y la creación de actividades enteramente nuevas, como son:

1. Visión artificial: reconocimiento de formas.

2. Tratamiento de imágenes: corrección de aberraciones y defectos ópticos.

3. Realidad virtual: síntesis de imágenes virtuales estereoscópicas, películas virtuales.

4. Comunicaciones: enlaces mediante modem, correo electrónico, establecimiento de redes integradas de comunicaciones (datos, sonido y video).

5. Juegos: de rol, árcade, ajedrez.

6. Simulación de procesos.

7. Multimedia: procesamiento de datos, sonido y video integrados.

De hecho, todo el mundo coincide en calificar este enorme desarrollo de la informática como una verdadera revolución de la información. Como tal revolución, tiene importantes repercusiones de índole económica y social. La utilización de la informática genera un aumento de la productividad y de la calidad de la producción. En consecuencia, las empresas se ven obligadas a informatizarse para poder competir en el mercado. El aumento de la productividad puede significar también un aumento del desempleo o del ocio.

Para imaginar cómo serán los computadores del futuro, quizás lo más razonable sea identificar las limitaciones de los computadores actuales, e imaginar sus formas de superación.

Por lo pronto, la naturaleza física de los componentes electrónicos los limita en tamaño y en velocidad. De ahí que la investigación se oriente hacia la superación de las configuraciones tradicionales (basadas en el modelo de von Neumann) por otras arquitecturas y redes más avanzadas (paralelas, neuronales,...) llamadas a veces “arquitecturas de flujo de datos". En ellas, un programa no se compone de instrucciones que se ejecutan “de arriba abajo", sino de segmentos que pueden “resolverse" en cuanto los datos precisos estén disponibles. Los datos fluyen a través de complicadas redes, compitiendo por acaparar la atención de los recursos (principalmente los procesadores, que trabajan simultáneamente).

Inteligencia artificial

El ambicioso objetivo que se persigue es dotar a los computadores del futuro con una serie de capacidades que se engloban bajo el término genérico de Inteligencia Artificial. Esta disciplina se ocupa en la actualidad de las siguientes áreas de investigación:

· Lenguajes naturales: síntesis del habla, identificación del lenguaje hablado, traducción automática.

· Razonamiento y aprendizaje automáticos, sistemas expertos, demostración automática.

· Programación automática.

Todas esas capacidades requieren, en general, un mayor estudio del proceso cognitivo. En particular, todas ellas necesitan sustituir el empleo de datos por el de conocimientos, lo que plantea el difícil problema de su representación.

Las comunicaciones

Otro aspecto de la informática con tremendo auge en la actualidad es el de las comunicaciones, ya que se abre la posibilidad de acceder a la información de origen remoto, tratarla automáticamente y enviar los resultados a su lugar de origen.

Para ello se crean redes de comunicaciones de mayor o menor cobertura, desde una sala o un edición hasta redes nacionales o mundiales.

Las aplicaciones de la teleinformática están cada día más extendidas y ya casi empiezan a parecernos algo natural. Como ejemplos podemos citar desde el uso de los cajeros automáticos hasta la posibilidad de efectuar reservas de avión o de hotel desde puntos remotos, la consulta del catálogo de una biblioteca en una ciudad de otro país, el correo electrónico, etc.

No hay comentarios:

Publicar un comentario