Anda di halaman 1dari 28

Universidad Latina

Sede Heredia Bachillerato en Ingeniera en Sistemas. Introduccin a la Ingeniera en Sistemas Nmero de grupo: 4047 Historia de los Lenguajes de Programacin Trabajo de Investigacin. Grupo: Armando Alvarado Kenneth Chacn Villalobos Yeisson Vquez Adrian Orozco

Prof.: Fabricio Chinchilla

II Cuatrimestre, 2011

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Tabla de Contenidos:

ndice............................................................................1 Introduccin..................................................................2 Marco Terico...............................................................3 Historia..........................................................................4 Clasificacin de los lenguajes de programacin..........5 Marco metodolgico.................9 Conclusiones............15 Bibliografa.16 ndice de Imgenes....................17 Anexos...20 Lnea del Tiempo..27

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Introduccin:
Con el objeto de facilitar la interaccin de las personas con los computadores, los sistemas operativos hacen una aparicin bastante simple a principios de 1950, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal. En las primeras mquinas, como la ENIAC (Electronic Numerical Integrator And Calculator) que se termin de construir a finales de 1945, la programacin se haca manualmente conectando cables y pulsando interruptores. Los datos se suministraban en tarjetas perforadas. La programacin para los clculos normales requera de media hora a un da entero. Pocos aos despus la programacin se hace en base a instrucciones, que son secuencias de unos y ceros que representan si una llave debe de estar activa o inactiva. A esta forma de programar se le llam lenguaje de mquina. A comienzos de 1950 se desarrollaron los primeros lenguajes simblicos nacidos de la necesidad de recordar secuencias de programacin para las acciones usuales. A estas acciones se les denomin con nombres fciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A este conjunto de instrucciones se le llam lenguaje ensamblador. A finales de los aos cincuenta y comienzos de los sesenta se desarrollaron los primeros lenguajes de alto nivel con su propio vocabulario ms o menos limitado, su gramtica ms o menos estricta y su semntica, que se asimilan relativamente al lenguaje humano. Estos lenguajes se denominan de alto nivel porque para poder ser utilizados deben pasarse por un traductor que los convierta a un lenguaje de nivel inferior (cdigo mquina o ensamblador). A este proceso se le llama "compilacin" o "interpretacin". En este trabajo se explicaran los diferentes tipos de lenguajes de programacin as como sus diferentes caractersticas y clasificaciones segn su evolucin en la historia de los lenguajes, y adems analizaremos las repercusiones que stos han tenido en la sociedad actual, en todos los mbitos en los que influyen, intentaremos explicar desde el momento en que se crearon, las necesidades por las que fueron creados, su salida e impacto en el mercado y el legado que dejaron, tambin una vez conocido el pasado entenderemos los lenguajes de programacin actualmente y as podremos idear un concepto de lo que podra venir en los prximos aos en cuanto a innovaciones en el campo de la programacin y sus lenguajes.

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Marco Terico: Definicin de Lenguaje de Programacin:


Un lenguaje de programacin es un idioma artificial diseado para expresar clculos que pueden ser llevadas a cabo por mquinas como las computadoras, es un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones, y es utilizado para controlar el comportamiento fsico y lgico de una mquina. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana. Est formado por un conjunto de smbolos y reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se compila y se mantiene el cdigo fuente de un programa informtico se le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos: El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa). Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin.

Aunque muchas veces se usan los trminos 'lenguaje de programacin' y 'lenguaje informtico' como si fuesen sinnimos, no es del todo correcto, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML que es un lenguaje para el marcado de pginas web, es por eso que es un tanto difcil hacer coincidir a los expertos en cuanto a la clasificacin de los lenguajes de programacin sea cual sea el tipo de clasificacin que se est llevando a cabo, pero nosotros con base en la definicin anterior procederemos a realizar nuestra clasificacin de los lenguajes de programacin.
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Un lenguaje de programacin permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo estos datos deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguaje que intenta estar relativamente prximo al lenguaje humano o natural, tal como sucede con el lenguaje lxico.

Historia de los lenguajes de Programacin.


