La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Introducción a los lenguajes de programación

Presentaciones similares


Presentación del tema: "Introducción a los lenguajes de programación"— Transcripción de la presentación:

1 Introducción a los lenguajes de programación
Universidad de Caldas Estructura de lenguajes Ing. Rubén Darío García Guzmán 12 de abril de 2017

2 ¿Porqué estudiar lenguajes de programación?
La pregunta es ¿cuál es la ventaja de estudiar una variedad de lenguajes diferentes que es poco probable que uno llegue a utilizar?: Mejorar la habilidad para desarrollar algoritmos eficaces. Mejorar el uso del lenguaje de programación disponible. Acrecentar el propio vocabulario con construcciones útiles sobre programación. Hacer posible una mejor elección del lenguaje de programación. Facilitar el aprendizaje de un nuevo lenguaje. Facilitar el diseño de un nuevo lenguaje.

3 Ing. Rubén Darío García Guzmán
Agenda ¿Qué es un lenguaje? ¿Qué es un lenguaje de programación? Clasificación de los lenguajes de programación Propiedades de los lenguajes de programación Paradigmas de lenguajes de programación Dominios de aplicación de los lenguajes de programación Historia de los lenguajes de programación Cualidades de los lenguajes de programación 12 de abril de 2017 Ing. Rubén Darío García Guzmán

4 Ing. Rubén Darío García Guzmán
¿Qué es un lenguaje? Conjunto de sonidos articulados con que los hombre manifiesta lo que piensa o siente. Según RAE Informático: Conjunto de signos y reglas que permite la comunicación con un ordenador. Según RAE Cualquier sistema de signos destinados a la comunicación entre seres humanos, entre hombres y máquinas, o entre máquinas, que se estructura sobre un conjunto definido de reglas, convenciones y representaciones gráficas y/o fonológicas. Según Universidad de la República Oriental del Uruguay 12 de abril de 2017 Ing. Rubén Darío García Guzmán

5 ¿Qué es un lenguaje de programación?
Conjunto de símbolos e instrucciones que permiten al hombre indicarle al computador como operar. Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz. Es una notación formal para describir algoritmos o funciones que serán ejecutadas por un ordenador. Cueva Lovello, Juan Manuel. Conceptos básicos de procesadores de lenguaje. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

6 Clasificación de los lenguajes de programación
Los lenguajes se pueden clasificar en muchas categorías: Según el nivel de complejidad: Alto nivel, medio nivel, bajo nivel Según el tipo de ejecución: Compilados, interpretados, mixtos Según el tipo de aplicaciones que permiten: Visuales, de script, web. Según el Paradigma: Imperativos, orientados a objetos, guiados por eventos, funcionales, lógicos, concurrentes, orientados a aspectos, multiparadigma. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

7 Propiedades de los lenguajes de programación
Sintaxis Se refiere a lo que constituye un programa bien escrito. Lo componen la gramática y el vocabulario de palabras y símbolos que son válidos en dicho lenguaje. La sintaxis se divide en dos grandes partes La parte léxica que se refiere a los símbolos usados para la escritura del programa, es decir que correspondan al alfabeto. La parte léxica también se encarga de la ejecución de las reglas para armar componentes léxicos, es decir las “palabras” del programa. Los componentes léxicos característicos de un lenguaje de programación son: identificadores (de usuario y reservados), literales (números, caracteres, cadenas, booleanos y otros como fechas), operadores (matemáticos, relacionales, lógicos, de asignación y otros como de concatenación), separadores, espacios en blanco y comentarios. La parte sintáctica propiamente dicha se refiere al orden de las “palabras” dentro de “frases” bien formadas que conforman el programa. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

8 Propiedades de los lenguajes de programación
Sistemas de tipos y semántica: Se refiere a los tipos de valores que puede manipular un programa y al significado (semántica) del mismo. Cuando se escribe un programa, es importante entender asuntos como el efecto exacto que tiene una asignación sobre el estado de la computación, el impacto de la ejecución de una secuencia de pasos y la definición de lo que significa ejecutar un bucle o una instrucción condicional. Gestión de memoria: Se centra en el conjunto de técnicas que ayudan a entender la correspondencia entre los valores, las estructuras de datos y las estructuras de los programas con la memoria en la que residen. Se requiere distinguir entre memoria estática y memoria dinámica, pilas y montículos (heap), los tiempos de vida de los tipos de objetos y según su alcance, las técnicas de reclamación y de detección de basura. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

9 Propiedades de los lenguajes de programación
Manipulación de excepciones: Se refiere al manejo de los eventos erróneos que pueden suceder en un programa en ejecución, de manera que afecten lo menos posible al resultado final. Como un error de entrada, una división por cero o un intento de crear un bloque de espacio en un montículo. Este tipo de eventos se conocen como excepciones y es necesario que los lenguajes de programación no solo capten sino que además respondan de forma adecuada a estas excepciones, sin que la computación en su conjunto se vea comprometida. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

10 Paradigmas de lenguajes de programación
Por paradigma podemos entender las diversa tendencias o maneras de programar. Normalmente cada paradigma se especializa en un dominio de aplicación, aunque algunos lenguajes son aplicables a la solución de problemas de cualquier dominio. Algunos lenguajes no se pueden establecer claramente en un solo paradigma, así que los llamamos Multiparadigma. Ej Java – C# - Ruby 12 de abril de 2017 Ing. Rubén Darío García Guzmán

11 Paradigmas de lenguajes de programación
Programación imperativa: Los programas son estructurados y paso por paso. Cada paso realiza un cálculo específico, recupera una entrada o genera una salida. La abstracción procedimental es un bloque de creación esencial (Uso de procedimientos y funciones) Maneja sentencias condicionales, asignaciones, bucles o repeticiones y secuencias. Ejemplos principales: Cobol, Fortran, C, Basic, Pascal. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

12 Paradigmas de lenguajes de programación
Programación orientada a objetos: El programa es una colección de objetos que interactúan unos con otros trasladándose mensajes que transforman su estado. El modelado, la clasificación y la herencia de objetos son bloques de creación esenciales. Es la tendencia más popularizada que existe, gracias sobretodo a la gran difusión de lenguajes como java, C# o PHP, así como por los procesos de desarrollo de software por componentes. Los lenguajes orientados a objetos principales son: Smalltalk, java, C++ e Eiffel. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

13 Paradigmas de lenguajes de programación
Programación Funcional: El programa es una colección de funciones matemáticas, cada una de ellas con su entrada (dominio) y su resultado (intervalo). Las funciones interactúan y se combinan las unas con las otras utilizando condicionales, recursividad y composición funcional. Sus lenguajes aplican en el dominio de la computación científica así como la inteligencia artificial Los lenguajes de programación funcional principales son Lisp, Scheme, Haskell y ML. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

14 Paradigmas de lenguajes de programación
Programación Lógica: El programa es una colección de declaraciones lógicas sobre el resultado que debería conseguir una función, en vez de ¿cómo se debe obtener el resultado? La ejecución del programa aplica las declaraciones para obtener una serie de soluciones posibles a un problema. No determinismo, las soluciones a muchos problemas no son únicas, sino múltiples. El lenguaje de programación más importante es Prolog, aunque SQL también pertenece a este paradigma. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

15 Paradigmas de lenguajes de programación
Programación Guiada por eventos: El programa es un bucle continuo que responde a los eventos generados en un orden no predecible. Estos eventos se originan a partir de acciones del usuario en la pantalla (por ejemplo clics de ratón o pulsaciones de teclas) o de otras fuentes. Se puede pensar que es una tendencia o característica de programación, más que un verdadero paradigma. Los lenguajes de programación guiada por eventos más importantes incluyen los visuales como visual Basic o visual C++ y java. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

16 Paradigmas de lenguajes de programación
Programación Concurrente: El programa es una colección de procesos cooperativos, que comparten información unos con otros. Los procesos operan generalmente en forma asíncrona. También se puede producir el paralelismo en un solo proceso, como el caso de la ejecución en paralelo de las diversas iteraciones de un ciclo. Los lenguajes de programación concurrentes incluyen SR, Linda y Fortran de alto rendimiento. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

17 Dominios de aplicación de los lenguajes de programación
Entre los dominios de aplicación más comunes de los lenguajes de programación se tienen: Científica Sistemas de gestión de información Inteligencia artificial Sistemas Orientada a la web 12 de abril de 2017 Ing. Rubén Darío García Guzmán

18 Consideraciones para el estudio de los lenguajes
Restricciones de arquitectura Los lenguajes de programación están diseñados para los computadores. Un lenguaje bien diseñado e implementado puede mejorar mucho la utilidad de un computador en un dominio de aplicación. La mayoría de los diseños de computadores de las últimas décadas han seguido el modelo «von Neumann». Muchos lenguajes, como Fortran, Cobol y C, cuadran muy bien en esta arquitectura; otros, como Lisp no. Cuando se consideran las virtudes de las distintas opciones de diseños de lenguajes, siempre hay una limitante por la necesidad de implementar dichos lenguajes de forma eficiente y efectiva dentro de las restricciones impuestas por las variantes actuales del modelo von Neumann. La idea de que un buen diseño de lenguaje puede conducir a una arquitectura de computadoras viable radicalmente nueva y comercial probablemente no sea una opción.

19 Consideraciones para el estudio de los lenguajes
Restricciones contextúales Los lenguajes no están diseñados sólo para cuadrar dentro de las restricciones de una familia de arquitecturas determinada. También lo esta para satisfacer otras restricciones impuestas por el contexto en el que se van a utilizar. El área de aplicación, el sistema operativo, la red y las preferencias de la comunidad de programación. Algunos lenguajes tienen un diseño de propósito general más intencionado, optando por servir a los intereses. de un gran número de aplicaciones. Otros lenguajes han sido diseñados para tener una naturaleza mas de propósito especial. Algunos lenguajes de programación se implementan utilizando un proceso de compilación. Otros lenguajes se implementan utilizando un proceso interpretativo. Otros como Java, utilizan un modelo mixto, de compilación «Java byte code» e interpretación «Java Virtual Machine» o JVM. Un equipo virtual es cualquier modelo abstracto de una computadora que se implementa en software, pero no en hardware.

20 Cualidades de los lenguajes de programación
Criterios para elegir un lenguaje o al momento de escribirlo. Simplicidad y claridad: ¿Es fácil para un programador escribir un programa en el lenguaje?, ¿Hasta qué punto es inteligible este programa para un lector promedio?, ¿Es fácil aprender y enseñar el lenguaje?. Uniones: Un elemento del lenguaje se une a una propiedad en el momento en que se define dicha propiedad para el. Ej, la unión de una variable con su tipo al declararla. Los principales momentos de unión de los electos con sus propiedades son: 12 de abril de 2017 Ing. Rubén Darío García Guzmán

21 Cualidades de un lenguaje de programación
Uniones Momento de definición del lenguaje: Al unir los tipos básicos de datos con las palabras reservadas del lenguaje. Momento de Implementación del lenguaje: Al unir los valores numéricos con las representaciones del equipo, ej: que los valores enteros se representen en 16 bits. Momento de escritura del programa: Al unir los nombres de las variables con los tipos de datos y se unen durante todo el tiempo de vida de la variable. Momento de la compilación y carga del programa: Al unir las variables “estáticas” con las direcciones de memoria fijas. Momento de ejecución del programa: Cuando las variables se unen con los valores. ( x=3; ) 12 de abril de 2017 Ing. Rubén Darío García Guzmán

22 Cualidades de un lenguaje de programación
Ortogonalidad: ¿Un símbolo o una palabra reservada tienen siempre el mismo significado, independiente del contexto en el que se utilice?, Fiabilidad de los programas: ¿El programa se comporta igual cada vez que se ejecuta con los mismos datos de entrada? Aplicabilidad: ¿El lenguaje proporciona un soporte adecuado para las aplicaciones del dominio en el que se está usando?. 12 de abril de 2017 Ing. Rubén Darío García Guzmán

23 Cualidades de un lenguaje de programación
Abstracción: Es una característica fundamental para la reutilización de código, el permitir crear y cargar bibliotecas y librerías agiliza el trabajo de los programadores. Por ejemplo, las librerías de lenguajes como C y Java. Implementación eficiente: ¿Permite las construcciones y las características de un lenguaje su implementación practica y eficiente en las plataformas coetáneas? 12 de abril de 2017 Ing. Rubén Darío García Guzmán


Descargar ppt "Introducción a los lenguajes de programación"

Presentaciones similares


Anuncios Google