Download - Lenguajes de programación: Paradigmas de Programación

Transcript
Page 1: Lenguajes de programación: Paradigmas de Programación

Lenguajes de ProgramaciónParadigmas de Programación

Autor(es):

• Mtr. Luis Fernando Aguas

Page 2: Lenguajes de programación: Paradigmas de Programación

Indice

1.¿ Qué es un lenguaje de programación ?2.Abstracciones3.Paradigmas de computación4.Definición del lenguaje5.Traducción del lenguaje6.Historia7.Preguntas

Page 3: Lenguajes de programación: Paradigmas de Programación

1.1 ¿ Qué es un LP ?

• Computación• Máquina Turing, tesis de Church

• Legibilidad por parte de la máquina• Legibilidad por parte del ser humano

Definición: Un lenguaje de programación es un sistema notacional para describir computaciones de una forma legible tanto para la máquina como para el ser humano.

Page 4: Lenguajes de programación: Paradigmas de Programación
Page 5: Lenguajes de programación: Paradigmas de Programación

1.2 Características

• Eficiencia• Expresividad• Capacidad de mantenimiento• Legibilidad• Confiabilidad • Seguridad• Simplicidad• Productividad

Page 6: Lenguajes de programación: Paradigmas de Programación

1.3 Abstracciones • Clases: Datos y control• Niveles: básicas, estructuradas y unitarias

Abstracciones de datos:● Básicas: tipos básicos (enteros, reales, ...)● Estructuradas: tipos estructurados (arreglos, registros)● Unitarias: Tipos abstractos de datos (TDAs), paquetes,

módulos, clases, componentes

Page 7: Lenguajes de programación: Paradigmas de Programación

1.3 Abstracciones• Abstracciones de control• Básicas: asignación, goto• Estructuradas: condicionales e iteradores• Unitarias: paquetes, módulos, hilos y tareas.

Un lenguaje de programación es completo en Turing siempre que tenga variables enteras y aritméticas, y que ejecute enunciados en forma secuencial, incluyendo enunciados de asignación, selección e iteración.

Page 8: Lenguajes de programación: Paradigmas de Programación

1.4 Paradigmas de programación

• Imperativo• modelo de Von Neuman, cuello de botella de Von

Neuman• Orientado a Objetos• TDAs, encapsulación, modularidad, reutilización

• Funcional • noción abstracta de función, cálculo lambda,

recursividad, listas• Lógico• Lógica simbólica, programación declarativa

Page 9: Lenguajes de programación: Paradigmas de Programación

Paradigmas de Lenguajes

• Se reconoce generalmente 4 paradigmas de programación:• Imperativo (Estructurado)• Aplicativo (Funcional)• Orientado a Objetos• Lógico

Page 10: Lenguajes de programación: Paradigmas de Programación

Lenguajes Imperativos

• Su objetivo es entender y definir el estado de la máquina (conjunto de posiciones de memorias, cada una conteniendo un valor).

• Lenguajes orientados a instrucciones • El programa consiste en elaborar un

conjunto de instrucciones para que la máquina llegue a la respuesta.

• Ejemplos: C, Fortran, Pascal, Cobol• Sintaxis: S1, S2, S3, S4, …

Page 11: Lenguajes de programación: Paradigmas de Programación

Lenguajes Imperativos

Programación: serie de pasos (input, cálculo, ouput).

Elementos: abstracción procedural, asignación, loops, secuencias, condicionales.

Page 12: Lenguajes de programación: Paradigmas de Programación

Lenguajes Funcionales

• Su objetivo es entender la función que produciría la respuesta deseada.

• Es orientada hacia la composición de funciones.

• Programar consiste en construir la función que halle la respuesta.

• Ejemplos: ML, Lisp, Scheme, Haskell • Sintaxis: F1(F2(F3(x)))

Page 13: Lenguajes de programación: Paradigmas de Programación

Lenguajes Funcionales

• Programación: colección de funciones que se combinan en formas complejas para construir nuevas funciones.

• Elementos: alto orden, composición, recursión.

Page 14: Lenguajes de programación: Paradigmas de Programación

Orientados a Objetos

• Su objetivo es modelar el problema con elementos similares a los realmente presentes.

• Programar significa generar objetos que intercambian mensajes entre si para resolver un problema.

• Ejemplos: Smalltalk, C++, Java, Squeak, C#