Para que la computadora entienda nuestras instrucciones debe usarse un lenguaje especfico conocido como cdigo mquina, el cual la mquina comprende fcilmente, pero que lo hace excesivamente complicado para las personas. De hecho slo consiste en cadenas extensas de nmeros 0 y 1. Para facilitar el trabajo, los primeros operadores de computadoras decidieron hacer un traductor para reemplazar los 0 y 1 por palabras o abstraccin de palabras y letras provenientes del ingls; ste se conoce como lenguaje ensamblador. Por ejemplo, para sumar se usa la letra A de la palabra inglesa add (sumar). El lenguaje ensamblador sigue la misma estructura del lenguaje mquina, pero las letras y palabras son ms fciles de recordar y entender que los nmeros. La necesidad de recordar secuencias de programacin para las acciones usuales llev a denominarlas con nombres fciles de memorizar y asociar: ADD (sumar), SUB (restar), MUL (multiplicar), CALL (ejecutar subrutina), etc. A esta secuencia de posiciones se le denomin "instrucciones", y a este conjunto de instrucciones se le llam lenguaje ensamblador. Posteriormente aparecieron diferentes lenguajes de programacin, los cuales reciben su denominacin porque tienen una estructura sintctica similar a los lenguajes escritos por los humanos, denominados tambin lenguajes de alto nivel. La primera programadora de computadora conocida fue Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron. Anabella introdujo en las matemticas a Ada quien, despus de conocer a Charles Babbage, tradujo y ampli una descripcin de su mquina analtica. Incluso aunque Babbage nunca complet la construccin de cualquiera de sus mquinas, el trabajo que Ada realiz con stas le hizo ganarse el ttulo de primera programadora de computadoras del mundo. El nombre del lenguaje de programacin Ada fue escogido como homenaje a esta programadora. A finales de 1953, John Backus someti una propuesta a sus superiores en IBM para desarrollar una alternativa ms prctica al lenguaje ensamblador para
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

programar la computadora central IBM 704. El histrico equipo Fortran de Backus consisti en los programadores Richard Goldberg, Sheldon F. Best, Harlan Herrick, Peter Sheridan, Roy Nutt, Robert Nelson, Irving Ziller, Lois Haibt y David Sayre.2 El primer manual para el lenguaje Fortran apareci en octubre de 1956, con el primer compilador Fortran entregado en abril de 1957. Esto era un compilador optimizado, porque los clientes eran reacios a usar un lenguaje de alto nivel a menos que su compilador pudiera generar cdigo cuyo desempeo fuera comparable al de un cdigo hecho a mano en lenguaje ensamblador. En 1960, se cre COBOL, uno de los lenguajes usados an en 2010 en informtica de gestin. A medida que la complejidad de las tareas que realizaban las computadoras aumentaba, se hizo necesario disponer de un mtodo ms eficiente para programarlas. Entonces, se crearon los lenguajes de alto nivel, como lo fue BASIC en las versiones introducidas en los microordenadores de la dcada de 1980. Mientras que una tarea tan sencilla como sumar dos nmeros puede necesitar varias instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastar una sola sentencia.

Clasificacin de los lenguajes de Programacin.


Los lenguajes de programacin se pueden clasificar atendiendo a varios criterios, los principales son: Segn el nivel de abstraccin Segn la forma de ejecucin Segn el paradigma de programacin que poseen cada uno de ellos

Segn el Nivel de Abstraccin. Lenguajes de mquina y de bajo nivel:

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Los lenguajes de mquina estn escritos en cdigos (cdigo mquina) directamente inteligibles por la mquina (computadora), siendo sus instrucciones cadenas binarias (0 y 1). Lenguaje de mquina hace referencia al lenguaje especfico de una computadora, mientras que cdigo mquina hace referencia al modo en que se escriben los diferentes lenguajes de mquina. Los lenguajes de bajo nivel son lenguajes de programacin que se acercan al funcionamiento de una computadora. Los lenguajes de ms bajo nivel son los lenguajes de mquinas. A ste nivel le sigue el lenguaje ensamblador, ya que al programar en ensamblador se trabajan con los registros de memoria de la computadora de forma directa. La programacin en un lenguaje de bajo nivel tiene como ventajas una mayor adaptacin al equipo, adems de la posibilidad de obtener la mxima velocidad con el mnimo uso de memoria. Sin embargo tiene importantes inconvenientes, como la imposibilidad de escribir cdigo independiente de la mquina y la mayor dificultad en la programacin y en la comprensin de los programas. Lenguajes de medio nivel: Minoritariamente en algunos textos se diferencian algunos lenguajes como de medio nivel, como el lenguaje C, ya que tienen ciertas caractersticas que los acercan a los lenguajes de bajo nivel, como gestin de punteros de memoria y registros, pero con sintaxis, vocabulario y gramtica de alto nivel. Lenguajes de alto nivel y de muy alto nivel: Los lenguajes de programacin de alto nivel se caracterizan por expresar los algoritmos de una manera adecuada a la capacidad cognitiva humana, en lugar de estar orientados a su ejecucin en las mquinas. Los lenguajes de alto y bajo nivel requieren de conocimientos especficos de programacin y del lenguaje concreto (vocabulario, gramtica y sintaxis) para realizar las secuencias de instrucciones lgicas. Los lenguajes de muy alto nivel se crearon para que el usuario comn pudiese solucionar ciertos problemas sencillos de procesamiento de datos de una manera ms fcil y rpida. Segn la forma de Ejecucin.
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Los procesadores usados en las computadoras son capaces de entender y actuar segn lo indican programas escritos en un lenguaje fijo para cada arquitectura, llamado lenguaje de mquina. Todo programa escrito en un lenguaje de alto nivel puede ser ejecutado de dos maneras:

