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
|
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:
·
El
teleprocesamiento: 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.
·
El
tiempo 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 modular
y 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.
Buen material
ResponderEliminar