• Sintáxis: O1 ->mensaje-> O2.

Page 15: Lenguajes de programación: Paradigmas de Programación

Orientados a Objetos

• Lenguajes imperativos que unen diseños aplicativos con sentencias imperativas.

• Sintaxis: Conjunto de objetos (clases) conteniendo datos (concepto imperativo) y métodos (conceptos aplicativos).

• Programación: colección de objetos que interactúan pasándose mensajes que transforman estados.

• Elementos: modelado de objetos, clases, herencia, encapsulamiento.

Page 16: Lenguajes de programación: Paradigmas de Programación

Lenguajes Lógicos

• Definen reglas para decidir cuando la respuesta ha sido alcanzada.

• Utiliza un conjunto de reglas para deducir los atributos de la respuesta.

• Ejemplos: Prolog• Sintaxis: Regla -> Conclusión

Page 17: Lenguajes de programación: Paradigmas de Programación

1.5 Definición del lenguaje

• Sintaxis (estructura)• Gramáticas libres de contexto, estructura léxica,

tokens• Semántica (significado)• Lenguaje natural• Semántica operacional• Semántica denotacional

Page 18: Lenguajes de programación: Paradigmas de Programación

1.6 Traducción del lenguaje• Traductor es un programa que acepta otros

programas escritos en un lenguaje y:• los ejecuta directamente (interprete)• los transforma en una forma adecuada para su

ejecución (compilador).

entrada

código fuente

salidaintérprete

Page 19: Lenguajes de programación: Paradigmas de Programación

1.6 Traducción

• Pseudointérpretes: intermedio entre interprete y compilador: lenguajes intermedios• Operaciones de un traductor: analizador léxico

(tokens), analizador sintáctico, analizador semántico, preprocesador

código fuente

traducciónadicional

compilación

código objeto

código ejecutable

Page 20: Lenguajes de programación: Paradigmas de Programación

1.6 Traducción

• Tiempo de compilación y tiempo de ejecución• Propiedades estáticas: tiempo de compilación• Propiedades dinámicas: tiempo de ejecución• Recuperación de errores (compilación y

ejecución)• Eficiencia y optimización (compilación o

ejecución)

Page 21: Lenguajes de programación: Paradigmas de Programación

1.7 Historia

FORTRAN

AlGOL 60 COBOL

50

60

70

80

90

SimulaSmalltalk

Pascal

AdaC

PL/I

LISP

ML

Miranda

Prolog

Page 22: Lenguajes de programación: Paradigmas de Programación

1.7 Historia1950 1960 1970 1980 1990

Fortran(54)

PL/I(66)

Ada(95)

Java(96)

Basic(66)

C(72)

Pascal(70)

Cobol(58)

Algol(60)

Simula(67) Smalltalk(80)

C++(89)

ENSAMBLADOR

Eiffel (86)

Ada(83)

Page 23: Lenguajes de programación: Paradigmas de Programación
Page 24: Lenguajes de programación: Paradigmas de Programación

¿Qué hace a un lenguaje bueno?

• Naturalidad de la aplicación• La estructura del programa refleja la estructura

lógica del algoritmo.• Cada lenguaje generalmente se especializa en

un campo de acción determinado y es más fácil resolver ciertos problemas con él.

Page 25: Lenguajes de programación: Paradigmas de Programación

¿Qué hace a un lenguaje bueno?

• Facilidad de verificación• Debe proveer una manera de corroborar que el

programa efectivamente realiza su tarea.• Una sintaxis sencilla facilita la verificación.

Page 26: Lenguajes de programación: Paradigmas de Programación

¿Qué hace a un lenguaje bueno?

• Ambiente de programación• Debe contar con un entorno que facilite la

programación en el lenguaje.• Generalmente lenguajes no tan buenos, pero

que tienen un buen entorno de programación, son más usados en el mercado.

Page 27: Lenguajes de programación: Paradigmas de Programación

¿Qué hace a un lenguaje bueno?

• Portabilidad• Que tan fácil se puede transportar la aplicación

de la máquina en que se desarrolló a otras máquinas donde va a ser ejecutada.

• El mejor ejemplo de esto es programación para Internet.

Page 28: Lenguajes de programación: Paradigmas de Programación

¿Qué hace a un lenguaje bueno?

• Costo de uso• Costo de ejecución• Costo de traducción• Costo de creación, prueba y uso• Costo de mantenimiento