Lenguajes compilados: Antes de poder utilizarse el programa debe utilizarse un traductor llamado compilador que se encarga de traducir (compilar) el programa original (cdigo fuente) al programa equivalente escrito en lenguaje de mquina o ensamblador (binario). Los binarios son los programas ejecutables y los nicos necesarios para el funcionamiento del programa. Lenguajes interpretados: Cada vez que se usa el programa debe utilizarse un traductor llamado intrprete que se encarga de traducir (interpretar) las instrucciones del programa original (cdigo fuente) a cdigo mquina segn van siendo utilizadas. Para el funcionamiento del programa siempre es necesario disponer del cdigo original y del intrprete.

Diferencias entres lenguajes compilados e interpretados:

Los lenguajes compilados se compilan una vez y se utilizan cuantas veces se desee sin necesidad de volver a utilizar el compilador. Los lenguajes interpretados son interpretados, valga la redundancia, cada vez que se ejecutan y necesitan siempre del intrprete. Los compiladores analizan todo el programa y no generan resultados si no es correcto todo el cdigo. Los intrpretes analizan las instrucciones segn las necesitan y pueden iniciar la ejecucin de un programa con errores e incluso terminar correctamente una ejecucin de un programa con errores siempre que no haya sido necesario el uso de las instrucciones que contienen dichos errores. Un compilador traduce cada instruccin una sola vez. Un intrprete debe traducir una instruccin cada vez que la encuentra. Los binarios son compilados para una arquitectura especfica y no pueden ser utilizados en otras arquitecturas no compatibles (aunque pueden existir distintos compiladores para generar binarios para diferentes arquitecturas). Un lenguaje interpretado puede ser utilizado en cualquier arquitectura que disponga de un intrprete sin necesidad de cambios.

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Los lenguajes compilados son ms eficientes que los interpretados y adems permiten distribuir el programa en forma confidencial mediante binarios. Es ms sencillo empaquetar lenguajes interpretados dentro de otros lenguajes, como JavaScript dentro de HTML.

Para obtener las ventajas de ambos tipos de lenguajes algunos utilizan una aproximacin en dos fases. Primero el programa original (cdigo fuente) es pre compilado a un binario confidencial, portable e interpretable. En una segunda fase el binario pre compilado es interpretado en cada arquitectura. sta aproximacin es la que realiza por ejemplo Java. Hay que hacer notar que algunas aplicaciones permiten ser programadas con lenguajes. Estos lenguajes no tienen por objeto solicitar acciones a la computadora sino solicitar acciones a la aplicacin sobre la que se ejecutan. Por tanto aunque algunos de estos lenguajes son lenguajes de programacin, no son lenguajes de programacin de computadoras y por tanto no necesitan ser traducidos a cdigo mquina. Es el caso por ejemplo de SQL, un lenguaje declarativo de cuarta generacin diseado para trabajar con bases de datos. Este lenguaje SQL es interpretado por el motor de la Base de Datos, no por la CPU.

Segn el Paradigma de Programacin. Un paradigma de programacin representa un enfoque particular o filosofa para la construccin del software. Si bien puede seleccionarse la forma pura de estos paradigmas a la hora de programar, en la prctica es habitual que se mezclen, dando lugar a la programacin multiparadigma. Los diferentes paradigmas de programacin son:

