HISTORIA
Los primeros lenguajes de programación preceden a la
computadora moderna. En un inicio los lenguajes eran códigos.
La máquina del telar de Jacquard, creada en 1801,
utilizaba los orificios en tarjetas perforadas para representar los movimientos
de un brazo de la máquina de tejer, con el objetivo de generar patrones decorativos
automáticamente.
Durante un período de nueve meses entre 1842 y 1843, Ada Lovelace tradujo las memorias del matemático italiano Luigi Menabrea
acerca de la nueva máquina propuesta porCharles Babbage, la Máquina Analítica. Con estos
escritos, ella añadió unas notas en las cuales especificaba en detalle un
método para calcular los números de
Bernoulli con esta máquina,
el cual es reconocido por muchos historiadores como el primer programa de
computadora del mundo.
Herman Hollerith se percató de que podía codificar la información en tarjetas
perforadas cuando observó a los conductores de trenes codificar la apariencia
de los cricket o tickets mejor conociado del tren con la posición de los
agujeros perforados en estos. En 1890 Hollerith codificó los datos del censo en
tarjetas perforadas.
Los primeros códigos de computadora estaban especializados
según sus aplicaciones. En las primeras décadas del siglo 20, los cálculos
numéricos estaban basados en los números decimales. Eventualmente se fueron
dando cuenta que la lógica podía ser representada con números, no sólo con
palabras. Por ejemplo, Alonzo Church fue capaz de expresar el cálculo lambda a través de fórmulas. La máquina de Turing estableció las
bases para almacenar programas como datos en la arquitectura de
von Neuman de una
computadora. Sin embargo, a diferencia del cálculo lambda, el código de Turing
no serviría satisfactoriamente como base para lenguajes de más alto nivel- su
principal uso es en el análisis riguroso en la complejidad
algorítmica.
Como muchos “primeros” en la historia, el primer lenguaje de
programación moderno es difícil de identificar. Desde un inicio, las
restricciones de hardware definían el lenguaje. Las tarjetas perforadas
permitían 80 columnas, pero algunas de estas serían utilizadas para una
clasificación de cada tarjeta. FORTRAN incluía algunas palabras reservadas
provenientes del Inglés, como “IF”, “GOTO” (go to) y “CONTINUE”. El uso del tambor magnético para la memoria implicaba que los programas informáticos
tuvieran que estar intercalados con las rotaciones del tambor. Por lo tanto los
programas eran muy dependientes del hardware.
Para algunas personas, lo que sería el primer lenguaje de
programación moderno depende de cuánto poder y legibilidad humana se requería
antes de que se concediera el estado de "lenguaje de programación".
Tanto el telar de Jacquard como la Máquina
Diferencial de Babbage,
tenían lenguajes muy simples y extremadamente limitados para describir las
acciones que estas máquinas realizaran. Se puede incluso considerar los
agujeros perforados en los rollos de pianola como un limitado lenguaje de
dominio específico, a pesar de no estar diseñado para el consumo humano.
Los años 40
En la década de 1940 fueron creadas las primeras computadoras
modernas, con alimentación eléctrica. La velocidad y capacidad de memoria
limitadas forzaron a los programadores a escribir programas en lenguaje
ensamblador muy afinados. Finalmente se dieron cuenta que la programación en
lenguaje ensamblador requería de un gran esfuerzo intelectual y era muy
propensa a errores.
En 1948, Konrad Zuse publicó un artículo acerca de su
lenguaje de programación Plankalkül. Sin embargo, no
fue implementado en su vida y sus contribuciones fueron aisladas de otros
desarrollos.
Entre algunos lenguajes importantes que fueron desarrollados
en este período se encuentran:
1943 - Plankalkül (Konrad Zuse), diseñado, pero sin
implementar durante medio siglo
1943 - el sistema de codificación ENIAC.
1949 - 1954 -- una serie de conjuntos de instrucciones
nemotécnicas, como la de ENIAC, comenzando en 1949 con C-10 para BINAC (que
luego evolucionaría en UNIVAC). Cada conjunto de instrucciones estaba destinado
a un fabricante específico.
GENERACIONES:
La evolución de los lenguajes de programación se puede dividir en 5 etapas o
generaciones.
Primera generación:
lenguaje maquina.
Segunda generación: se
crearon los primeros lenguajes ensambladores.
Tercera generación: se
crean los primeros lenguajes de alto nivel. Ej. C, Pascal, Cobol
Cuarta generación. Son
los lenguajes capaces de generar código por si solos, son los llamados RAD, con
lo cuales se pueden realizar aplicaciones sin ser un experto en el lenguaje.
Aquí también se encuentran los lenguajes orientados a objetos, haciendo posible
la reutilización d partes del código para otros programas. Ej. Visual, Natural
Adabes
Quinta generación: aquí
se encuentran los lenguajes orientados a la inteligencia artificial. Estos
lenguajes todavía están poco desarrollados. Ej. LISP
TIPOS DE
LENGUAJE:
Lenguajes de bajo nivel
Son lenguajes totalmente dependientes de la máquina, es decir que el
programa que se realiza con este tipo de lenguajes no se pueden migrar o
utilizar en otras maquinas.
Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo
las características del mismo.
Dentro de este grupo se encuentran:
El lenguaje maquina: