PARADIGMAS DE PROGRAMACIÓN

of 28/28
PARADIGMAS DE PARADIGMAS DE PROGRAMACIÓN PROGRAMACIÓN José Oscar Mugetti Mare José Oscar Mugetti Mare 2do. Año Ing. En Sistemas de Información U.T.N. - Facultad Regional San Francisco
  • date post

    16-Mar-2016
  • Category

    Documents

  • view

    47
  • download

    4

Embed Size (px)

description

PARADIGMAS DE PROGRAMACIÓN. José Oscar Mugetti Mare 2do. Año Ing. En Sistemas de Información U.T.N. - Facultad Regional San Francisco. TEMA: Especificación de algoritmos funcionales. Identificadores. Especificación con condiciones. Especificación funcional operacional. - PowerPoint PPT Presentation

Transcript of PARADIGMAS DE PROGRAMACIÓN

Garbage CollectionU.T.N. - Facultad Regional San Francisco
*
Identificadores.
*
Introducir algunas características de la programación funcional.
*
Duración:
Recordatorio
Paradigma funcional se basa en el concepto matemático de función: una función es una regla de correspondencia que asocia a cada elemento de un conjunto origen, un elemento del conjunto destino
PROBLEMA
MODULARIZACION
Funciones
Recordatorio
El paradigma funcional así como el lógico admiten el cálculo de teorías formales y el sustento de la programación es la matemática y la lógica.
DOMINIO
RANGO
F(x)
Objeto predefinido: Forma parte de la definición del lenguaje.
Funciones: Un algoritmo es una descripción precisa y no ambigua de un método de transformación de unos valores iniciales en unos valores finales
*
(Ej. “+”)
Formado por letras y dígitos. Pueden ser predefinidos o definidos por el usuario (Ej. Div, EsMínimo, Color_oscuro)
SIMBÓLICO
ALFANU-MÉRICO
IDENTIFICADORES
*
función.
Imagen del valor del argumento nominal
Estructura de definiciones en forma jerárquica
En cada definición las funciones utilizadas a la derecha se referencia por un nombre (con el cuál fue definida).
Problema complejo = combinación de problemas simples
Los módulos se referencian con el nombre y no se conoce su estructura interna
Nombres que no necesitan definición = “módulos primitivos”
Los no primitivos se denominan “abstractos”
*
Especificaciones
Especificación con condiciones: Expresa el problema por resolver, es decir que debe hacer la función
Especificación operacional: detalla como se resuelve el problema
*
Precondición: Definido para los valores de entrada
Postcondición: Definido para valores concretos de salida a partir de la precondición
Ejemplo: Factorial de un nº entero
n! =
Precondición: que n sea un número entero
Postcondición: que devuelva un valor z = n!
*
Función parcial: Definida solamente para ciertos elementos de su dominio
Función Total: Definida sobre todo el dominio (generalmente éstas carecen de precondición)
*
Especificación funcional operacional
Describe un algoritmo y por lo tanto consta de una función
<cabecera>
Ejemplo
<cuerpo>
Encerrados entre ( )
Parámetros formales
Los programas en Scheme no tienen “tipos”
*
*
Variables:
*
*
Especificación funcional operacional
Quote: es necesario para que las expresiones sean tratadas como datos
(Define ejemplo ‘(+ 2 3) )
Listas: Es una secuencia de cero o más valores, una lista se escribe encerrándola entre paréntesis; puede existir una lista vacía
la lista puede considerarse como una cabeza y el resto de la lista
Ejemplo
(car x) El primer elemento de la lista no vacía
(cdr x) El resto de la lista luego del 1er. Elemento
(cons a x) Constructor de listas
Algunas funciones sobre listas:
Especificación funcional operacional
Función map: Función que hace cambio de los elementos de una lista mientras los copia
*
Subexpresiones
Se utiliza la notación en las cuales existe el paréntesis alrededor del operador y sus operandos.
Ejs.: ( 4 + ( 5 * 4) ) = 24
Proporciona así una sintaxis simple a costa de la proliferación de paréntesis
SUBEXPRESIONES (paréntesis (entre paréntesis))
<condición> <expresión1> |<expresión2>
Ejs: Función Max (x , y)
if (> x y)
Notación prefija: paradigma funcional
if_then_else (b v1 v2)
(Define factorial
1
( * x (factorial (- x 1) ) ) ) )
Valor del parámetro básico o elemental . Cuando llega allí la función no recurre
Cada recursividad debe afectar a parámetros que lo acerque al parámetro básico
Ejemplo
Clases de recursividad
Recursividad lineal: El cuerpo de la función contiene una llamada recursiva
Recursividad no lineal: El cuerpo de la función contiene varias llamadas recursiva
*
*
No hay conclusión. ¿Que cosa ha concluido, con respecto a la cual podemos llegar a una conclusión?
No hay fortunas que puedan predecirse, ni consejos que puedan darse. Adiós
William James