Algortmico, Imperativo o Por procedimientos. El ms comn y est representado, por ejemplo, por C o por BASIC. Describe la programacin en trminos del estado del programa y sentencias que cambian dicho estado. Los programas imperativos son un conjunto de instrucciones que le indican al computador cmo realizar una tarea. La implementacin de hardware de la mayora de computadores es imperativa ya que el hardware est diseado para ejecutar cdigo de mquina que es imperativo.

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Declarativo o Predicativo. Basado en la utilizacin de predicados lgicos (lgico) o funciones matemticas (funcional), su objetivo es conseguir lenguajes expresivos en los que no sea necesario especificar cmo resolver el problema (programacin convencional imperativa), sino qu problema se desea resolver. Los intrpretes de los lenguajes declarativos tienen incorporado un motor de inferencia genrico que resuelve los problemas a partir de su especificacin. Lgico. Un ejemplo es PROLOG. El mecanismo de inferencia genrico se basa en los procedimientos de deduccin de formulas vlidas en un sistema axiomtico Funcional. Representado por la familia de lenguajes LISP (en particular Scheme), ML o Haskell. El mecanismo de inferencia genrico se basa en la reduccin de una expresin funcional a otra equivalente simplificada. Orientado a Objetos. Cada vez ms utilizado, sobre todo en combinacin con el imperativo. De hecho los lenguajes orientados a objetos permiten la programacin imperativa. Algunos ejemplos de lenguajes orientados a objetos son C++, Java, Python. Usa objetos y sus interacciones para disear aplicaciones y programas de computadora. Est basado en varias tcnicas, incluyendo herencia, modularidad, polimorfismo y encapsulamiento.

Marco Metodolgico:
Desarrollo de los lenguajes de programacin
Basados en los primeros lenguajes de programacin han surgido muchos otros lenguajes que siempre tienen la intencin de tomar lo mejor, desechar lo malo, y agregar alguna novedad, respecto a los existentes. Solo se hace referencia a los ms conocidos. Basic Inventado en 1964 por John George Kemeny y Thomas Eugene Kurtz en el Colegio Dartmounth.

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Es un lenguaje muy limitado que fue diseado para personas que no fueran del rea de ciencias de la computacin. El nombre de BASIC, significa Beginners All-purpose Symbolic Instruction Code. Los ocho principios de diseo de BASIC fueron: 1. Ser fcil de usar para los principiantes. 2. Ser un lenguaje de propsito general. 3. Permitir que los expertos aadieran caractersticas avanzadas, mientras que el lenguaje permaneca simple para los principiantes. 4. Ser interactivo. 5. Proveer mensajes de errores claros y amigables. 6. Responder rpido a los programas pequeos. 7. No requerir un conocimiento del hardware de la computadora. El lenguaje se baso en Fortran y Algol 6.0 Pascal Diseado por Niklaus Wirth, como una herramienta de enseanza de la programacin. Sus desarrolladores se concentraron en desarrollar buenas herramientas que contribuyeran a la enseanza, tal como un buen debugger, y un buen editor. Adems tuvieron como meta el tener soporte para la mayora de los microprocesadores populares en esa poca en las instituciones de enseanza. Fue diseado de una manera muy ordenada, reflejando la experiencia de su diseador, tomo las mejores caractersticas de los lenguajes de su tiempo, COBOL, ALGOL, y FORTRAN, al mismo tiempo que busco evitar sus deficiencias, y hacerlo lo ms claro posible. La combinacin de sus caractersticas de entrada/salida, y sus solidas caractersticas matemticas pronto lo convirtieron en un lenguaje muy exitoso. Tambin implemento el tipo apuntador y agrego el CASE, e hizo uso de variables dinmicas. Sin embargo no implemento arreglos dinmicos ni agrupamiento de variables lo cual contribuyo a su prdida de popularidad frente a nuevos lenguajes. Delphi es una versin moderna y orientada a objetos de Pascal. Prolog

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Diseado en 1970 en la universidad de Aix-Marseille por los profesores Alain Colmerauer y Phillipe Roussel, su nombre proviene del francs Programation et Logique, es popular en los crculos de inters en Inteligencia Artificial. Inicialmente era un lenguaje interpretado, hasta que a mediados de la dcada de los 70's David Warren desarrollo un compilador, que converta el programa en Prolog a un conjunto de instrucciones de una mquina abstracta denominada Warren Abstract Machine, o WAM. Su sintaxis y semntica son consideradas simples y claros, su paradigma de programacin es el declarativo y un programa en Prolog se compone de clusulas que constituyen reglas del tipo modus ponens, es decir, "Si es verdad el antecedente, entonces es verdad el consecuente". No obstante, la forma de escribir las clusulas es al contrario de lo habitual. Primero se escribe el consecuente y luego el antecedente. C Fue diseado en 1971, por Dennis Ritchie y Ken Thompson mientras trabajaban para los Laboratorios Bell, y se baso en los lenguajes de programacin B y BCPL. Se basa en el paradigma imperativo y desde su creacin estuvo pensado para programacin de sistemas operativos, se creo para usarse en UNIX, y creci de la mano del desarrollo de UNIX, lo que propicio la creacin de caractersticas avanzadas tales como variables dinmicas, multitarea, manejo de interrupciones, forking y un poderoso manejo entrada/salida de bajo nivel. Debido a esto C es comnmente usado para programacin de nivel de sistema en UNIX, Linux y Mac. Se trata de un lenguaje no fuertemente tipeado de medio nivel pero con muchas caractersticas de bajo nivel. Dispone de las estructuras tpicas de los lenguajes de alto nivel pero, a su vez, dispone de construcciones del lenguaje que permiten un control a muy bajo nivel. Destaca su gran riqueza de operadores y expresiones.

C++ A finales de los 70's y principio de los 80's un nuevo modelo de de programacin fue desarrollado, la programacin orientada a objetos, la idea bsica es que los objetos son piezas de cdigo auto contenidas y reusables. Bjarne Stroustroup, tambin de los Laboratorios Bell, desarrollo un nuevo lenguaje
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

basado en C que aplica los conceptos de la programacin orientada a objetos, inicialmente se llamo C con clases, para posteriormente tomar su nombre definitivo C++ cuando fue publicado en 1983. Las principales caractersticas del C++ son abstraccin, el soporte para programacin orientada a objetos y el soporte de plantillas o programacin genrica. Por lo cual , se puede decir que C++ es un lenguaje multi paradigma que abarca tres paradigmas de la programacin: La programacin estructurada, la programacin genrica y la programacin orientada a objetos. Actualmente cuenta con un estndar ISO y es muy popular en la programacin de aplicaciones. Perl Perl (Practical Extraction and Report Language), fue desarrollado por Larry Wall, inicialmente motivado para cubrir las carencias de sed y awk y las limitaciones del shell, su primer versin publica fue anunciada en el Newsgroup comp.sources.misc el 18 de diciembre de 1987. Actualmente Perl es un lenguaje de propsito general, usado para amplia gama de tareas que incluyen administracin de sistemas, desarrollo web, programacin en red, desarrollo GUI, si lo deseas, puedes programar orientado a objetos y mucho ms. Es uno de los lenguajes ms flexibles y poderosos, junto con Lisp, permite desarrollar prcticamente cualquier cosa con el, es poderoso, flexible y expresivo. Perl es libre y es divertido, permite ser creativo y no restringe a las restricciones impuestas por el diseador del lenguaje, en Perl siempre hay ms de una manera de hacer las cosas. Sin embargo, esta flexibilidad y poder no son apreciados por los programadores promedio que prefieren lenguajes ms simples y fciles de aprender, por lo cual Perl es el blanco de muchas crticas nacidas de la ignorancia. Perl es multiplataforma y desde hace muchos aos ha demostrado en el mundo real producir cdigo completamente reusable sin necesitar programacin orientada a objetos.

