Lenguajes de desarrollo (programación)
-
Author
raul-aguirre-martinez -
Category
Technology
-
view
236 -
download
2
Embed Size (px)
Transcript of Lenguajes de desarrollo (programación)
1. Alumno: Raul Aguirre Martinez 2. Un lenguaje de programacin es un idiomaartificial diseado para expresarcomputaciones que pueden ser llevadas acabo por mquinas como las computadoras.Pueden usarse para crear programas quecontrolen el comportamiento fsico y lgicode una mquina, para expresar algoritmoscon precisin, o como modo de comunicacinhumana. Est formado de un conjunto desmbolos y reglas sintcticas y semnticasque definen su estructura y el significado desus elementos y expresiones. 3. Al proceso por el cual se escribe, se prueba,se depura, se compila y se mantiene elcdigo fuente de un programa informtico sele llama programacin. 4. Tambin la palabra programacin se define como elproceso de creacin de un programa de computadora,mediante la aplicacin de procedimientos lgicos, a travsde los siguientes pasos: El desarrollo lgico del programa para resolver unproblema en particular. Escritura de la lgica del programa empleando un lenguajede programacin especfico (codificacin del programa) Ensamblaje o compilacin del programa hasta convertirloen lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin. 5. Desde 1954 hasta la actualidad se handocumentado ms de 2.500 lenguajes deprogramacin (consultar en The LanguageList ). Entre 1952 y 1972, la primera pocade los lenguajes de programacin, sedesarrollaron alrededor de 200 lenguajes, delos que una decena fueron realmentesignificativos y tuvieron influencia en eldesarrollo de lenguajes posteriores.Una lista parcial de algunos de los lenguajesde programacin ms importantes, junto consu ao de creacin: 6. 1957 FORTRAN 1983 Smalltalk-80 1958 ALGOL 1983 Objective-C 1960 Lisp 1983 Ada 1960 COBOL 1986 C++ 1962 APL 1986 Eiffel 1962 SIMULA 1987 Perl 1964 BASIC 1988 Tcl/Tk 1964 PL/I 1990 Haskell 1970 Prolog 1991 Python 1972 C 1993 Ruby 1975 Pascal 1995 Java 1975 Scheme 1995 PHP 1975 Modula 2000 C# 7. Linea del tiempo. 8. El lenguaje mquina de una computadora constade cadenas de nmeros binarios (ceros y unos) y esel nico que entienden directamente losprocesadores. Todas las instrucciones preparadasen cualquier lenguaje de mquina tienen por lomenos dos partes. La primera es el comando uoperacin, que dice a la computadora cul es lafuncin que va a realizar. Todas las computadorastienen un cdigo de operacin para cada una desus funciones. La segunda parte de la instruccines el operando, que indica a la computadora dndehallar o almacenar los datos y otras instruccionesque se van a manipular; el nmero de operandosde una instruccin vara en las distintascomputadoras. 9. A principios de la dcada de 1950, y con el finde facilitar la labor de los programadores, sedesarrollaron cdigos nemotcnicos para lasoperaciones y direcciones simblicas. Lapalabra nemotcnico se refiere a una ayudapara la memorizacin. Uno de los primerospasos para mejorar el proceso de preparacinde programas fue sustituir los cdigos deoperaciones numricos del lenguaje demquina por smbolos alfabticos, que son loscdigos nemotcnicos. 10. Los primeros programas ensambladores producan slo unainstruccin en lenguaje de mquina por cada instruccin delprograma fuente. Para agilizar la codificacin, sedesarrollaron programas ensambladores que podan produciruna cantidad variable de instrucciones en lenguaje demquina por cada instruccin del programa fuente. Dicho deotra manera, una sola macroinstruccin poda producir variaslneas de cdigo en lenguaje de mquina. Los primerosprogramas ensambladores producan slo una instruccin enlenguaje de mquina por cada instruccin del programafuente. Para agilizar la codificacin, se desarrollaronprogramas ensambladores que podan producir una cantidadvariable de instrucciones en lenguaje de mquina por cadainstruccin del programa fuente. Dicho de otra manera, unasola macroinstruccin poda producir varias lneas de cdigoen lenguaje de mquina. 11. Naturalmente, un programa que se escribe en un lenguaje de altonivel tambin tiene que traducirse a un cdigo que pueda utilizar lamquina. Los programas traductores que pueden realizar estaoperacin se llaman compiladores. stos, como los programasensambladores avanzados, pueden generar muchas lneas de cdigode mquina por cada proposicin del programa fuente. Se requiereuna corrida de compilacin antes de procesar los datos de unproblema.Los compiladores son aquellos cuya funcin es traducir un programaescrito en un determinado lenguaje a un idioma que la computadoraentienda (lenguaje mquina con cdigo binario).Al usar un lenguaje compilado (como lo son los lenguajes delpopular Visual Studio de Microsoft), el programa desarrollado nuncase ejecuta mientras haya errores, sino hasta que luego de habercompilado el programa, ya no aparecen errores en el cdigo. 12. Se puede tambin utilizar una alternativa diferente de los compiladores para traducirlenguajes de alto nivel. En vez de traducir el programa fuente y grabar en formapermanente el cdigo objeto que se produce durante la corrida de compilacin parautilizarlo en una corrida de produccin futura, el programador slo carga el programafuente en la computadora junto con los datos que se van a procesar. A continuacin, unprograma intrprete, almacenado en el sistema operativo del disco, o incluido demanera permanente dentro de la mquina, convierte cada proposicin del programafuente en lenguaje de mquina conforme vaya siendo necesario durante el proceso delos datos. No se graba el cdigo objeto para utilizarlo posteriormente.La siguiente vez que se utilice una instruccin, se le debe interpretar otra vez ytraducir a lenguaje mquina. Por ejemplo, durante el procesamiento repetitivo de lospasos de un ciclo, cada instruccin del ciclo tendr que volver a ser interpretado cadavez que se ejecute el ciclo, lo cual hace que el programa sea ms lento en tiempo deejecucin (porque se va revisando el cdigo en tiempo de ejecucin) pero ms rpidoen tiempo de diseo (porque no se tiene que estar compilando a cada momento elcdigo completo). El intrprete elimina la necesidad de realizar una corrida decompilacin despus de cada modificacin del programa cuando se quiere agregarfunciones o corregir errores; pero es obvio que un programa objeto compilado conantelacin deber ejecutarse con mucha mayor rapidez que uno que se debeinterpretar a cada paso durante una corrida de produccin. 13. La programacin declarativa es una forma de programacinque implica la descripcin de un problema dado en lugar deproveer una solucin para dicho problema, dejando lainterpretacin de los pasos especficos para llegar a dichasolucin a un intrprete no especificado. La programacindeclarativa adopta, por lo tanto, un enfoque diferente al dela programacin imperativa tradicional.En otras palabras, la programacin declarativa provee elqu, pero deja el cmo liberado a la implementacinparticular del intrprete. Por lo tanto se puede ver que laprogramacin declarativa tiene dos fases bien diferenciadas,la declaracin y la interpretacin.Es importante sealar que a pesar de hacer referencia aintrprete, no hay que limitarse a lenguajes interpretadosen el sentido habitual del trmino, sino que tambin sepuede estar trabajando con lenguajes compilados. 14. -Los lenguajes declarativos estn orientados a buscar la solucin del problema, sinpreocuparse por la forma de llegar a ello; es decir, el programador debe concentrarseen la lgica del algoritmo, ms que en el control de la secuencia.-Los programas estn formados por un conjunto de definiciones o ecuaciones, las cualesdescriben lo que debe ser calculado, no en s la forma de hacerlo.-Las variables slo pueden tener asignado un solo valor a lo largo de la ejecucin delprograma, lo cual implica que no puede existir asignacin destructiva. Debido a esto,cobra especial importancia el uso del anidamiento y la recursividad.-Las listas representan la estructura fundamental de datos.-El orden de la ejecucin no resulta importante debido a que no existen efectoscolaterales; es decir, que al calcular un valor, resulta imposible afectar el clculo deotros y con esto se puede afirmar que cualquier secuencia de ejecucin deberconducir al mismo resultado.-Las expresiones o definiciones pueden ser usadas como valores y por lo tanto sepueden tratar como argumentos de otras definiciones.-El control de la ejecucin no es responsabilidad del programador. 15. La principal desventaja de la programacindeclarativa es que no puede resolver cualquierproblema dado, sino que est restringida alsubconjunto de problemas para los que elintrprete o compilador fue diseado. 16. A pesar de lo anterior existen algunas ventajas en eluso de la programacin declarativa. Entre las ventajasse destaca que la solucin de un problema se puederealizar con un nivel de abstraccin considerablementealto, sin entrar en detalles de implementacinirrelevantes, lo que hace a las soluciones ms fcil deentender por las personas. La resolucin de problemascomplejos es resuelta por el intrprete a partir de ladeclaracin de las condiciones dadas.La programacin declarativa es muy usada en laresolucin de problemas relacionados con inteligenciaartificial, bases de datos, configuracin, ycomunicacin entre procesos; sin embargo, ningnleguaje declarativo se aproxima en popularidad a loslenguajes imperativos. 17. PROLOG SQL HTML WSDL (Web Services Description Language) XML Stylesheet Language for Transformation 18. En ciencias de la computacin se llama lenguajesimperativos a aquellos en los cuales se le ordena ala computadora cmo realizar una tarea siguiendouna serie de pasos o instrucciones, por ejemplo:Paso 1, solicitar nmero.Paso 2, multiplicar nmero por dos.Paso 3, imprimir resultado de la operacin.Paso 4, etc.El proceso anterior se puede realizar con unlenguaje imperativo como por ejemplo BASIC, C,C++, Java, Clipper, Dbase, C#, PHP, Perl, etc. 19. En los lenguajes declarativos las sentencias que seutilizan lo que hacen es describir el problema quese quiere solucionar, pero no las instruccionesnecesarias para solucionarlo. Esto ltimo serealizar mediante mecanismos internos deinferencia de informacin a partir de ladescripcin realizada.Los lenguajes imperativos describen paso a paso unconjunto de instrucciones que deben ejecutarsepara variar el estado un programa y hallar lasolucin, es decir, un algoritmo en el que sedescriben los pasos necesarios para solucionar unproblema. 20. En la Programacin Orientada a Objetos (POO uOOP segn siglas en ingls) se definen losprogramas en trminos de clases de objetos,objetos que son entidades que combinanestado (es decir, datos) comportamiento (estoes, procedimientos o mtodos) e identidad(propiedad del objeto que lo diferencia delresto). La programacin orientada a objetosexpresa un programa como un conjunto deestos objetos, que colaboran entre ellos pararealizar tareas. Esto permite hacer losprogramas mdulos ms fciles de escribir,mantener y reutilizar. 21. La programacin orientada a objetos es una nuevaforma de programar que trata de encontrar lasolucin a problemas de una forma que ofrecemuchas ventajas y facilidades que no se tenananteriormente. Introduce nuevos conceptos, quesuperan y amplan conceptos antiguos yaconocidos. Entro ellos destacan los siguientes: OBJETO: entidad provista de un conjunto depropiedades o atributos (datos) y decomportamiento o funcionalidad (mtodos).Corresponden a los objetos reales del mundo quenos rodea, o a objetos internos del sistema (delprograma). 22. -CLASE: definiciones de las propiedades y comportamiento de un tipo deobjeto concreto. La instanciacin es la lectura de estas definiciones y lacreacin de un objeto a partir de ellas. Una clase es una coleccin deobjetos similares o la implementacin, declaracin o definicin de un tipode objeto. Cada vez que se construye un objeto de una clase se crea unainstancia de esa clase. Por ejemplo en Visual Basic, se tiene la clase Form, yse pueden crear instancias de esa clase al tener Form1, Form2, etc. As seest creando una instancia de la clase Form.-MTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuyaejecucin se desencadena tras la recepcin de un mensaje. Desde elpunto de vista del comportamiento, es lo que el objeto puede hacer. Unmtodo puede producir un cambio en lar propiedades del objeto, o lageneracin de un evento con un nuevo mensaje para otro objeto delsistema.-EVENTO: un suceso en el sistema (tal como una interaccin del usuario conla mquina, o un mensaje enviado por un objeto). El sistema maneja elevento enviando el mensaje adecuado al objeto pertinente. 23. -MENSAJE: una comunicacin dirigida a un objeto, que leordena que ejecute uno de sus mtodos con ciertosparmetros asociados al evento que lo gener.-PROPIEDAD O ATRIBUTO: contenedor de un tipo de datosasociados a un objeto (o a una clase de objetos), que hacelos datos visibles desde fuera del objeto, y cuyo valor puedeser alterado por la ejecucin de algn mtodo.-ESTADO INTERNO: es una propiedad invisible de los objetos,que puede ser nicamente accedida y alterada por unmtodo del objeto, y que se utiliza para indicar distintassituaciones posibles para el objeto (o clase de objetos).En comparacin con un lenguaje imperativo, una variable noes ms que un contenedor interno del atributo del objeto ode un estado interno, as como la funcin es unprocedimiento interno del mtodo del objeto. 24. ABSTRACCIN: Cada objeto en el sistema sirvecomo modelo de un "agente" abstracto quepuede realizar trabajo, informar y cambiar suestado, y "comunicarse" con otros objetos en elsistema sin revelar cmo se implementan estascaractersticas. Los procesos, las funciones olos mtodos pueden tambin ser abstrados ycuando lo estn, una variedad de tcnicas sonrequeridas para ampliar una abstraccin. 25. ENCAPSULAMIENTO: tambin llamado "ocultacin de lainformacin". Cada objeto est aislado del exterior, es unmdulo natural, y cada tipo de objeto expone una interfaz aotros objetos que especfica cmo pueden interactuar con losobjetos de la clase. El aislamiento protege a las propiedadesde un objeto contra su modificacin por quien no tengaderecho a acceder a ellas, solamente los propios mtodosinternos del objeto pueden acceder a su estado. Esto aseguraque otros objetos no pueden cambiar el estado interno de unobjeto de maneras inesperadas, eliminando efectossecundarios e interacciones inesperadas. Algunos lenguajesrelajan esto, permitiendo un acceso directo a los datosinternos del objeto de una manera controlada y limitando elgrado de abstraccin. La aplicacin entera se reduce a unagregado o rompecabezas de objetos. Esta caracterstica opropiedad permite por tanto ejecutar la informacin al restode los objetos, impidiendo as accesos incorrectos oconflictos. 26. POLIMORFISMO: comportamientos diferentes,asociados a objetos distintos, puedencompartir el mismo nombre, al llamarlos porese nombre se utilizar el comportamientocorrespondiente al objeto que se est usando.O dicho de otro modo, las referencias y lascolecciones de objetos pueden contenerobjetos de diferentes tipos, y la invocacin deun comportamiento en una referenciaproducir el comportamiento correcto para eltipo real del objeto referenciado. Por ejemploen Visual Basic, el polimorfismo se da al tenerdiferentes tipos de objetos (Form, Label, etc.) 27. HERENCIA: las clases no estn aisladas, sino que serelacionan entre s, formando una jerarqua de clasificacin.Los objetos heredan las propiedades y el comportamiento detodas las clases a las que pertenecen. La herencia organiza yfacilita el polimorfismo y el encapsulamiento permitiendo alos objetos ser definidos y creados como tipos especializadosde objetos preexistentes. Estos pueden compartir (yextender) su comportamiento sin tener que reimplementar sucomportamiento. Esto suele hacerse habitualmenteagrupando los objetos en clases y estas en rboles oenrejados que reflejan un comportamiento comn. Cuandoun objeto pertenece a ms de una clase se dice que hayherencia mltiple; esta caracterstica no est soportada poralgunos lenguajes (como Java). Con esta propiedad, losobjetos heredan comportamientos dentro de una jerarquade clases. 28. La programacin orientada a objetos es ms moderna, esuna evolucin de la programacin imperativa plasmada en eldiseo de una familia de lenguajes conceptos que existanpreviamente, con algunos nuevos. La programacin orientada a objetos se basa en lenguajesque soportan sintctica y semnticamente la unin entre lostipos abstractos de datos y sus operaciones (a esta unin sela suele llamar clase). La programacin orientada a objetos incorpora en suentorno de ejecucin mecanismos tales como el polimorfismoy el envo de mensajes entre objetos. 29. Ada Objective-C C++ Ocaml C# Oz VB.NET PHP Clarion PowerBuilder Delphi Pitn Eiffel Ruby Java Smalltalk Lexico (encastellano) 30. http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html http://www.tagu.com.ar/135_Programaci%C3%B3n http://www.levenez.com/lang/ http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2008-2009/tema-01.html http://jorgesaavedra.wordpress.com/2007/05/05/lenguajes-de-programacion/ http://es.kioskea.net/contents/langages/langages.php3 http://www.desarrolloweb.com/articulos/2358.php http://www.iqcelaya.itc.mx/~vicente/Programacion/Lenguajes.pdf http://qbitacora.wordpress.com/2007/09/21/clasificacion-de-lenguajes-de-programacion/ http://www.ilustrados.com/tema/9525/Tipos-Lenguajes-Programacion.html