ASIGNATURA: Fundamentos de la informtica SECCIN: 5
Lnea de tiempo: evolucin de los lenguajes de programacin
Prof. Noel Cuba Jos Aguilera C.I.: 24.179.608 Jess Marcano C.I.: 25.935.349 Ronald Muoz C.I.: 20.808.182
Puerto Ordaz, Octubre 2014
Introduccin Una computadora no habla nuestro idioma, son mquinas, y como tales, se necesitan lenguajes especficos pensados por el hombre para ellas. Adems, necesitan constantemente interpretar todas las instrucciones que reciben. Como consecuencia de la corta historia de la Informtica, los lenguajes que esta utiliza tienen una existencia breve comparada con cualquier otra tecnologa. Esto que podra parecer una ventaja a la hora de afrontar una revisin histrica, es un problema ya que no es frecuente encontrar estudios histricos del pasado inmediato, a esto se une, que la progresin geomtrica en la aparicin de los lenguajes, siendo la mayora de los lenguajes recogidos este trabajo ms del presente que del pasado. Estos lenguajes permiten, por un lado, escribir las operaciones que son necesarias realizar para resolver el problema de un modo parecido a como se escribira convencionalmente (es decir, redactar adecuadamente el algoritmo de resolucin del problema) y, por el otro, se encarga de traducir el algoritmo al lenguaje mquina (proceso conocido como compilacin) con lo que se le confiere al programa la capacidad de correr (ser ejecutado) en la computadora. La computadora es en realidad tan slo una mquina virtual, capaz de resolver todos los problemas que los usuarios seamos capaces de expresar mediante un algoritmo (programa). Se va a dejar un poco de lado el tema de cmo evolucionan y centrarse ms de qu lenguajes fueron creados en la historia, hablando un poco de su concepcin y sus caractersticas
1842 Primer Lenguaje. Ada Lovelace y Babbage y su sobrino estaban escribiendo programas para el proyecto de una "Mquina Diferencial" y despus la "Mquina Analtica" 1952 Autocode. Alick E. Glinnie. Implementado primero en Mark 1, luego en otras computadoras. Este fue un cdigo simblico 1955 FLOW-MATIC. Grace Hopper. Pensando que un lenguaje de programacin simblico es inaccesible a los investigadores, Grace Hopper quera usar palabras para las instrucciones de la "UNIVAC I". La separacin de instrucciones y la estructura de datos fue algo nuevo tambin. 1956 IPL. A. Newell, H. Simon, J.C. Shaw. Lenguaje de programacin de bajo nivel. Implementa la recursividad. 1954- 1958 Fortran. John Backus y otros investigadores de IBM. Lenguaje dedicado a los clculos matemticos. Fortran II (1958) introdujo sub-rutinas, funciones, bucles, y un control primitivo de estructura FOR. Los identificadores fueron limitados a seis caracteres. 1958 UNCOL. Melvin E. Conway. Este es primer bytecode, el primer lenguaje intermedio, frente a la necesidad de poder escribir programas que pueden correr en cualquier tipo de hardware. No fue implementado pero inspir proyectos subsecuentes como UCSD p-System. 1958- 1960 Lisp. Mac Carthy. Un lenguaje funcional para el procesamiento de listas. Es puramente recursivo, y no iterativo. No hay diferencia entre cdigo y dato. 1960 ALGOL. John Backus. Este fue el primer lenguaje universal en ser independiente de la mquina. Introdujo el uso de la gramtica BNF para crear analizador de sintaxis.
1960 COBOL. Definido por un comit, el CODASYL. Particip en el comit. COBOL es un lenguaje procesal clsico dirigido por gestin de la empresa, en el cual un programa esta dividido en cuatro secciones: identificacin, datos, procesos y entorno, y pueden estar divididos en mas partes. 1964 K. Iverson. Lenguaje que usa una notacin matemtica, con muchos operadores. Con un tipo nico, la matriz. 1964 BASIC. John Kemeny, Thomas Kurtz. La primera versin fue compilada, luego se vuelve interactiva e interpretada. Cada lnea tiene un nmero para permitir a las declaraciones GO TO a saltar la lnea 1966 ISWIM. P. Landin. Primer lenguaje puramente funcional, en el sentido matemtico. Es el primero en usar la Evaluacin Perezosa 1962- 1967 Simula 67. Ole-Johan Dahl, Kritan Nygaard. Esta fue una herramienta especializada. En 1966, fue decidido hacerla un lenguaje universal. Varios proyectos fueron lanzados con ayuda de varios fabricantes y esto llevo a la creacin de Simula 67 1967 SNOBOL 4. D.J. Farber, R. E. Griswold, F.P. Polensky Es un procesador de cadenas, fundado en el principio de pattern-matching, concatenaciones y alternaciones. Fue el primer lenguaje que implementa matrices asociativas, indexadas por cualquier tipo de teclas. 1970 Pascal. Niklaus Wirth. Lenguaje dirigido para facilitar la construccin de compiladores, y para dirigir la enseanza forzando a una programacin estructurada. Compila programas en cdigo P, el cual es portatil e interpretable. Incluy un completo desarrollo del enterno, un principio usado exitosamente en Turbo Pascal 1971 Forth. Charles H. Moore. Lenguaje para los intrumentos astronmicos usando un acumulador para remplazar variables.
1972 Prolog. A. Colmerauer, D. Roussel. Introdujo la Programacin Lgica. Prolog es declarativo, su sistema de inferencia lgica es un motor de resolucin 1973 C. Dennis Ritchie. Primeramente destinado para programar el sistema operativo UNIX, pero se volvi rpidamente universal por su portabilidad y velocidad. Permite la compilacin incremental 1974 SQL. Donald D. Chamberlin, Thomas Kurtz. Lenguaje de consulta de bases de datos relacionales. Sucesor del lenguaje Square 1975 Scheme. Gerald Jay Sussman, Guy L. Steele. Lenguaje derivado del Lisp pero simplificado. Los tipos son booleanos, integrales de tamao indefinido, racionales y complejos, caracteres, simbolos, vectores, pares ordenados, listas, listas asociativas y tablas Hash. Es usado siempre como un lenguaje script, por Gimp por ejemplo. 1977 Icon. Griswold. Lenguaje procesal, con funcin de procesamiento de palabras como Snobol 4, y constructores poderosos. Probablemente el primer lenguaje orientado a los objetivos: una instruccin es ejecutada si una expresin con un xito o fracaso posible. 1979 Modula 2. Niklaus Wirth. La idea de este lenguaje fue el reducir el riesgo de error con normas de programacin coercitivas. Sin embargo, aade a Pascal algunas caractersticas del lenguaje C 1981- 1986 C++. Bjarne Stroustrup. La intencin de su creacin fue el extender al exitoso lenguaje de programacin C con mecanismos que permitan la manipulacin de objetos. En ese sentido, desde el punto de vista de los lenguajes orientados a objetos, el C++ es un lenguaje hbrido. 1985 Eiffel. Bertrand Meyer. Lenguaje procesal orientado completamente a la manipulacin de objetos, implementando persistencia y la programacin por contrato. Fue diseado para la seguridad del software.
1986 GAP. Johannes Meier, Werner Nickel, Alice Niemeyer, Martin Schonert. El lenguaje fue definido para programar algoritmos matemticos. Es interpretable, interactivo y sin tipo. Las grabaciones y las listas son variables complejos. El sintaxis es como Pascal pero con algunas diferencias. 1987 Perl. Larry Wall. Destinado a remplazar lel lenguaje de lneas de comando de Unix, Sh, Sed y Awk, mantuvo su misma sintaxis. Usado principalmente para la administracin de sistemas. 1989 Miranda. D. Turner. Miranda es un lenguaje de programacin de evaluacin perezosa, puramente funcional. 1991 Phyton. Guido Van Rossum. Lenguaje de Scripting con tipos dinmicos. Este es un reemplazo de Perl. Inspirado por ABC, pero es extensible con libreras C. 1991 Pov-Ray. D. & A. Collins. Lenguaje para describir imgenes 3D 1992 DisCo. Reino Kurki-Suonio. Es un lenguaje de especificacin para sistemas reactivos con una sintaxis parecida a Pascal. 1994 Ruby. Yukihiro Matsumoto. Combina una sintaxis inspirada en Python y Perl con caractersticas de programacin orientada a objetos similares a Smalltalk. Comparte tambin funcionalidad con otros lenguajes de programacin. Ruby es un lenguaje de programacin interpretado en una sola pasada y su implementacin oficial es distribuida bajo una licencia de software libre. 1994 Java. James Gosling. Es un lenguaje de programacin de propsito general, concurrente, orientado a objetos y basado en clases que fue diseado especficamente para tener tan pocas dependencias de implementacin como fuera posible
1995 PHP. Rasmus Lerdorf. Lenguaje de programacin de uso general de cdigo del lado del servidor originalmente diseado para el desarrollo web de contenido dinmico. Fue uno de los primeros lenguajes de programacin del lado del servidor que se podan incorporar directamente en el documento HTML. 1995 JavaScript. Brendan Eich.. Se utiliza principalmente en su forma del lado del cliente, implementado como parte de un navegador web permitiendo mejoras en la interfaz de usuario y pginas web dinmicas aunque existe una forma de JavaScript del lado del servidor. 1996 UML. Grady Booch, Jim Rumbaugh, e Ivar Jacobson. UML es la unin de tres lenguajes de modelado. El lenguaje usa una notacin grfica para disear proyectos de software. Una fuena es un diagrama de objetos y sus interacciones. 1997 Rebol. Carl SassenRath. Lenguaje Interpretable, de script extensible que produce cdigos compactos. Se dirige a la comunicacin en Internet y computacin distribuda. 2000 C#. Anders Hejlsberg. es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Su sintaxis bsica deriva de C/C++ y utiliza el modelo de objetos de la plataforma .NET, similar al de Java, aunque incluye mejoras derivadas de otros lenguajes. 2001 AspectJ. Centro de Investigacin de Palo Alto. AspectJ es un lenguaje de programacin orientado por aspectos construido como una extensin del lenguaje Java creado en Xerox PARC. Un compilador de AspectJ hace llegar la nocin de aspecto hacia el cdigo de mquina virtual implementando as una nocin de relacin.. 2001 Scriptol. Denis Sureau. Es un compilado de PHP y C++, dndole una gran portabilidad. Es un lenguaje para aplicaciones, y para hacer pginas web dinmicas. 2004 Scala. Hecho por el Ecole Polytechnique Federale de Lausanne. Es un lenguaje puramente orientado a los objetos que implementa algunas caractersticas de Python en una sintaxis de Java. Corre actualmente en JVM y .NET
2009 Go. Es un lenguaje de programacin concurrente y compilado inspirado en la sintaxis de C. Ha sido desarrollado por Google y sus diseadores iniciales son Robert Griesemer, Rob Pike y Ken Thompson. Actualmente slo est disponible para los sistemas operativos Windows, GNU/Linux y Mac OS X. Go usa una sintaxis parecida a C por lo que los programadores que hayan usado dicho lenguaje se sienten muy cmodos con l. 2010 Julia. Jeff Bezanson, Stefan Karpinski, Viral B. Shah, Alan Edelman. es un lenguaje de programacin dinmico, de alto nivel y alto rendimiento para clculos cientficos y tcnicos con una sintaxis similar a la de otros entornos de computacin similares.Dispone de un compilador avanzado, mecanismos para la ejecucin en paralelo y una extensa biblioteca de funciones matemticas. 2011 Dart. es un lenguaje de programacin de cdigo abierto, desarrollado por Google. Fue revelado en la conferencia goto; en Aarhus, Dinamarca el 10 octubre de 2011. El objetivo de Dart no es reemplazar JavaScript como el principal lenguaje de programacin web en los navegadores web, sino ofrecer una alternativa ms moderna 2011 Rust. es un lenguaje de programacin compilado, de propsito general y multiparadigma que est siendo desarrollado por Mozilla. Ha sido diseado para ser 'un lenguaje seguro, concurrente y prctico", soportando programacin funcional pura, por procedimientos, imperativa y orientada a objetos. El lenguaje surgi de un proyecto personal desarrollado por Graydon Hoare, quin empez a trabajar en l en 2006. 2013 Asm.js. Mozilla. Este lenguaje permite, en combinacin con otras herramientas el convertir aplicaciones y librerias escritas en otros lenguajes y usarlas en el explorador. Esto hace del explorador una interfase universal para el trabajo de software online u offline en todos los sistemas operativos en cualquier tipo de dispositivo, desde PC a Smartphones. 2014 Swift es un lenguaje de programacin creado por Apple con el compilador LLVM para los sistemas operativos OS X e iOS presentado el 2 de junio del 2014 en el WWDC 2014 junto con su manual.1 El lenguaje en un principio coexistir con Objective-C lenguaje que maneja la plataforma de programacin oficial de Apple Xcode. Conclusin Despus de la pltora de dialectos de los aos 70, la invencin de lenguajes se estanc sobre la sintaxis. Los lenguajes comunes, incluso varios recientes como Java, C#, PHP, no trajo cambios en las instrucciones. Es ms, Go y Dart son incluso una regresin. Solo Julia es un progreso real y explota las capacidades de las computadoras actuales. El uso de JavaScript se est expandiendo con las aplicaciones web offline. Los lenguajes orientados a objetos permiten el incrustar cdigos dentro de pginas HTML y con eso combinar declaraciones y datos. PHP. ASP, JavaScript son los mas usados. Las plataformas .NET permiten que cualquier lenguaje sean incrustados en HTML. Las clases son siendo reemplazadas con objetos dinmicos y la herencia por combinacin. En los aos 2000, varios lenguajes script modernos ofrecen una sintaxis mas simple e intuitiva: Python es el ms usado mundialmente por ahora pero va a ser reemplazado por Go. Ruby es usado principalmente para la biblioteca Rail, pero la tendencia est en Node y JavaScript. Los lenguajes se volvieron ms portables gracias a LLVM y Emscriptem. El primero corre en cualquier sistema, el segundo por convertir el cdigo LLVM en JavaScript. El desarrollo de telfonos mviles con sus mltiples operando sistemas que adoptan HTLM 5 como una plataforma de desarrollo y con tecnologas relacionadas: SVG, Canvas, CSS, JavaScript se volvieron los lenguajes dominantes para las aplicaciones web. Otras tendencias de niveles ms altos para lenguajes, programados por aspectos, o por esquemas con UML y otros conceptos, distribuidos por la nube.
Referencias Scriptol. (2014). History and Evolution of Programming Languages. 30 de Septiembre de 2014, de Scriptol. Sitio web: http://www.scriptol.com/programming/history.php Veracode. (2013). The History of Programming Languages Infographic. 1 de Octubre de 2014, de Veracode. Sitio web: https://www.veracode.com/blog/2013/04/the-history-of-programming-languages- infographic ric Levenez. (2013). Computer Languages History. 30 de Septiembre de 2014, de Levenez. Sitio web: http://www.levenez.com/lang/ Elisabeth Rojas. (2011). La historia de los lenguajes de programacin. 1 de Octubre de 2014, de muycomputerpro. Sitio web: http://www.muycomputerpro.com/2011/08/26/historia-lenguajes-programacion Marina Aguilar, Andr Ormset, Jos Antonio Ros, Ren Hofboer, Damin Zamorano, Bernard Garca. (2001). Historia y Tipos de Lenguaje de Programacin. 1 de Octubre de 20145, de Universidad Francisco Gavidia Sitio web: http://wwwisis.ufg.edu.sv/wwwisis/documentos/M0/M000508.pdf