3.- Historia de los Computadores
hasta la 2º Guerra
Mundial
Desde que el hombre tuvo
la necesidad de representar cantidades, comenzó una
búsqueda para poder resolver
cálculos mas rápidamente y con mayor
precisión, esta necesidad se hace cada vez mas imperiosa
debido al crecimiento de situaciones que necesitaban una
respuesta rápida y exacta.
Si bien los cambios fueron en un principio muy
esporádicos, esos tiempos se iban acortando a medida que
el hombre
crecía en conocimientos de todo tipo, entonces crea
elementos que le ayudan a ejecutar tareas de cálculos
mucho más rápidas.
Leonardo Da Vencí (1459 – 1519) desarrollo un
sistema de
cálculo
mecánico, pero solo fue diseñado en papel,
jamás se construyo el modelo.
Luego de varios años Blaise Pascal (1623 –
1662), construyo una maquina sumadora accionada por engranajes,
para poder aliviar el trabajo de
los recaudadores de impuestos (su
padre era el motivo real de la máquina, ya que era
recaudador).
Consiste en dos contadores con engranajes superpuestos,
el de arriba cumplía la función de
acumular el resultado y el contador inferior servia para ingresar
los datos a
sumar.
La suma de dos números A+B se realizaba en primer
lugar poniendo todas las rueditas en cero, girándolas
hacia la derecha. Echo esto se comenzaba agirar las rueditas
hacia la izquierda, así se tomaba el numero "A" que se
repetía en el acumulador, nuevamente se giraban las
rueditas hacia la derecha hasta hacer cero, este sentido no
afectaba al acumulador, el cual marcaba por ahora el numero "A";
girando las rueditas nuevamente a la izquierda formaba el numero
"B".
El resultado se obtenía cuando se giraban hacia
la izquierda las rueditas movían también las del
acumulador, esto hacia que se produjera el acarreo y quedaba el
resultado de la suma escrito en el acumulador.
Si el numero "A" es 1515 y el numero "B" es 1819, se
ingresaba primero el numero "A" (1515), este quedaba en el
acumulador (las rueditas tanto del acumulador como las que
ingresaba los datos tenían marcado los números del
cero al nueve), luego la unidad del numero "B" que en este caso
seria el "9", se mueve entonces nueve posiciones la unidad del
acumulador, que estaba en el 5 pasa por el cero moviendo la
ruedita de la decena del acumulador una posiciona, por lo tanto
tenemos en la unidad un "4" y en la decena el "2".
Luego ingresamos el numero de la decena para "B" siendo
el "1" , lo que hace mover de la posición "2" en la que se
encontraba a la "3" en el acumulador, pero esta suma no tiene
acarreo por lo que no se mueve la centena del acumulador,
ingresamos en este caso la centena del numero "B" que en es el
"8" y por consiguiente se mueve ocho posiciones la centena del
acumulador.
La cual esta en "5" y pasa al "3", pero antes mueve una
posición la unidad de mil debido al acarreo que produce
este movimiento,
por lo que nos quedaría en la unidad de mil en el
acumulador el numero "2" , pero todabia como ultimo ingreso nos
queda la unidad de mil del numero "B" que es el numero "1", lo
que inmediatamente se refleja como el "3" en la unidad de mil del
acumulador, en definitiva el resultado de la suma de A+B es igual
3334.
Esta explicación nos permite hacer un
parangón con el modelo de VON NEUMAN el cual reflota la
idea de colocar en memoria los
resultados para poder realizar con mayor rapidez los
cálculos.
La resta se hacia por el complemento a la base, o sea,
se sumaba el minuendo de la resta, a la diferencia entre el
numero mayor mas próximo y de un digito mas que el
minuendo y el sustraendo de la resta original, un ejemplo seria:
750 – 56 (resta original) => 1000 – 56 = 944, por
lo tanto se sumaba 750 + 944 = 1694, al resultado se desecha el
numero uno de la izquierda y se tomaban los números
restantes como el valor de la
resta: "750 – 56 = 694",desde ya la operatoria es igual a
la detallada anteriormente.
El problema de esta máquina, era su lentitud,
comparada con el cálculo manual de la
época y además de su costo tan
elevado. La Pascalina fue mejorada por Gottfried Wilhelm Leibniz
(1646 – 1716), desarrollo una maquina que además de sumar
y restar, también multiplicaba, dividía y hallaba
la raíz cuadrada. Su aporte fundamental para el
funcionamiento de los computadores de la actualidad, fue sin duda
el Sistema
Binario.
Con la invención de las tarjetas
perforadas para los telares automáticos, que realiza
Joseph Marie Jacquard (1752 – 1834) hace un aporte para la
programación en 1808.
El observo las tareas repetitivas que requería la
producción de telas, entonces crea la
tarjeta perforada para guardar las tareas repetitivas, con estas
eran detectadas mecánicamente, produciendo un
desplazamiento justo de las guías del hilado, por tal
causa podía solamente un operario controlar el telar y
realizar difíciles entramados de telas, lo que devino en
grandes problemas que
produjo despidos debido a que ya no se necesitaba tantos
operarios para controlar un telar.
Entre 1823 y 1832 es cuando el matemático ingles
Charles Babbage (1792-1871), elaboro los principios de
la computadora
digital moderna, él y la condesa Ada Byron (Hija de Lord
Byron, poeta ingles), creando dos maquinas de calcular, la
primera era la denominada "Maquina de las Diferencias" y la
siguiente la "Máquina Analítica.
La "Máquina Diferencia" tenia contadores
mecánicos (tipo rueda), cada contador almacenaba un digito
decimal, los registros
ingresados se sumaban con el principio mecánico de "La
Pascalina" (su funcionamiento fue descrito en este capitulo), los
resultados obtenidos s imprimían en una chapa que era
perforada por agujas de acero.
Esta maquina fue pensada para ecuaciones de
2º grado con 8 cifras decimales, que se utilizaba para
construir tablas, es por ello que el gobierno ingles
subvenciona la instigación y construcción de la misma, ya que le
urgía tener las tablas de navegación, que por aquel
entonces eran de un uso muy frecuente para la comercialización de los productos.
Luego logra nuevamente conseguir fondos para construir
la segunda maquina que la llamaría "Má
quina Analítica", la que nunca pudo construir
físicamente ya que la precisión que se necesitaba
era tan importante, que los materiales con
los que se contaba en ese tiempo no
servían.
Pero si termino su diseño
en papel, el objetivo de la
maquina era poder realizar cualquier tipo de calculo, era una
maquina de propósito general.
La "Máquina Analítica" esta compuesta de
cinco partes:
a.- Dispositivo de Entrada: Tarjeta
Perforada.
b.- Unidad de Almacenamiento:
Un tablero donde se registraban los dígitos.
c.- Procesador:
Dispositivo mecánico.
d.- Unidad de Control:
Dispositivo en forma de cilindro con filamentos y
ejes.
e.- Dispositivos de salida: Chapa perforada preparada
para la imprenta.
Las cinco partes detalladas se encuentran en las
computadoras
actuales, es por ello que a este inventor inglés
se lo denomina "El padre de la computación".
En 1890 Hermann Hollerith (1860-1929), invento un
método de
codificar datos en tarjetas mediante perforaciones donde se
inscriben los datos numéricos o alfabéticos. Este
sistema sirvió para trabajos estadísticos, como el
censo de ese mismo año.
La máquina de Hollerith leía los orificios
de la tarjeta (información), consistía en un
alambre que pasaba a trabes de las perforaciones dentro de una
copa de mercurio por debajo de la tarjeta, cerrando el circuito
eléctrico.
Esto ejecutaba los contactares mecánicos y
ordenaba los recipientes de las tarjetas tabulando así la
información.
Hollerith, luego de tres años (1893), pudo
gracias a la maquina que diseño, terminar con el censo, ya
que si debía que hacerlo manualmente terminaba en el
año 1900, cuando se tenia que realizar nuevamente el
censo.
Funda en 1896 la empresa
Tabulating Machina Company, de venta de tarjetas
y maquinas la cual mas tarde se funcionaria con IBM
(International Business Machines Corporation).
La empresa formada
de la fusión fue
llamada Computing Tabulating Recording Corporation (CTR), pero el
14 de febrero de 1924 CTR cambió su nombre a International
Business Machines Corporation (IBM).
Las empresas
originarias de CTR fabricaban una amplia gama de productos, desde
sistemas para el
control de empleados hasta equipos automatizados para el corte de
carne.
Además fabricaban equipos para la gestión
de tarjetas perforadas, que serían un elemento clave de
los futuros computadoras. Con el tiempo, CTR se centraría
en estos equipos y dejaría a un lado la fabricación
del resto de productos.
El advenimiento de la válvula electrónica en 1907, inventada por Lee DE
FOREST (1873-1961), la llamó audión, y que hoy el
tríodo.
Este tubo, revolucionó totalmente la
electrónica.
El audión cambia la construcción de las
maquinas de calcular que hasta ese momento eran electromecánica, pasaron a tener una mas
electrónica, lo que implica que el desarrollo se torna mas
vertiginoso ya que estos elementos le preemitían mejorar
los procesos de
calculo, haciéndolos mas rápidos y con mayor
capacidad de resolución.
Esto promueve desarrollos en paralélelo en
Europa (Inglaterra y
Alemania) y
América
(EEUU), siendo todos independientes entre si, pero estos proyectos
tendían es su mayoría a poder procesar
información con mayor rapidez y además procesando
grandes cantidades de información en forma mas
eficientemente posible.
En 1939 la primera computadora
electrónica digital se desarrolló en la Universidad del
Estado de Iowa
por Dr. John V. Atanasoff y Clifford Baya. El prototipo,
llamó el Atanasoff Berry Computer (ABC), fue la primera
máquina en hacer uso de tubos al vacío como los
circuitos de
la lógica.
Entre 1936 y 1941 Konrad Zuse (1910 – 1957),
construye una computadora binaria programable, el modelo Z3 tenia
un programa de
control que hacia uso de los binarios, pero fue destruida en 1944
por la guerra, su contribución seria en realidad el
"Plankalkul" (Plan de Calculo),
siendo este considerado el primer lenguaje de
programación algorítmica.
El "Z-3," como se llamó, usaba retardos
electromagnéticos y era programada usando películas
agujereadas, su sucesor, el "Z-4," fue contrabandeado fuera de
Berlín cuando Zuse escapo de los Nazis en Marzo de
1945.
El gobierno ingles debido a su urgencia que le provocaba
la 2º Guerra Mundial,
apura el desarrollo de sistemas de computación que
venían gestándose con anterioridad, esta responsabilidad recae sobre Alan Turíng
(1912-1954), y ayudado por John Von Neumann
(1903-1957), construyeron la "Collosus", una enorme computadora
con el propósito de poder descifrar los mensajes por
radio del
ejercito alemán. Se desarrolló como una contraparte
al Enigma, La máquina codificación de Alemania.
El Coloso tenía cinco procesadores,
cada uno podría operar a 5,000 caracteres por segundo. Por
usar registros especiales y un reloj interior, los procesadores
podrían operar en paralelo (simultáneamente) que
esta le daba al Coloso una rapidez promedio de 25,000 caracteres
por segundo.
Esta rapidez alta era esencial en el esfuerzo del
desciframiento de códigos durante la guerra. El plan del
Coloso era quedar como información secreta hasta muchos
años después de la guerra.
Enigma, La máquina codificación de
Alemania. Entre sus diseñadores estaban Alan M. Turing,
diseñador de la Máquina Turing, quien había
escapado de los Nazis unos años antes.
Durante la Segunda Guerra
Mundial, la subsidiaria alemana de IBM, Dehomag,
suministró al régimen nazi perforadoras de tarjetas
y equipos relacionados. Hay quien sostiene que el Holocausto
nazi no hubiera sido posible sin dichos equipos, mientras que IBM
afirma que no tenía control sobre Dehomag durante la
Segunda Guerra
Mundial. Por estos hechos, IBM tienen en la actualidad una
demanda
pendiente para esclarecer lo sucedido:
"En respuesta a las alegaciones publicadas en el
libro IBM and
the Holocaust, así como en una demanda legal en contra de
la compañía, IBM fijó su posición
frente al tema en un comunicado de prensa que
aquí reproducimos.
En febrero del año 2001, IBM fijaba su
posición frente al libro del autor Edwin Black, IBM and
the Holocaust y de una demanda que en forma simultanea habia sido
presentada en contra del gigante azul.
Dicha nota de prensa daba inicio al plantear que "IBM considera
aberrantes las atrocidades cometidas por el régimen Nazi y
condena cualquier acción
que pudiera contribuir a estos indescriptible actos. El uso de
los equipos Hollerith por los Nazi ha sido conocido por
décadas y la subsidiaria de IBM Alemania –Deutsche
Hollerith Maschinen GmbH (Dehomag)– durante los años 1930
suministró equipos Hollerith.
Así como sucedió con cientos de
compañías extranjeras que hicieron negocios en
Alemania durante ese tiempo, Dehomag estuvo bajo el control de
las autoridades Nazi antes y durante la II Guerra Mundial. Es
también ampliamente conocido que Thomas J. Watson Sr.
recibió y posteriormente repudio y devolvió una
medalla que le fue presentada por el gobierno Alemán, en
reconocimiento de su rol en las relaciones económicas
globales. Estos hechos bien conocidos, aparentan ser la base
primordial de estas recientes alegaciones."
El comunicado de prensa continuaba: "IBM no tiene mucha
información o registros acerca de Dehomag. La
mayoría de los documentos fueron
destruidos o extraviados durante la guerra. La totalidad de los
documentos que perduraron fueron colocados a la
disposición del dominio
público hace ya un tiempo, de manera de asistir a la
investigación y al estudio
histórico.
Estos documentos fueron transferidos desde las oficinas
de la compañía en Nueva York y en Alemania, a la
Universidad de Nueva York y Hohenheim University en Stuttgart,
Alemania – – dos respetadas instituciones
que cuentan con las credenciales académicas en esta
área. En la actualidad, expertos académicos
independientes en estas universidades son los custodios y
analistas de estos registros y supervisan el acceso de
investigadores e historiadores a estos documentos."
En esta primera nota de prensa la empresa aseguraba que "IBM
continua interesada en cualquier nueva información que
contribuya al entendimiento de esta trágica era y espera
que los estudiosos e historiadores apropiados puedan verificar la
misma.
Posteriormente, en marzo del año 2002, IBM
incorporó nuevas informaciones al comunicado original
donde se planteaba que desde la publicación del libro, las
investigaciones y conclusiones a las que
había llegado el autor, habían sido
cuestionadas.
Una crítica
publicada en The New York Times, aseguraba que el caso estaba
extensamente documentado y sin embargo no demostraba que IBM
tuviera responsabilidad alguna en las atrocidades que
habían sido llevadas a cabo. Asimismo, otras evaluaciones
realizadas al libro por un experto académico aseguraban
que las acusaciones eran "inverosimiles" y el libro
"deplorable".
"Adicionalmente, –continua el comunicado– el Sr. Black asevera
que IBM ha retenido materiales relacionados con esta época
en sus archivos. No hay
fundamento en tales aseveraciones y deploramos el uso de dichas
afirmaciones para vender libros."
Para finalizar, el segundo comunicado expone que "IBM
continuará cooperando y atendiendo a las investigaciones
legítimas. IBM ha entregado los archivos relacionados a
universidades acreditadas y el Sr. Black esta al tanto de ello, a
pesar de asegurar lo contrario. La compañía ha
hecho enfasis en que si algún documento relacionado con
esta epoca fuese encontrado, IBM los pondría a
disposición de las partes interesadas."
Según aparece en el primer comunicado, la demanda fue
desestimada.."
También durante la Segunda Guerra Mundial, IBM
comenzó a investigar en el campo de la informática. En 1944 terminó de
construir la computadora Automatic Sequence Controlled Calculator
(Calculadora Controlada de Secuencia Automática),
también conocido Mark I. El Mark I fue la primera
máquina capaz de ejecutar cálculos complejos
automáticamente, y estaba basada en interruptores
electromecánicos.
El 9 de septiembre de 1945, a las 3: 45 pm, el primer
caso real de un error que causa un malfuncionamiento en la
computadora fue documentado por los diseñadores del Mark
II. El Mark II, sucesor al ASCC Mark que se construyó en
1944, experimentó un falló. Cuando los
investigadores abrieron caja, hallaron una polilla. Se piensa ser
el origen del uso del término "bug" que significa insecto
o polilla en inglés.
Grace Murray Hopper (1906-1992), oficial de la Marina
estadounidense, matemática
y precursora en el proceso de
datos. Fue destinada al laboratorio de
cálculo Howard Aiken en la Universidad de Harvard, donde
trabajó como programadora en el Mark I (1944), la primera
computadora a gran escala de
Estados
Unidos, precursora de los computadoras o computadoras
electrónicas.
Muy conocida por su trabajo en la
Eckert-Mauchly Computer Corporation, durante las décadas
de 1950 y 1960 Hopper se acreditó por el invento del
primer compilador (1952), un programa que traduce las
instrucciones con palabras en inglés al lenguaje
máquina de una computadora.
Ayudó a desarrollar el lenguaje de
programación Flow-Matic (1957) y el lenguaje de
programación COBOL
(1959-1961), orientado a los negocios para UNIVAC, la primera
computadora electrónica comercial.
4.- Modelo de Von
Neumann
En primer lugar describiremos brevemente la historia de
John Louis Von Neumann (1903-1957) el cual es considerado el gran
genio de la computación.
Este científico matemático ocupa un lugar
en la historia debido al los importantes aportes realizados a los
computadores de primera generación.
Nació en Budapest, Hungría, se
recibió de ingeniero en Química en 1925 entre
Berlín y Zurich, terminados estos estudios, volcó
todos sus esfuerzos al estudio de las matemáticas.
En 1943 fue cuando se intereso por primera vez en la
computación tras un viaje a Inglaterra le comento a Voblen
que necesitaba una maquina que se encargara de los
cálculos mas complejos. Aunque comenzaron con IBM no le
satisfizo para el Proyecto
Manhattan.
Von Neumann comenzó a buscar proyectos de otros
lados y en 1944 solo había algunos proyectos, pero solo se
contacto con tres de ellos, Harward Aiken en Harward, George
Stribitz en Bell y Ian Schiltt en la universidad de Columbia,
estubo en contactos con ellos sin involucrarse totalmente con
esos proyectos, como si lo hace con ENIAC en la cual esta bajaban
William Mauchly y John Presper Eckert.
El modelo de Von Neumann esta compuesto por la unidad
central de procesamiento en la cual se encuentra la unidad de
control y la unidad aritmética lógica y dentro de
esta ultima se encuentra el acumulador, además tiene una
memoria y las unidades de entrada y salida.
Su funcionamiento es de la siguiente forma: los datos
ingresan al procesador por medios de la
unidad de entrada se almacena y la información se obtiene
luego del proceso, que manda el programa empleando la unidad de
control a través de la unidad de salida, o sea, el dato
entra a la unidad central y lo toma la unidad de control, que
define que se debe hacer, si es un calculo se lo envía a
la UAL (Unidad Aritmética lógica) esta procesa los
datos obteniendo su resultado, luego lo vuelve a pasar a la
unidad de control, esta la envía a la memoria y
luego se muestra por
pantalla.
Estas son las características principales del
Modelo de Von Neumann, quien proporción a los
científicos de aquellos entonces la idea de acumular el
resultado en la memoria para poderlo reutilizar en caso de ser
necesario.
Esta idea revoluciona el mundo de la informática
debido a que se podía agregar un lenguaje de
programación donde le daría a la computadora una
autonomía mucho mayor.
Hoy en día, la mayoría de las computadoras
están basadas en esta arquitectura,
aunque pueden incluir otros dispositivos adicionales, (por
ejemplo, para gestionar las interrupciones de dispositivos
externos como ratón, teclado,
etc.).
5.-
Generación de Computadores y Desarrollo del
Software
Para comenzar, veremos que el común denominador
por los menos en las primeras cuatro Generaciones de Computadores
es por el desarrollo histórico del hardware.
Las generaciones de
computadoras se pueden dividir en cinco, de las cuales
detallaremos a continuación:
a.- Primera Generación de Computadores
b.- Segunda Generación de Computadores
c.- Tercera Generación de Computadores
d.- Cuarta Generación de Computadores
e.- Quinta Generación de Computadores
a.- Primera Generación de
Computadores
En la primera generación de computadores, eran
enormes salas donde se encontraba la maquina que median al medios
en algún caso 15 m, de imaginarnos no nos caeberia en la
cabeza si quiera.
Comienza en los años 50 hasta unos diez
años después, y en la cual el alma de estos
equipos era a base de bulbos o tubos de vacío, y la
comunicación era en términos de nivel mas bajo
que puede existir, que se conoce como lenguaje de máquina.
Estas máquinas
eran así:
- Estaban construidas con electrónica de
bulbos - Se programaban en lenguaje de
máquina
Las computadoras de la primera Generación
emplearon bulbos para procesar información. Los operadores
ingresaban los datos y programas en
código
especial por medio de tarjetas perforadas.
El almacenamiento interno se lograba con un tambor que
giraba rápidamente, sobre el cual un dispositivo de
lectura/escritura
colocaba marcas
magnéticas. Esas computadoras de bulbos eran mucho
más grandes y generaban más calor que los
modelos
contemporáneos.
Un ejemplo muy claro es el computador
ENIAC de 1947 fue la primera en que su diseño era
totalmente electrónico contaba con 18.000 tubos al
vació, los cuales terminaban siendo siempre una dificulta
ya que legrado de averías de los mismos era muy alto, casi
por calculo había que estar cambiando un tubo de
ellos.
Eckert y Mauchly contribuyeron al desarrollo de
computadoras de la 1era Generación formando una Cia.
privada y construyendo UNIVAC I, que el Comité del
censó utilizó para evaluar el de 1950.
La IBM tenía el monopolio de
los equipos de procesamiento de
datos basándose en tarjetas perforadas y estaba
teniendo un gran auge en productos como rebanadores de carne,
básculas para comestibles, relojes y otros
artículos; sin embargo no había logrado el contrato para el
Censo de 1950.
Comenzó entonces a construir computadoras
electrónicas y su primera entrada fue con la IBM 701 en
1953. Después de un lento pero excitante comienzo la IBM
701 se convirtió en un producto
comercialmente viable.
Sin embargo en 1954 fue introducido el modelo IBM 650,
el cual es la razón por la que IBM disfruta hoy de una
gran parte del mercado de las
computadoras. La
administración de la IBM asumió un gran
riesgo y
estimó una venta de 50 computadoras.
Este número era mayor que la cantidad de
computadoras instaladas en esa época en E.U. De hecho la
IBM instaló 1000 computadoras. El resto es
historia.
Aunque caras y de uso limitado las computadoras fueron
aceptadas rápidamente por las Compañías
privadas y de Gobierno. A la mitad de los años 50 IBM y
Remington Rand se consolidaban como líderes en la
fabricación de computadoras.
b.- Segunda Generación de
Computadores
En la segunda generación comienza con el
advenimiento del transistor esta
va desde finales de los años 50 que los transistores
reemplazaron a los bulbos en los circuitos de las
computadoras.
Las computadoras de la segunda generación ya no
tienen bulbos, sino transistores su tamaño pasa a ser mas
reducido que sus antecesora con válvulas y
consumen menos electricidad que
las anteriores, la forma de comunicación con estas nuevas computadoras
es mediante lenguajes mas avanzados que el lenguaje de
máquina, y que reciben el nombre de "lenguajes de alto
nivel" o lenguajes de
programación.
Las características de las computadoras de la
segunda generación son entonces:
- Construidas con electrónica de
transistores - Programación en lenguajes de alto
nivel
En esta generación las computadoras al ser
reducidas de tamaño el costo era menor. Comienzan entonces
aparecer muchas empresas y las computadoras eran muy
avanzadas.
El invento del transistor hizo posible una nueva
generación de computadoras, más rápidas,
más pequeñas y con menores necesidades de
ventilación. Sin embargo el costo seguia siendo una
porción significativa del presupuesto de
una Compañía.
Las computadoras de la segunda generación
también utilizaban redes de núcleos
magnéticos en lugar de tambores giratorios para el
almacenamiento primario. Estos núcleos contenían
pequeños anillos de material magnético, enlazados
entre sí, en los cuales podían almacenarse datos e
instrucciones.
Algunas de estas computadoras se programaban con cintas
perforadas y otras por medio de un cableado en un tablero, los
programas propiamente dichos eran realizados por expertos:
analistas, diseñadores, programadores y operadores que se
manejaban y funcionaban como un verdadero equipo para la
resolución de los problemas.
Los programas escritos para una computadora
podían transferirse a otra con un mínimo esfuerzo.
El escribir un programa ya no requería entender plenamente
el hardware de la computación.
Las computadoras de esa generación fueron la
Philco 212 (Esta compañía se retira del mercado
1964) y la UNIVAC M460, la Control Data Corporaions 1604, luego
vino la 3000, la IBM desarrollo mejor el 709 y vendió en
el mercado la 7090 y la National Cash Rigistre NCR
315.
Los programas de computadoras también mejoraron.
El COBOL desarrollado durante la 1era generación estaba ya
disponible comercialmente. Los programas escritos para una
computadora podían transferirse a otra con un
mínimo esfuerzo.
El escribir un programa ya no requería entender
plenamente el hardware de la computación. Las computadoras
de la 2da Generación eran sustancialmente más
pequeñas y rápidas que las de bulbos, y se usaban
para nuevas aplicaciones, como en los sistemas para
reservación en líneas aéreas, control de
tráfico aéreo y simulaciones para uso
general.
Las empresas comenzaron a aplicar las computadoras a
tareas de almacenamiento de registros, como manejo de inventarios,
nómina
y contabilidad.
La marina de E.U. utilizó las computadoras de la
Segunda Generación para crear el primer simulador de
vuelo. (Whirlwind I). HoneyWell se colocó como el primer
competidor durante la segunda generación de computadoras.
Burroughs, Univac, NCR, CDC, HoneyWell, los más grandes
competidores de IBM durante los 60s se conocieron como el
grupo BUNCH
(siglas).
c.- Tercera Generación de
Computadores
En la tercera generación de computadoras su
característica fundamental es que su electrónica es
basada en Circuitos
Integrados y además su manejo es por medio de los
lenguajes de control de los sistemas operativos.
La IBM 360 una de las primeras computadoras comerciales
que usó circuitos integrados, podía realizar tanto
análisis numéricos como administración ó procesamiento de
archivos.
La IBM produce la serie 360 que utilizaba técnicas
especiales del procesador, unidades de cinta de nueve canales,
paquetes de discos magnéticos y otras
características que ahora son estándares (no todos
los modelos usaban estas técnicas, sino que estaba
dividido por aplicaciones).
El sistema operativo
de la serie 360, se llamó OS que contaba con varias
configuraciones, incluía un conjunto de técnicas de
manejo de memoria y del procesador que pronto se convirtieron en
estándares.
Los clientes
podían escalar sus sistemas 360 a modelos IBM de mayor
tamaño y podían todavía correr sus programas
actuales. Las computadoras trabajaban a tal velocidad que
proporcionaban la capacidad de correr más de un programa
de manera simultánea (multiprogramación), por
ejemplo la computadora podía estar calculando la nomina y
aceptando pedidos al mismo tiempo.
Minicomputadoras, con la introducción del modelo 360 IBM
acaparó el 70% del mercado, para evitar competir
directamente con IBM la empresa Digital Equipment Corporation DEC
redirigió sus esfuerzos hacia computadoras
pequeñas.
Mucho menos costosas de comprar y de operar que las
computadoras grandes, las minicomputadoras se desarrollaron
durante la segunda generación pero alcanzaron su mayor
auge entre 1960 y 70.
En 1964 CDC introdujo la serie 6000 con la computadora
6600 que se consideró durante algunos años como la
más rápida.
En los ‘70, la IBM produce la serie 370. UNIVAC
compite son los modelos 1108 y 1110, máquinas en gran
escala; mientras que CDC produce su serie 7000 con el modelo
7600. Estas computadoras se caracterizan por ser muy potentes y
veloces.
A finales de esta década la IBM de su serie 370
produce los modelos 3031, 3033, 4341. Burroughs con su serie 6000
produce los modelos 6500 y 6700 de avanzado diseño, que se
reemplazaron por su serie 7000. Honey – Well participa con su
computadora DPS con varios modelos.
d.- Cuarta Generación de
Computadores
En la cuarta generación aparecen los microprocesadores
siendo un avance importante en microelectrónica, son
circuitos integrados de alta densidad y con
una velocidad impresionante.
Las microcomputadoras con base en estos circuitos son
extremadamente pequeñas y baratas, por lo que su uso se
extiende al mercado industrial. Así nacen las computadoras
personales que han adquirido proporciones enormes y que han
influido en la sociedad en
general.
En 1976 Steve Wozniak y Steve Jobs inventan la primera
microcomputadora de uso masivo y más tarde forman la
compañía conocida como la Apple que fue la segunda
compañía más grande del mundo, antecedida
tan solo por IBM; y esta por su parte es aún de las cinco
compañías más grandes del mundo.
Con el surgimiento de las computadoras personales, el
software y los
sistemas que con ellas de manejan han tenido un considerable
avance, porque han hecho más interactiva la
comunicación con el usuario. Surgen otras aplicaciones
como los procesadores de palabra, las hojas electrónicas
de cálculo, paquetes gráficos, etc.
También las industrias del
Software de las computadoras personales crece con gran rapidez,
Gary Kildall y William Gates se dedicaron durante años a
la creación de sistemas
operativos y métodos
para lograr una utilización sencilla de las
microcomputadoras (son los creadores de CP/M y de los productos
de Microsoft).
Dos mejoras en la tecnología de las
computadoras marcan el inicio de la cuarta generación: el
reemplazo de las memorias con
núcleos magnéticos, por las de chips de silicio y
la colocación de muchos más componentes en un Chip:
producto de la microminiaturización de los circuitos
electrónicos. El tamaño reducido del microprocesador
de chips hizo posible la creación de las computadoras
personales.
Hoy en día las tecnologías LSI (Integración a gran escala) y VLSI
(integración a muy gran escala) permiten que miles de
componentes electrónicos se almacenan en un
chip.
e.- Quinta Generación de
Computadores
En la quinta generación se hace acelerada la
marcha de la microelectrónica, la sociedad industrial se
ha dado a la tarea de poner también a esa altura el
desarrollo del software y los sistemas con que se manejan las
computadoras.
Surge la competencia
internacional por el dominio del mercado de la
computación, en la que se perfilan dos líderes que,
sin embargo, no han podido alcanzar el nivel que se desea: la
capacidad de comunicarse con la computadora en un lenguaje
más cotidiano y no a través de códigos o
lenguajes de control especializados.
Japón
lanzó en 1983 el llamado "programa de la quinta
generación de computadoras", con los objetivos
explícitos de producir máquinas con innovaciones
reales en los criterios mencionados.
Y en los Estados Unidos ya está en actividad un
programa en desarrollo que persigue objetivos semejantes, que
pueden resumirse de la siguiente manera:
Procesamiento en paralelo mediante arquitecturas y
diseños especiales
y circuitos de gran velocidad.
Manejo de lenguaje natural y sistemas de inteligencia
artificial.
El futuro previsible de la computación es muy
interesante, y se puede esperar que esta ciencia siga
siendo objeto de atención prioritaria de gobiernos y de la
sociedad en conjunto.
Características de las Generaciones de
Computadoras respecto de software
GENERACIÓN CERO (Hasta 1951) ARQUITECTURA: Mecánica | GENERACIÓN PRIMERA (1951 a ARQUITECTURA: Bulbos |
GENERACIÓN SEGUNDA (1959 a 1964) ARQUITECTURA: Transistores | GENERACIÓN TERCERA (1965 a ARQUITECTURA: Circuitos Integrados |
GENERACIÓN CUARTA (1972 a ARQUITECTURA: Microprocesador | GENERACIÓN QUINTA (1983 a la ARQUITECTURA: Microelectrónica |
Lenguajes de bajo nivel:
Utilizan códigos muy cercanos a los de la
máquina, lo que hace posible la elaboración de
programas muy potentes y rápidos, pero son de
difícil aprendizaje.
Lenguajes de alto nivel:
El programador escribe su programa en alguno de estos
lenguajes (Pascal, Cobol, Basic, Fortran, C++ ) mediante
secuencias de instrucciones.
Antes de ejecutar el programa la computadora lo traduce
a código máquina de una sola vez (lenguajes
compiladores)
o interpretándolo instrucción por
instrucción (lenguajes intérpretes).
Los lenguajes de alto nivel: un programa de computadora,
es una colección de instrucciones que, al ser ejecutadas
por el CPU de una
máquina, llevan a cabo una tarea ó función
específica.
Este conjunto de instrucciones que forman los programas
son almacenados en archivos denomina dos archivos ejecutables
puesto que, al teclear su nombre (o hacer clic sobre el icono que
los identifica) logras que la computadora los cargue y corra, o
ejecute las instrucciones del archivo.
El contenido de un archivo ejecutable no puede ser
entendido por el usuario, ya que no está hecho para que la
gente lo lea, sino para que la computadora sea quien lo
lea.
Los archivos de programas ejecutables contienen el
código máquina, que la CPU identifica como sus
instrucciones. Son lo que conocemos como Programas
Objeto.
Dado que sería muy difícil que los
programadores crearan programas directamente en código de
máquina, usan lenguajes más fáciles de leer,
escribir y entender para la gente.
El programador teclea instrucciones en un editor, que es
un programa parecido a un simple procesador de palabras, estas
instrucciones son almacenadas en archivos denominados programas
fuentes
(código fuente).
Si los programadores necesitan hacer cambios al programa
posteriormente vuelven a correr el editor y cargan el programa
fuente para modificarlo.
El proceso de conversión de programas fuente a
programas objeto se realiza mediante un programa denominado
compilador. El compilador toma un programa fuente y lo traduce a
programa objeto y almacena este último en otro
archivo.
Programa fuente:
Es el programa escrito en alguno de los lenguajes y que
no ha sido traducido al lenguaje de la maquina, es decir el
programa que no está en código de máquina y
que por lo tanto no puede ser ejecutable.
Programa objeto:
Es aquel programa que se encuentra en lenguaje
máquina y que ya es ejecutable por esta.
Programación orientada a
objetos:
La programación
orientada a objetos no es un concepto nuevo,
sus inicios y técnicas de programación se iniciaron
a principios de los 70. Se puede definir programación
orientada a objetos (OOPS) como una técnica de
programación que utiliza objetos como bloque esencial de
construcción,es un tipo de programación más
cercana al razonamiento humano.
La OOPS surge como una solución a la
programación de grandes programas, y para solventar el
mantenimiento
de dichas aplicaciones, ya que en la programación estructura el
más mínimo cambio supone
la modificación de muchas funciones
relacionadas, en cambio con la OOPS solo es cuestión de
añadir o modificar métodos de una clase o mejor,
crear una nueva clase a partir de otra (Herencia).
Concepto de Objeto:
Desde un punto de vista general un Objeto es una
estructura de
datos de mayor o menor complejidad con las funciones que
procesan estos datos. Dicho de otra forma, sería Datos
más un Código que procesa estos datos.
A los datos se les denomina miembros dato y a las
funciones miembros o miembros funciones. Los datos están
ocultos y sólo se puede acceder a ellos mediante las
funciones miembros.
Clases:
Las Clases son como plantillas o modelos que describen
como se construyen ciertos tipos de Objeto. Cada vez que se
construye un Objeto de una Clase, se crea una instancia de esa
Clase("instance").
Una Clase es una colección de Objetos similares y
un Objeto es una instancia de una Clase. Se puede definir una
Clase como un modelo que se utiliza para describir uno o
más Objetos del mismo tipo.
Herencia:
Una característica muy importante de los Objetos
y las Clases es la Herencia, una propiedad que
permite construir nuevos Objetos (Clases) a partir de unos ya
existentes. Esto permite crear "Sub-Clases" denominadas Clases
Derivadas que
comparten las propiedades de la Clase de la cual derivan (Clase
base).
Las Clases derivadas heredan código y datos de la
clase base, asimismo incorporan su propio código y datos
especiales. Se puede decir que la herencia permite definir nuevas
Clases a partir de las Clases ya existentes.
Polimorfismo:
En un sentido literal, Polimorfismo significa la
cualidad de tener más de una forma. En el contexto de POO,
el Polimorfismo se refiere al hecho de que una simple
operación puede tener diferente comportamiento
en diferentes objetos.
Compilador:
Es un programa que traduce un lenguaje de alto nivel al
lenguaje máquina. Un programa compilado indica que ha sido
traducido y está listo para ser ejecutado. La
ejecución de los programas compilados es más
rápida que la de los interpretados, ya que el interprete
debe traducir mientras está en la fase de ejecución
(saca todos los errores).
Un compilador es un programa que traduce el programa
fuente (conjunto de instrucciones de un lenguaje de alto nivel,
por ejemplo BASIC o Pascal) a programa objeto (instrucciones en
lenguaje máquina que la computadora puede interpretar y
ejecutar).
Se requiere un compilador para cada lenguaje de
programación. Un compilador efectúa la traducción, no ejecuta el programa. Una vez
compilado el programa, el resultado en forma de programa objeto
será directamente ejecutable.
Presentan la ventaja considerable frente a los
intérpretes de la velocidad de ejecución, por lo
que su uso será mejor en aquellos programas probados en
los que no se esperan cambios y que deban ejecutarse muchas
veces. En caso de que se opte por un interpretador se debe
considerar que el intérprete resida siempre en
memoria.
Interprete:
Traductor de lenguajes de programación de alto
nivel, los interpretes ejecutan un programa línea por
línea. El programa siempre permanece en su forma
original(programa fuente) y el interprete proporciona la
traducción al momento de ejecutar cada una de la s
instrucciones.
Un intérprete es un programa que procesa los
programas escritos en un lenguaje de alto nivel, sin embargo,
está diseñado de modo que no existe independencia
entre la etapa de traducción y la etapa de
ejecución. Un intérprete traduce cada
instrucción o sentencia del programa escrito a un lenguaje
máquina e inmediatamente se ejecuta.
Encuentran su mayor ventaja en la interacción con el usuario, al facilitar el
desarrollo y puesta a punto de programas, ya que los errores son
fáciles de detectar y sobre todo de corregir.
Lenguaje máquina:
Lenguaje original de la computadora, un programa debe
estar escrito en el lenguaje de la máquina para poder ser
ejecutado. Este es generado por software y no por el programador.
El programador escribe en un lenguaje de programación, el
cual es traducido al lenguaje de máquina mediante
intérpretes y
compiladores.
Case (Computer-Aided Software Engineering o Computer-
Aided Systems Engineering):
Ingeniería de
Software Asistida por Computadora o Ingeniería de Sistemas Asistida por
computadora Software que se utiliza en una cualquiera o en todas
las fases del desarrollo de un sistema de
información, incluyendo análisis, diseño
y programación.
Por ejemplo, los diccionarios
de datos y herramientas
de diagramación ayudan en las fases de análisis y
diseño, mientras que los generadores de aplicaciones
aceleran la fase de programación.
Las herramientas
CASE proporcionan métodos automáticos para
diseñar y documentar las técnicas tradicionales de
programación estructurada. La meta
última de CASE es proveer un lenguaje para describir el
sistema completo, que sea suficiente para generar todos los
programas necesarios.
Cronología de los Lenguajes de
programación
1954 FORTRAN Formula Translation (Traducción de
fórmulas): Diseñado en un principio para usos
científicos y de ingeniería, se trata de un
lenguaje compilado de alto nivel que hoy se utiliza en numerosos
campos. Precursor de diversos conceptos, como las variables, las
instrucciones condicionales y las subrutinas compiladas por
separado.
1959 COBOL Common Business-Oriented Language (Lenguaje
simbólico de programación orientado a aplicaciones
comerciales): Lenguaje de programación semejante al idioma
inglés, que hace hincapié en las estructuras de
datos. De amplia utilización, principalmente en
empresas.
1960 ALGOL ALGOrithmic Language (Lenguaje ALGOL
algorítmico): Primer lenguaje de programación
procedural estructurado, utilizado sobre todo para resolver
problemas matemáticos.
1960 LISP LISt Processing (Procesamiento de listas):
Lenguaje de programación orientado a la generación
de listas, utilizado principalmente para manipular listas de
datos. Lenguaje interpretado que suele utilizarse en las
investigaciones y está considerado como el lenguaje
estándar en proyectos de inteligencia
artificial.
1961 APL A Programming Language (Un lenguaje de
programación): Lenguaje interpretado que utiliza un amplio
conjunto de símbolos especiales y que se caracteriza
por su brevedad. Utilizado fundamentalmente por los
matemáticos.
1964 PL/1 Programming Language 1 (Lenguaje de
programación uno): Diseñado para combinar las
principales virtudes del FORTRAN, COBOL y ALGOL, se trata de un
lenguaje de programación complejo. Compilado y
estructurado, es capaz de gestionar errores y de procesar
multitareas, y se emplea en entornos académicos y de
investigación.
1965 BASIC Beginners All-Purpose Symbolic Instruction
Code(Código de instrucciones simbólicas
multipropósito para principiantes): Lenguaje de
programación de alto nivel, utilizado con frecuencia por
programadores principiantes.
1968 LOGO Derivado del griego logos,
‘palabra’: Lenguaje de programación que suele
utilizarse con niños.
Presenta un sencillo entorno de dibujo y
varias prestaciones
de mayor nivel del lenguaje LISP. Fundamentalmente
educativo.
1969 PILOT Programmed Inquiry, Language Or Teaching
(Consulta, lenguaje o aprendizaje de investigación
programada): Lenguaje de programación utilizado
fundamentalmente para crear aplicaciones destinadas a
instrucciones asistidas por computadora. Se caracteriza por
utilizar un mínimo de sintaxis.
1970 FORTH Lenguaje de cuarta (FOuRTH)
generación: Lenguaje estructurado e interpretado de
fácil ampliación. Ofrece una alta funcionalidad en
un espacio reducido.
1971 PASCAL Blaise PASCAL, matemático e inventor
del primer dispositivo de computación: Lenguaje compilado
y estructurado basado en ALGOL. Agrega tipos y estructuras de
datos simplificando la sintaxis. Al igual que el C, se trata de
un lenguaje de programación estándar para
microcomputadoras.
1972 C Predecesor del lenguaje de programación B,
fue desarrollado en Bell Laboratory: Lenguaje de
programación compilado y estructurado, que suele
utilizarse en numerosos lugares de trabajo porque sus programas
pueden transferirse fácilmente entre distintos tipos de
computadoras.
1979 ADA Augusta ADA Byron (Lady Lovelace): Derivado de
Pascal, utilizado principalmente por los militares.
1980 MODULA-2: Diiseñado como fase secundaria de
Pascal: Lenguaje que hace hincapié en la
programación modular. Es un lenguaje de alto nivel basado
en Pascal, que se caracteriza por la ausencia de funciones y
procedimientos
estandarizados.
1983 C++: Una versión orientada a objetos
derivada del lenguaje de programación de aplicación
general denominado C, desarrollada por Bjarne Stroustrup en los
Bell Laboratories de la compañía American Telephone
and Telegraph (AT&T); en un principio también fue
conocido como C with Classes (C con clases, alusión a las
clases de la programación orientada a objetos).
1995 JAVA: Lenguaje de programación orientado a
objetos desarrollado por la empresa Sun Microsystems y que se ha
extendido ampliamente en World Wide Web. Es un
lenguaje de alto nivel y propósito general similar a C++,
con marcadas características de seguridad y
transportabilidad.
2000 C#: Nombre dado a un nuevo lenguaje de
programación, derivado del C/C++, con la finalidad de
proporcionar un método sencillo de creación de
aplicaciones de propósito general y con
programación orientada a objetos (POO).
AÑO | LENGUAJE | INVENTOR | DESCRIPCION |
1900s | BINARIO | Bool | primer lenguaje |
1946 | Plankalkul | creado para jugar al ajedrez | |
1947 | Short Code | lenguaje traducido a mano | |
1947 | ASM (ensamblador) | lenguaje ensamblador | |
1949 | A-0 | fue el primer compilador | |
1950 | AUTOCODE | compilador muy rudimentario | |
1954 | FORTRAN | Sistema de TRAducción de | |
1956 | FORTRAN I | IBM | Sistema de TRAducción de |
1957 | FORTRAN II | IBM | Sistema de TRAducción de |
1957 | B-O | ||
1958 | FORTRAN III | Sistema de TRAducción de | |
AÑO | LENGUAJE | INVENTOR | DESCRIPCION |
1958 | IAL | ||
1958 | LISP | ||
1958 | FLOW-MATIC | ||
1958 | ALGOL 58 | ||
1959 | COBOL | Compilador | |
1959 | LISP I | Interprete orientado a la Inteligencia | |
1959 | JOVIAL | ||
1960 | APL | ||
1960 | JOVIAL I | ||
1960 | ALGOL 60 | ||
1961 | ALGOL 60 Revisado | ||
1961 | JOVIAL II | ||
1961 | COBOL 61 | ||
1962 | LISP 1.5 | ||
1962 | FORTRAN IV | IBM | Sistema de TRAducción de |
1962 | SNOBOL I | ||
1962 | COBOL 61 Extendido | ||
1963 | CPL | ||
1964 | JOSS | ||
1964 | PL/I | ||
1964 | CORAL 64 | ||
1964 | SIMULA I | ||
1964 | GOGOL | ||
1964 | SNOBOL II | ||
1964 | PASCAL | Niklaus Wirth | programacion estructurada |
1964 | BASIC | Universidad de Dartmouth (california) | Beginners All Purpose Symbolic Instruction |
1965 | SNOBOL III | ||
1965 | APL | solo anotacion | |
1965 | COBOL 65 | ||
1965 | TELCOMP | ||
1965 | JOVIAL III | ||
1966 | PL/I | ||
1966 | FORTRAN 66 | IBM | sistema de TRAducción de FORmulas |
1966 | MUMPS | ||
1966 | CORAL 66 | ||
1966 | ISWIN | ||
1967 | SIMULA 67 | ||
AÑO | LENGUAJE | INVENTOR | DESCRIPCION |
1967 | BCPL | ||
1967 | GOGOL III | ||
1967 | SNOBOL IV | ||
1968 | ALGOL 68 | ||
1968 | FORTH | ||
1968 | LOGO | ||
1968 | COBOL 66 ANS | ||
1968 | SAIL | ||
1969 | B | ||
1969 | SH | ||
1970 | PROLOG | ||
1970 | PASCAL | ||
1970 | GW-BASIC | antiguo y clasico BASIC | |
1970 | |||
1970 | APL/360 | ||
1971 | SMALLTALK | Centro de Investigación de Xerox en Palo | pequeño y rapido |
1971 | C | Laboratorios Bell | lenguaje con tipos |
1972 | PL/M | ||
1972 | SMALLTALK 72 | ||
1973 | ML | ||
1974 | COBOL 74 | ||
1974 | CLU | ||
1974 | SMALLTALK 74 | ||
1975 | MODULA | ||
1975 | MAINSAIL | ||
1975 | MS-BASIC 2.0 | ||
1975 | SCHEME | ||
1976 | PL /I ANS | Lenguaje sencillo | |
1976 | SL5 | ||
1976 | SASL | ||
1976 | SMALLTALK 76 | ||
1976 | MUMPS | ||
1976 | ICON | ||
1977 | FIG-FORTH |
Página anterior | Volver al principio del trabajo | Página siguiente |