Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CATEDRATICO
ING. Cristiam Alexander Diaz Ramos
ALUMNA
Bivian Lisbeth Nuñez Ordoñez
ASIGNATURA
Algoritmos Y Lenguajes De Programacion
ASIGNACION
Historia Y Evolución De Los Lenguajes De Programación
FECHA DE ENTREGA
Jueves 20 de enero de 2022
ANTES DE 1940
Los primeros lenguajes de programación preceden a la computadora moderna. En
un inicio loslenguajes eran códigos.La máquina del telar de Jacquard, creada en
1801, utilizaba los orificios en tarjetas perforadas pararepresentar los movimientos
de un brazo de la máquina de tejer, con el objetivo de generar patronesdecorativos
automáticamente.Durante un período de nueve meses entre 1842 y 1843, Ada
Lovelace tradujo las memorias delmatemático italiano Luigi Menabrea acerca de la
nueva máquina propuesta por Charles Babbage, laMáquina Analítica. Con estos
escritos, ella añadió unas notas en las cuales especificaba en detalle unmétodo
para calcular los números de Bernoulli con esta máquina, el cual es reconocido
por muchoshistoriadores como el primer programa de computadora del
mundo.Herman Hollerith se percató de que podía codificar la información en
tarjetas perforadas cuandoobservó a los conductores de trenes codificar la
apariencia de los tickets del tren con la posición de losagujeros 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 primerasdécadas del siglo 20, los cálculos numéricos estaban basados en
los números decimales. Eventualmentese fueron dando cuenta que la lógica podía
ser representada con números, no sólo con palabras. Porejemplo, Alonzo Church
fue capaz de expresar el cálculo lambda a través de fórmulas. La máquina
deTuring estableció las bases para almacenar programas como datos en la
arquitectura de von Neuman deuna computadora. Sin embargo, a diferencia del
cálculo lambda, el código de Turing no serviríasatisfactoriamente como base para
lenguajes de más alto nivel- su principal uso es en el análisisriguroso en la
complejidad algorítmica.Como muchos “primeros” en la historia, el primer lenguaje
de programación moderno es difícil deidentificar. Desde un inicio, las restricciones
de hardware definían el lenguaje. Las tarjetas perforadaspermití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 programasinformáticos tuvieran que estar intercalados
con las rotaciones del tambor. Por lo tanto los programaseran muy dependientes
del hardware.Para algunas personas, lo que sería el primer lenguaje de
programación moderno depende de cuántopoder y legibilidad humana se requería
antes de que se concediera el estado de "lenguaje deprogramación". Tanto el telar
de Jacquard como la Máquina Diferencial de Babbage, tenían lenguajesmuy
simples y extremadamente limitados para describir las acciones que estas
máquinas realizaran. Sepuede incluso considerar los agujeros perforados en los
rollos de pianola como un limitado lenguaje dedominio 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, enlenguaje ensamblador muy afinados.
Finalmente se dieron cuenta de que la programación en lenguajeensamblador
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. Sinembargo, 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, comenzandoen 1949 con C-10 para BINAC (que
luego evolucionaría en UNIVAC). Cada conjunto de instruccionesestaba
destinado a un fabricante específico.
Tendencias Actuales
La evolución de los lenguajes de programación continúa, tanto en la
industria como en investigación.Algunas de las tendencias actuales
incluyen:
Aumentar el soporte para la programación funcional en lenguajes
importantes utilizadoscomercialmente, incluida la programación funcional
pura para hacer el código más fácil de razonar y deparalelizar (tanto en
macro como en micro-niveles).
Construir lenguajes para apoyar la programación concurrente y distribuida.
Mecanismos para añadir al lenguaje verificación en cuanto a seguridad y
confiabilidad: chequeosintáctico extendido, control de flujo de información,
seguridad de hilos.
Mecanismos alternativos de modularidad: mixins, delegados, aspectos.
Desarrollo de software orientado a componentes.
Metaprogramación, la reflexión o el acceso al árbol de sintaxis abstracta.
Mayor énfasis en cuanto a distribución y movilidad.
Integración con bases de datos, incluyendo XML y bases de datos
relacionales.
Soporte para Unicode para que el código fuente (texto del programa) no se
limite sólo a los caracterescontenidos en el conjunto de caracteres ASCII,
permitiendo, por ejemplo, el uso de caracteres nolatinos basados en
guiones o signos de puntuación extendidos
XML para interfaz gráfica (XUL, XAML).
El código abierto como una filosofía de desarrollo de lenguajes, incluyendo
la colección decompiladores de GNU y lenguajes recientes, como Python,
Ruby, y Squeak.
Programación Orientada a Aspectos (AOP).
Lenguajes que soporten programar sobre los procesadores de la GPU en
paralelo, como OpenCL.Algunos lenguajes importantes desarrollados
durante este período incluyen:
2000 - ActionScript 2003 - Scala
2001 - C# 2003 - Factor
2001 - Visual Basic .NET 2007 - Clojure
2002 - F# 2009 - Go
2003 - Groovy 2011 - Dart