Alumno: Raul Aguirre Martinez
Un lenguaje de programación es un idiomaartificial diseñado para expresarcomputaciones que pueden ser llevadas acabo por m...
Al proceso por el cual se escribe, se prueba,se depura, se compila y se mantiene elcódigo fuente de un programa informátic...
También la palabra programación se define como el    proceso de creación de un programa de computadora,    mediante la apl...
Desde 1954 hasta la actualidad se handocumentado más de 2.500 lenguajes deprogramación (consultar en The LanguageList ). E...
   1957 FORTRAN      1983 Smalltalk-80   1958 ALGOL        1983 Objective-C   1960 Lisp         1983 Ada   1960 COB...
Linea del tiempo.
El lenguaje máquina de una computadora constade cadenas de números binarios (ceros y unos) y esel único que “entienden” di...
A principios de la década de 1950, y con el finde facilitar la labor de los programadores, sedesarrollaron códigos nemotéc...
Los primeros programas ensambladores producían sólo unainstrucción en lenguaje de máquina por cada instrucción delprograma...
Naturalmente, un programa que se escribe en un lenguaje de altonivel también tiene que traducirse a un código que pueda ut...
Se puede también utilizar una alternativa diferente de los compiladores para traducirlenguajes de alto nivel. En vez de tr...
La programación declarativa es una forma de programaciónque implica la descripción de un problema dado en lugar deproveer ...
-Los lenguajes declarativos están orientados a buscar la solución del problema, sinpreocuparse por la forma de llegar a el...
La principal desventaja de la programacióndeclarativa es que no puede resolver cualquierproblema dado, sino que está restr...
A pesar de lo anterior existen algunas ventajas en eluso de la programación declarativa. Entre las ventajasse destaca que ...
· PROLOG· SQL· HTML· WSDL (Web Services Description Language)· XML Stylesheet Language for Transformation
En ciencias de la computación se llama lenguajesimperativos a aquellos en los cuales se le ordena ala computadora cómo rea...
En los lenguajes declarativos las sentencias que seutilizan lo que hacen es describir el problema quese quiere solucionar,...
En la Programación Orientada a Objetos (POO uOOP según siglas en inglés) se definen losprogramas en términos de “clases de...
La programación orientada a objetos es una nuevaforma de programar que trata de encontrar lasolución a problemas de una fo...
-CLASE: definiciones de las propiedades y comportamiento de un tipo deobjeto concreto. La instanciación es la lectura de e...
-MENSAJE: una comunicación dirigida a un objeto, que leordena que ejecute uno de sus métodos con ciertosparámetros asociad...
ABSTRACCIÓN: Cada objeto en el sistema sirvecomo modelo de un "agente" abstracto quepuede realizar trabajo, informar y cam...
ENCAPSULAMIENTO: también llamado "ocultación de lainformación". Cada objeto está aislado del exterior, es unmódulo natural...
POLIMORFISMO: comportamientos diferentes,asociados a objetos distintos, puedencompartir el mismo nombre, al llamarlos pore...
HERENCIA: las clases no están aisladas, sino que serelacionan entre sí, formando una jerarquía de clasificación.Los objeto...
· La programación orientada a objetos es más moderna, esuna evolución de la programación imperativa plasmada en eldiseño d...
· Ada          · Objective-C· C++          · Ocaml· C#           · Oz· VB.NET       · PHP· Clarion      · PowerBuilder· De...
   http://www.tiobe.com/index.php/content/paperinfo/tpci    /index.html   http://www.tagu.com.ar/135_Programaci%C3%B3n ...
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
Lenguajes de desarrollo (programación)
Próxima SlideShare
Cargando en…5
×

Lenguajes de desarrollo (programación)

413 visualizaciones

Publicado el

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
413
En SlideShare
0
De insertados
0
Número de insertados
1
Acciones
Compartido
0
Descargas
5
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Lenguajes de desarrollo (programación)

  1. 1. Alumno: Raul Aguirre Martinez
  2. 2. Un lenguaje de programación es un idiomaartificial diseñado para expresarcomputaciones que pueden ser llevadas acabo por máquinas como las computadoras.Pueden usarse para crear programas quecontrolen el comportamiento físico y lógicode una máquina, para expresar algoritmoscon precisión, o como modo de comunicaciónhumana. Está formado de un conjunto desímbolos y reglas sintácticas y semánticasque definen su estructura y el significado desus elementos y expresiones.
  3. 3. Al proceso por el cual se escribe, se prueba,se depura, se compila y se mantiene elcódigo fuente de un programa informático sele llama programación.
  4. 4. También la palabra programación se define como el proceso de creación de un programa de computadora, mediante la aplicación de procedimientos lógicos, a través de los siguientes pasos: El desarrollo lógico del programa para resolver un problema en particular. Escritura de la lógica del programa empleando un lenguaje de programación específico (codificación del programa) Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina. Prueba y depuración del programa. Desarrollo de la documentación.
  5. 5. Desde 1954 hasta la actualidad se handocumentado más de 2.500 lenguajes deprogramación (consultar en The LanguageList ). Entre 1952 y 1972, la primera épocade los lenguajes de programación, 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 programación más importantes, junto consu año de creación:
  6. 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. 7. Linea del tiempo.
  8. 8. El lenguaje máquina de una computadora constade cadenas de números binarios (ceros y unos) y esel único que “entienden” directamente losprocesadores. Todas las instrucciones preparadasen cualquier lenguaje de máquina tienen por lomenos dos partes. La primera es el comando uoperación, que dice a la computadora cuál es lafunción que va a realizar. Todas las computadorastienen un código de operación para cada una desus funciones. La segunda parte de la instrucciónes el operando, que indica a la computadora dóndehallar o almacenar los datos y otras instruccionesque se van a manipular; el número de operandosde una instrucción varía en las distintascomputadoras.
  9. 9. A principios de la década de 1950, y con el finde facilitar la labor de los programadores, sedesarrollaron códigos nemotécnicos para lasoperaciones y direcciones simbólicas. Lapalabra nemotécnico se refiere a una ayudapara la memorización. Uno de los primerospasos para mejorar el proceso de preparaciónde programas fue sustituir los códigos deoperaciones numéricos del lenguaje demáquina por símbolos alfabéticos, que son loscódigos nemotécnicos.
  10. 10. Los primeros programas ensambladores producían sólo unainstrucción en lenguaje de máquina por cada instrucción delprograma fuente. Para agilizar la codificación, sedesarrollaron programas ensambladores que podían produciruna cantidad variable de instrucciones en lenguaje demáquina por cada instrucción del programa fuente. Dicho deotra manera, una sola macroinstrucción podía producir variaslíneas de código en lenguaje de máquina. Los primerosprogramas ensambladores producían sólo una instrucción enlenguaje de máquina por cada instrucción del programafuente. Para agilizar la codificación, se desarrollaronprogramas ensambladores que podían producir una cantidadvariable de instrucciones en lenguaje de máquina por cadainstrucción del programa fuente. Dicho de otra manera, unasola macroinstrucción podía producir varias líneas de códigoen lenguaje de máquina.
  11. 11. Naturalmente, un programa que se escribe en un lenguaje de altonivel también tiene que traducirse a un código que pueda utilizar lamáquina. Los programas traductores que pueden realizar estaoperación se llaman compiladores. Éstos, como los programasensambladores avanzados, pueden generar muchas líneas de códigode máquina por cada proposición del programa fuente. Se requiereuna corrida de compilación antes de procesar los datos de unproblema.Los compiladores son aquellos cuya función es traducir un programaescrito en un determinado lenguaje a un idioma que la computadoraentienda (lenguaje máquina con código 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 código.
  12. 12. Se puede también utilizar una alternativa diferente de los compiladores para traducirlenguajes de alto nivel. En vez de traducir el programa fuente y grabar en formapermanente el código objeto que se produce durante la corrida de compilación parautilizarlo en una corrida de producción futura, el programador sólo carga el programafuente en la computadora junto con los datos que se van a procesar. A continuación, unprograma intérprete, almacenado en el sistema operativo del disco, o incluido demanera permanente dentro de la máquina, convierte cada proposición del programafuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso delos datos. No se graba el código objeto para utilizarlo posteriormente.La siguiente vez que se utilice una instrucción, se le debe interpretar otra vez ytraducir a lenguaje máquina. Por ejemplo, durante el procesamiento repetitivo de lospasos de un ciclo, cada instrucción del ciclo tendrá que volver a ser interpretado cadavez que se ejecute el ciclo, lo cual hace que el programa sea más lento en tiempo deejecución (porque se va revisando el código en tiempo de ejecución) pero más rápidoen tiempo de diseño (porque no se tiene que estar compilando a cada momento elcódigo completo). El intérprete elimina la necesidad de realizar una corrida decompilación después de cada modificación del programa cuando se quiere agregarfunciones o corregir errores; pero es obvio que un programa objeto compilado conantelación deberá ejecutarse con mucha mayor rapidez que uno que se debeinterpretar a cada paso durante una corrida de producción.
  13. 13. La programación declarativa es una forma de programaciónque implica la descripción de un problema dado en lugar deproveer una solución para dicho problema, dejando lainterpretación de los pasos específicos para llegar a dichasolución a un intérprete no especificado. La programacióndeclarativa adopta, por lo tanto, un enfoque diferente al dela programación imperativa tradicional.En otras palabras, la programación declarativa provee el“qué”, pero deja el “cómo” liberado a la implementaciónparticular del intérprete. Por lo tanto se puede ver que laprogramación declarativa tiene dos fases bien diferenciadas,la declaración y la interpretación.Es importante señalar que a pesar de hacer referencia aintérprete, no hay que limitarse a “lenguajes interpretados”en el sentido habitual del término, sino que también sepuede estar trabajando con “lenguajes compilados”.
  14. 14. -Los lenguajes declarativos están orientados a buscar la solución del problema, sinpreocuparse por la forma de llegar a ello; es decir, el programador debe concentrarseen la lógica del algoritmo, más que en el control de la secuencia.-Los programas están formados por un conjunto de definiciones o ecuaciones, las cualesdescriben lo que debe ser calculado, no en sí la forma de hacerlo.-Las variables sólo pueden tener asignado un solo valor a lo largo de la ejecución delprograma, lo cual implica que no puede existir asignación 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 ejecución no resulta importante debido a que no existen efectoscolaterales; es decir, que al calcular un valor, resulta imposible afectar el cálculo deotros y con esto se puede afirmar que cualquier secuencia de ejecución deberáconducir 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 ejecución no es responsabilidad del programador.
  15. 15. La principal desventaja de la programacióndeclarativa es que no puede resolver cualquierproblema dado, sino que está restringida alsubconjunto de problemas para los que elintérprete o compilador fue diseñado.
  16. 16. A pesar de lo anterior existen algunas ventajas en eluso de la programación declarativa. Entre las ventajasse destaca que la solución de un problema se puederealizar con un nivel de abstracción considerablementealto, sin entrar en detalles de implementaciónirrelevantes, lo que hace a las soluciones más fácil deentender por las personas. La resolución de problemascomplejos es resuelta por el intérprete a partir de ladeclaración de las condiciones dadas.La programación declarativa es muy usada en laresolución de problemas relacionados con inteligenciaartificial, bases de datos, configuración, ycomunicación entre procesos; sin embargo, ningúnleguaje declarativo se aproxima en popularidad a loslenguajes imperativos.
  17. 17. · PROLOG· SQL· HTML· WSDL (Web Services Description Language)· XML Stylesheet Language for Transformation
  18. 18. En ciencias de la computación se llama lenguajesimperativos a aquellos en los cuales se le ordena ala computadora cómo realizar una tarea siguiendouna serie de pasos o instrucciones, por ejemplo:Paso 1, solicitar número.Paso 2, multiplicar número por dos.Paso 3, imprimir resultado de la operación.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. 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 información a partir de ladescripción realizada.Los lenguajes imperativos describen paso a paso unconjunto de instrucciones que deben ejecutarsepara variar el estado un programa y hallar lasolución, es decir, un algoritmo en el que sedescriben los pasos necesarios para solucionar unproblema.
  20. 20. En la Programación Orientada a Objetos (POO uOOP según siglas en inglés) se definen losprogramas en términos de “clases de objetos”,objetos que son entidades que combinanestado (es decir, datos) comportamiento (estoes, procedimientos o métodos) e identidad(propiedad del objeto que lo diferencia delresto). La programación orientada a objetosexpresa un programa como un conjunto deestos objetos, que colaboran entre ellos pararealizar tareas. Esto permite hacer losprogramas módulos más fáciles de escribir,mantener y reutilizar.
  21. 21. La programación orientada a objetos es una nuevaforma de programar que trata de encontrar lasolución a problemas de una forma que ofrecemuchas ventajas y facilidades que no se teníananteriormente. Introduce nuevos conceptos, quesuperan y amplían conceptos antiguos yaconocidos. Entro ellos destacan los siguientes:· OBJETO: entidad provista de un conjunto depropiedades o atributos (datos) y decomportamiento o funcionalidad (“métodos”).Corresponden a los objetos reales del mundo quenos rodea, o a objetos internos del sistema (delprograma).
  22. 22. -CLASE: definiciones de las propiedades y comportamiento de un tipo deobjeto concreto. La instanciación es la lectura de estas definiciones y lacreación de un objeto a partir de ellas. Una clase es una colección deobjetos similares o la implementación, declaración o definición 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.-MÉTODO: algoritmo asociado a un objeto (o a una clase de objetos), cuyaejecución se desencadena tras la recepción de un “mensaje”. Desde elpunto de vista del comportamiento, es lo que el objeto puede hacer. Unmétodo puede producir un cambio en lar propiedades del objeto, o lageneración de un “evento” con un nuevo mensaje para otro objeto delsistema.-EVENTO: un suceso en el sistema (tal como una interacción del usuario conla máquina, o un mensaje enviado por un objeto). El sistema maneja elevento enviando el mensaje adecuado al objeto pertinente.
  23. 23. -MENSAJE: una comunicación dirigida a un objeto, que leordena que ejecute uno de sus métodos con ciertosparámetros 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 ejecución de algún método.-ESTADO INTERNO: es una propiedad invisible de los objetos,que puede ser únicamente accedida y alterada por unmétodo del objeto, y que se utiliza para indicar distintassituaciones posibles para el objeto (o clase de objetos).En comparación con un lenguaje imperativo, una “variable noes más que un contenedor interno del atributo del objeto ode un estado interno, así como la “función” es unprocedimiento interno del método del objeto.
  24. 24. ABSTRACCIÓN: 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 cómo se implementan estascaracterísticas. Los procesos, las funciones olos métodos pueden también ser abstraídos ycuando lo están, una variedad de técnicas sonrequeridas para ampliar una abstracción.
  25. 25. ENCAPSULAMIENTO: también llamado "ocultación de lainformación". Cada objeto está aislado del exterior, es unmódulo natural, y cada tipo de objeto expone una interfaz aotros objetos que específica cómo pueden interactuar con losobjetos de la clase. El aislamiento protege a las propiedadesde un objeto contra su modificación por quien no tengaderecho a acceder a ellas, solamente los propios métodosinternos 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 abstracción. La aplicación entera se reduce a unagregado o rompecabezas de objetos. Esta característica opropiedad permite por tanto ejecutar la información al restode los objetos, impidiendo así accesos incorrectos oconflictos.
  26. 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 invocación 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. 27. HERENCIA: las clases no están aisladas, sino que serelacionan entre sí, formando una jerarquía de clasificación.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 común. Cuandoun objeto pertenece a más de una clase se dice que hayherencia múltiple; esta característica no está soportada poralgunos lenguajes (como Java). Con esta propiedad, losobjetos heredan comportamientos dentro de una jerarquíade clases.
  28. 28. · La programación orientada a objetos es más moderna, esuna evolución de la programación imperativa plasmada en eldiseño de una familia de lenguajes conceptos que existíanpreviamente, con algunos nuevos.· La programación orientada a objetos se basa en lenguajesque soportan sintáctica y semánticamente la unión entre lostipos abstractos de datos y sus operaciones (a esta unión sela suele llamar clase).· La programación orientada a objetos incorpora en suentorno de ejecución mecanismos tales como el polimorfismoy el envío de mensajes entre objetos.
  29. 29. · Ada · Objective-C· C++ · Ocaml· C# · Oz· VB.NET · PHP· Clarion · PowerBuilder· Delphi · Pitón· Eiffel · Ruby· Java · Smalltalk· Lexico (encastellano)
  30. 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/lenguaj es-de-programacion/ http://es.kioskea.net/contents/langages/langages.php3 http://www.desarrolloweb.com/articulos/2358.php http://www.iqcelaya.itc.mx/~vicente/Programacion/Leng uajes.pdf http://qbitacora.wordpress.com/2007/09/21/clasificacion -de-lenguajes-de-programacion/ http://www.ilustrados.com/tema/9525/Tipos-Lenguajes- Programacion.html

×