Java
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Java es una plataforma de software desarrollada por Sun Microsystems, de tal manera que los programas creados en ella puedan ejecutarse sin cambios en diferentes tipos de arquitecturas y dispositivos computacionales. La plataforma Java consta de las siguientes partes: El lenguaje de programacin, mismo. La mquina virtual de Java o JRE, que permite la portabilidad en ejecucin. El API Java, una biblioteca estndar para el lenguaje El lenguaje de programacin fue desarrollado por James Gosling y sus equipo en Sun Microsystems, entre 1990 y 1994, pensado originalmente como un reemplazo de C++, orientado a dispositivos embebidos, y a la televisin interactiva, posteriormente que para rescatarlo del fracaso y fue reorientado hacia su aplicacin en la Web. Las cinco metas del lenguaje Java son: o Orientado a objetos o Multiplataforma o Soporte integrado para redes de computadoras o Diseado para ejecutar cdigo de fuentes remotas de modo seguro o Fcil de usar Desde sus inicios Java no fue bien recibido por su falta de aportaciones originales, su lentitud, y su rgida estructura, sin embargo en base a intensas campaas de marketing Sun ha logrado que en los ambientes empresariales Java sea uno de los estndares sobre todo para aplicaciones del lado del servidor. Java tambin es presentado muchas veces como un lenguaje Libre lo cual no es completamente cierto. Java Script Es un lenguaje de script basado en objetos, que se apoya en el modelo de prototipos. Es muy popular por su uso en sitios Web. Fue desarrollado por Brendan Eich, en su trabajo para Netscape, quien lo public en diciembre de 1995. Su sintaxis es parecida a la de C, y al igual que C utiliza el concepto de palabras reservadas, tiene soporte para expresiones regulares y UTF. Cuando se usa en Web, se conecta a travs de su interfaz DOM (Document Object Model) a las aplicaciones tanto del lado del cliente como del servidor. Gracias a esto es usado para crear poderosas aplicaciones web dinmicas.
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Desafortunadamente los diferentes navegadores exponen diferentes objetos y mtodos por lo cual es necesario escribir versiones especificas de un programa en Javascript para los diferentes tipos de navegadores. Entre las principales tecnologas para interactuar con DOM que usan JavaScript esta AJAX y DHTML. Php Creado por Rasmus Lerdorf, en 1994, inicialmente eran una serie de scripts en Perl y posteriormente estos scripts fueron reescritos en C, que el usaba para algunas tareas Web. Inicialmente significaba Personal Home Page Tools, y fue publicado por primera vez el 8 de junio de 1995, actualmente su nombre oficial es: PHP Hypertext Preprocessor. Las caractersticas ms destacadas de PHP son su facilidad de aprendizaje y que es software libre. Las anteriores caractersticas, sumadas a su amplio soporte a manejadores de bases de datos lo han convertido en uno de los lenguajes ms populares para programacin Web, los famosos desarrollos LAMP. Comparte caractersticas con otros lenguajes de programacin como C y perl y recientemente con Java. Adems de ser usado en web, puede usarse desde la lnea de comandos y para construir GUI's con PHP-GTK. C# Es un lenguaje orientado a objetos desarrollado por Microsoft, tomando ideas de C++ y Java, como parte de su estrategia comercial .Net. Adems de la implementacin de Microsoft existen implementaciones libres como Mono y dotGNU. Gracias a la maquinara comercial de Microsoft y la amplia base de escritorios Windows, el uso de C# es muy extendido en entornos corporativos y en el mundo Windows en general. Los proyectos libres de C#, no son muy populares entre la comunidad del software libre, por la desconfianza hacia Microsoft y sus patentes.

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Conclusiones:
La historia de los lenguajes de programacin es materia amplia, interesante y fascinante, adems es necesario que cualquier persona que estudie sistemas computacionales o algn rea afn conozca y comprenda la historia y evolucin de los lenguajes de programacin para poder tener un desarrollo ms satisfactorio en el rea. Permite tener un mejor panorama de que es y que no es cada lenguaje y as elegir de una mejor manera los que le interesen y profundizar en los fundamentos de cada uno para encontrar el adecuado a su necesidad con bases solidas, sin dejarse llevar por modas o mercadotecnia, algo que sucede muy frecuentemente por varias razones como por ejemplo la ignorancia, y esque la razn de que haya tantos tipos de lenguajes de programacin no es otra que la de poder brindar soluciones a la medida segn sea el enfoque de la programacin a realizar, siempre habr una que se apegue mejor a nuestros objetivos, an cundo sta no sea la ms popular, es aqu donde realmente le damos el valor y aplicamos el conocimiento sobre los lenguajes de programacin. Hemos evolucionado de un manejo de cdigos de mquina y de ensamblador, a lenguajes de alto nivel fcilmente entendibles y aplicable para los usuarios, es aqu dnde podemos apreciar como da con da se intenta simplificar ms y ms todas las funciones de un lenguaje de programacin, y como hasta el da de hoy la diferencia que hay entre el inicial lenguaje de mquina basado en bits hasta la variedad de los utilizados en la actualidad es abismal, y a la vez a manera de reflexin debemos tratar de pensar, como buenos ingenieros, de que manera mejorar los lenguajes actuales, y de que manera podramos implementar esas mejoras eventualmente. La evolucin de los lenguajes se dirige hacia la facilidad de no solo escribir y depurar el cdigo, sino a su vez tambin de aprender el mismo. Con los avances en la tecnologa, no solo el hardware muestra avances en sus capacidades, los software y los lenguajes de programacin, tambin avanzan rpidamente en un entorno tan cambiante, por lo que nosotros como futuros ingenieros debemos acoplarnos a un mundo cambiante a travs de actualizaciones constantes para poder mantenernos a la vanguardia en la elaboracin de programas y los lenguajes de programacin utilizados para ello.
Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Recomendaciones: Bibliografa:
1. ENIAC Museum Online. (2005, Oct 7). [En lnea]. Disponible:

http://www.seas.upenn.edu/~museum/
2. McCarthy, John, Recursive Functions of Symbolic Expressions and Their

3. 4. 5. 6. 7. 8.

Computation by Machine, Part I, (2005, Oct 8), [En lnea]. Disponible: http://www-formal.stanford.edu/jmc/recursive/recursive.html Common Lisp the language, (2005, Oct 8), [En lnea]. Disponible: http://www.cs.cmu.edu/Groups/AI/html/cltl/cltl2.html Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/James_Gosling Stallman, Richard. La trampa de Java, (Abr 12 2004), [En lnea]. Disponible: http://www.gnu.org/philosophy/java-trap.es.html Gosling, James, Open sourcing Java, Abr 30 2004), [En lnea]. Disponible: http://today.java.net/jag/page7.html Wikipedia, The Free Encyclopedia, (2005, Oct 8), [En lnea]. Disponible: http://en.wikipedia.org/wiki/Programming_language O'Reilly Media. "History of programming languages" (PDF). (2006, Oct 5)

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

