Gghgh

Solo disponible en BuenasTareas
  • Páginas : 22 (5424 palabras )
  • Descarga(s) : 0
  • Publicado : 10 de marzo de 2012
Leer documento completo
Vista previa del texto
Paradigmas de Programación
Departamento de Informática Universidad de Valladolid

Curso 2010-11

Grado en Ingeniería Informática Grado en Ingeniería Informática de Sistemas

11 Feb. 2011

César Vaca Rodríguez, Dpto. de Informática, UVa

1

Definición

“Un paradigma de programación indica un método de realizar
cómputos y la manera en que se deben estructurar y organizar las tareasque debe llevar a cabo un programa ” Los paradigmas fundamentales están asociados a determinados modelos de cómputo. Tambien se asocian a un determinado estilo de programación Los lenguajes de programación suelen implementar, a menudo de forma parcial, varios paradigmas.
11 Feb. 2011 César Vaca Rodríguez, Dpto. de Informática, UVa 2

Tipos de paradigmas
Los paradigmas fundamentales estánbasados en diferentes modelos de cómputo y por lo tanto afectan a las construcciones más básicas de un programa. La división principal reside en el enfoque imperativo (indicar el cómo se debe calcular) y el enfoque declarativo (indicar el qué se debe calcular).
El enfoque declarativo tiene varias ramas diferenciadas: el paradigma funcional, el paradigma lógico, la programación reactiva y loslenguajes descriptivos.

Otros paradigmas se centran en la estructura y organización de los programas, y son compatibles con los fundamentales:
Ejemplos: Programación estructurada, modular, orientada a objetos, orientada a eventos, programación genérica.

Por último, existen paradigmas asociados a la concurrencia y a los sistemas de tipado.
11 Feb. 2011 César Vaca Rodríguez, Dpto. de Informática,UVa 3

El zoo de los paradigmas
Código
Módulos Procedimientos Control de flujo Acciones elementales Orientado a Eventos
Relación

Modular Procedimental Estructurado

Imperativo

Declarativo Funcional

Lógico Reactivo

Orientado a Objetos

Datos

Programación Genérica

Programación Concurrente

11 Feb. 2011

César Vaca Rodríguez, Dpto. de Informática, UVa

4

ParadigmaImperativo
Describe cómo debe realizarse el cálculo, no el porqué. Un cómputo consiste en una serie de sentencias, ejecutadas según un control de flujo explícito, que modifican el estado del programa. Las variables son celdas de memoria que contienen datos (o referencias), pueden ser modificadas, y representan el estado del programa. La sentencia principal es la asignación. Es el estándar ‘defacto’.
Asociados al paradigma imperativo se encuentran los paradigmas procedural, modular, y la programación estructurada. El lenguaje representativo sería FORTRAN-77, junto con COBOL, BASIC, PASCAL, C, ADA. También lo implementan Java, C++, C#, Eiffel, Python, ...
11 Feb. 2011 César Vaca Rodríguez, Dpto. de Informática, UVa 5

Paradigma Declarativo
Describe que se debe cálcular, sinexplicitar el cómo. No existe un orden de evaluación prefijado. Las variables son nombres asociados a definiciones, y una vez instanciadas son inmutables. No existe sentencia de asignación. El control de flujo suele estar asociado a la composición funcional, la recursividad y/o técnicas de reescritura y unificación.
Existen distintos grados de pureza en las variantes del paradigma. Las principalesvariantes son los paradigmas funcional, lógico, la programación reactiva y los lenguajes descriptivos.

11 Feb. 2011

César Vaca Rodríguez, Dpto. de Informática, UVa

6

Programación Funcional
Basado en los modelos de cómputo cálculo lambda (Lisp, Scheme) y lógica combinatoria (familia ML, Haskell) Las funciones son elementos de primer orden Evaluación por reducción funcional. Técnicas:recursividad, parámetros acumuladores, CPS, Mónadas. Familia LISP (Common-Lisp, Scheme):
Basados en s-expresiones. Tipado debil. Meta-programación

Familia ML (Miranda, Haskell, Scala):
Sistema estricto de tipos (tipado algebraico) Concordancia de patrones. Transparencia referencial Evaluación perezosa (estruct. de datos infinitas)
11 Feb. 2011 César Vaca Rodríguez, Dpto. de Informática, UVa 7...
tracking img