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:
este lenguaje ordena a la
máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la
combinación de 0's y 1's para formar las ordenes entendibles por el hardware de
la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto
nivel.
La desventaja es que son bastantes difíciles de manejar y
usar, además de tener códigos fuente enormes donde encontrar un fallo es casi
imposible.
El lenguaje ensamblador es un derivado del lenguaje maquina y
esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con
la aparición de este lenguaje se crearon los programas traductores para poder
pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja
con respecto al código máquina es que los códigos fuentes eran más cortos y los
programas creados ocupaban menos memoria. Las desventajas de este lenguaje
siguen siendo prácticamente las mismas que las del lenguaje ensamblador,
ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de
probar y mantener.
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje
natural que al lenguaje máquina.
Están
dirigidos a solucionar problemas mediante el uso de EDD's. Lenguajes de Medio nivel
Se trata de un termino no aceptado por todos, pero q
seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre
los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede
acceder a los registros del sistema, trabajar con direcciones de memoria, todas
ellas características de lenguajes de bajo nivel y a la vez realizar
operaciones de alto nivel.
HISTORIALos 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 40En 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 siglo1943 - 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, CobolCuarta 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 AdabesQuinta 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:
este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina.Este lenguaje es mucho más rápido que los lenguajes de alto nivel.La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible.El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.
Lenguajes de alto nivel
Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina.Están dirigidos a solucionar problemas mediante el uso de EDD's. Lenguajes de Medio nivel
Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.