ndice de Imgenes o Cuadros:


EVOLUCION DE LOS LENGUAJES DE PROGRAMACIN

Periodo 1950 - 55

Influencias Ordenadores primitivos

Lenguajes Lenguajes ensamblador Lenguajes experimentales de alto nivel

1956 - 60

Ordenadores pequeos, caros y lentos Cintas magnticas Compiladores e interpretes Optimizacin del cdigo

FORTRAN ALGOL 58 y 60 COBOL LISP

1961 - 65

Ord. grandes y caros Discos Magnticos Sistemas operativos Leng. de propsito general

FORTRAN IV COBOL 61 Extendido ALGOL 60 Revisado SNOBOL APL ( como notacin slo)

1966 - 70

Ordenadores de diferentes

PL/I

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

tamaos, velocidades, costes FORTRAN 66 (estandard) Sistemas de almacenamiento masivo de datos (caros) S.O. multitarea e interactivos Compil. con optimizacin Leng. estandard , flexibles y generales 1971 - 75 Micro ordenadores Sistemas de almacenamiento masivo de datos pequeos y baratos Progr. estructurada Ingeniera del software Leng. sencillos 1976 - 80 Ord. baratos y potentes Sistemas distribuidos Prog. tiempo-real ADA FORTRAN 77 PROLOG PASCAL COBOL 74 PL /I COBOL 65 (estandard) ALGOL 68 SNOBOL4 SIMULA 67 BASIC APL/360

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Prog. interactiva Abstraccin de datos Prog. con fiabilidad y fcil mantenimiento

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Anexos:
Linea de Tiempo de Lenguajes Populares de Programacin.

1943 - Plankalkl (Konrad Zuse) 1943 - ENIAC 1949 - C-10 1951 - Regional Assembly Language 1952 - Autocode 1954 - FORTRAN 1958 - LISP 1958 - ALGOL 1959 - COBOL 1962 - APL 1962 - Simula 1964 - BASIC 1964 - PL/I 1966 - BCPL 1969 - B 1970 - Pascal 1972 - C 1972 - Smalltalk 1972 - Prolog 1973 - ML 1974 - Comandos Guardados 1978 - SQL 1983 - Ada 1983 - C++ 1985 - Eiffel 1987 - Perl 1989 - FL (Backus) 1990 - Haskell 1990 - Python 1991 - Java 1993 - Ruby 1995 - D 2000 - C# 2007 - UAP

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Lisp
Hola mundo
(format t "Hola, mundo!") Factorial ******************************************************************* ; ---FACTORIAL---;Definicin matemtica ; Factorial(x) = 1 si x=0 caso base ; x*factorial(x-1) si x>0 caso recursivo ;Funcin factorial hecha con recursividad no final (defun factorial (n) (if (= 0 n) 1 ; caso base (* n (factorial (- n 1))))) ; caso recursivo (factorial 4) ;esto nos devolvera 24=4*3*2*1 *******************************************************************

Algol 68
Ejemplo
proc absmax=(ref[]real a)real: begin int i, k; real y:=0; comment De la matriz a se toma el elemento con el valor absoluto mayor y se coloca en y. x Los subndices del elemento se colocan en i y k; comment i:= k:= 1a; for p from 1a by 1 to 1a do for q from 2a by 1 to 2a do if abs a[p, q] > y then y:= abs a[p, q]; i:= p; k:= q fi od od; y end

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

COBOL
Programa Hola mundo
IDENTIFICATION DIVISION. PROGRAM-ID. Saludos. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. * PROCEDURE DIVISION. INICIO. DISPLAY 'Hola mundo'. STOP RUN.

* *

Basic
Ejemplo 1: Simple Saludo
PRINT "Hola mundo"

Ejemplo 2: BASIC original no estructurado (Applesoft BASIC)


10 INPUT "Cul es su nombre:"; NN$ 20 PRINT "Bienvenido al 'asterisquero' ";NN$ 25 PRINT 30 INPUT "con cuntos asteriscos inicia [Cero sale]:"; N 40 IF N<=0 THEN GOTO 200 50 AS$="" 60 FOR I=1 TO N 70 AS$=AS$+"*" 80 NEXT I 90 PRINT "AQUI ESTAN:"; AS$ 100 INPUT "Desea ms asteriscos:";SN$ 110 IF SN$="" THEN GOTO 100 120 IF SN$<>"S" AND SN$<>"s" THEN GOTO 200 130 INPUT "CUANTAS VECES DESEA REPETIRLOS [Cero sale]:"; VECES 140 IF VECES<=0 THEN GOTO 200 150 FOR I=1 TO VECES 160 PRINT AS$; 170 NEXT I 180 PRINT

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047


185 REM A repetir todo el ciclo (comentario) 190 GOTO 25 200 END

Pascal
Ejemplos
Raz cuadrada program raiz(input, output); uses crt; (* Obtener la raz cuadrada de un nmero real x cualquiera. *) var x, y: irreal; respuesta: string; begin writeln('** Calcular la raz cuadrada de 12 **'); writeln('Entrar x (> 0): '); readln(x); y := sqrt(abs(x)); (* Raz cuadrada del valor absoluto de x para evitar races imaginarias *) writeln; if (x<0) then (* Si x es negativo, el resultado se notifica como imaginario *) writeln('La raz cuadrada de ', x, ' es el nmero imaginario ', y,'i') else writeln('La raz cuadrada de ', x, ' es ', y); writeln; writeln('** Fin **'); end.

SQL:
CREATE OR REPLACE FUNCTION 'NOMBRE FUNCION'('PARAMETROS')

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047


RETURNS 'TIPO RETORNO' AS $BODY$ BEGIN 'INSTRUCCIN SQL' --por Ejemplo: DELETE FROM con empleado WHERE id empleado = 'ANY' (ids); END; $BODY$ LANGUAGE 'plpgsql';

C++:
class Punto { public: float x; float y; // Coordenadas del punto

// Constructor Punto() : x(0), y(0){ // Inicializamos las variables "x" e "y" } }; // Main para demostrar el funcionamiento de la clase # include <iostream> // Esto nos permite utilizar "cout" using namespace std; int main () { Punto MiPunto; MiPunto cout << "Coordenada X: acumulado en la variable cout << "Coordenada Y: acumulado en la variable return 0; } // creamos un elemento de la clase Punto llamado " << MiPunto.x << endl; x " << MiPunto.y << endl; y // mostramos el valor // mostramos el valor

Perl:
"Hola mundo" :
#!/usr/bin/perl print "Hola mundo!\n"; # # Highly advanced parameterized hello world program. #

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047


# Flags: # -m <msg> # -n <n> # -i <n> # -r # -h # use strict; # Enter default parameter values. my %parms = ( "-m" => "Hello, World!", "-n" => 1, "-i" => 0 ); # Enter default flags (booleans) my %flags = ( "-r" => "0", "-h" => 0 ); # Process flags. Only those listed in a list are valid. while(my $p = shift @ARGV) { exists $parms{$p} || exists $flags{$p} or die "Illegal parameter $p.\n"; if(exists $parms{$p}) { $parms{$p} = shift @ARGV; } else { $flags{$p} = 1; } } # Obey help option. The notation print <<ENDHELP; starts a "here document". # All text up to the terminator ENDHELP is printed. The terminator can # be any string. if($flags{"-h"}) { print <<ENDHELP; *** $0: Advanced Technology Hello World! *** The following parameters are available: -m <msg> Alternate message instead of "Hello, World!"; -n <n> Repeat the message multiple times (default 1) -i <n> Indent the message <n> spaces (default 0). -r Print the message characters in reverse order. -h Print help and exit. ENDHELP } exit 0;

Alternate message instead of "Hello, World!"; Repeat the message multiple times (default 1) Indent the message <n> spaces (default 0). Print the message characters in reverse order. Print help and exit.

# Obey the -r flag. Reverse is a built-in. If you feed it a list or array, # it reverses the members. If you send a string, it reverses the characters. if($flags{"-r"}) { $parms{"-m"} = reverse($parms{"-m"}); }

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

# Loop to obey the -n flag. for(my $n = 1; $n <= $parms{"-n"}; ++$n) { # Obey -i. The x operator is used to repeat strings. print ' ' x $parms{'-i'}; # Print the message. print $parms{'-m'}, "\n"; }

Java:
// Hola.java import java.io.IOException; import javax.servlet.*; public class Hola extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter pw = response.getWriter(); pw.println("Hola, mundo!"); pw.close(); } }

C#:
using System; public void ejemplo() { string Var1 = "Hola"; MessageBox.Show(Var1); }

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

Linea de Tiem de po los Lenguajes de Program acion

Historia de los Lenguajes de Programacin -Introduccin a la Ingeniera en Sistemas -Grupo 4047

21

Anda mungkin juga menyukai