Tecnol´ogico de Costa Rica
Ingenier´ıa en Computadores
Ver´onica Mora Lezcano
Lenguajes, Compiladores e Int´erpretes
Paradigma
Recoge principios, teor´ıas, construcciones, y reglas que definen un estudio sobre un framework.
Tipos de paradigmas
Paradigma funcional
Basado en el c´alculo de lambda de A. Church (1930).
f( x ) = x * x
f( 5 ) = 5 * 5 = 25
En notaci´on lambda:
λx.x*x
´o
x → x*x
Caracter´ısticas que deben cumplir las funciones
1) Caracter´ıstica de identidad, si λx x (recibe x, devuelve x), entonces cualquier λy y.
2) No importa como se llama la funci´on.
3) Los nombre de los par´ametros no importan.
4) Una funci´on que recibe dos par´ametros, puede ser escrita a una funci´on de un par´ametro,
llamando a otra funci´on que reciba un par´ametro y retome un valor. Por ejemplo:
1
5) Una funci´on puede ser llamada por otra, si esta solo tiene un argumento.
Ejemplos:
Convertir a notaci´on λ
f0 ( x ) = x + f ( y )
f ( y ) = y - 1
λx. x + (λy. y - 1)
x → x + (y → y - 1)
f(x, y) = x + y - 3
λx. x + y - 3
x → x + y 3
Caracter´ısticas computacionales
- Condici´on de parada en las funciones.
- Funciones puras, para los mismos argumentos siempre tienen la misma salida.
- Evaluaci´on tard´ıa, realiza el c´alculo s´olo si es necesario y obligatorio.
- Evaluaci´on estricta, se realiza el c´alculo siempre, de una instrucci´on de forma completa.
Por ejemplo:
f(x) = size ( [5/2, 7/0, 6/2] )
f(y) = y+y
En la evaluaci´on tard´ıa s´olo se calcula el size de la lista, no importa el contenido.
if (f(x) and g(x) and h(x))
.
- Si f(x) es falso, g(x) y h(x) no se eval´uan.
- Si g(x) es falso, h(x) y f(x) no se eval´uan.
2
Caracter´ısticas adicionales
- Muchos lenguajes funcionales presiden de sistema de tipos.
- Normalmente son interpretados.
- Es frecuente encontrar la iteratividad expresada como llamadas recursivas.
- La llamada tard´ıa (evaluaci´on tard´ıa) ahora calculos y llamadas recursivas.
3

Semana12

  • 1.
    Tecnol´ogico de CostaRica Ingenier´ıa en Computadores Ver´onica Mora Lezcano Lenguajes, Compiladores e Int´erpretes Paradigma Recoge principios, teor´ıas, construcciones, y reglas que definen un estudio sobre un framework. Tipos de paradigmas Paradigma funcional Basado en el c´alculo de lambda de A. Church (1930). f( x ) = x * x f( 5 ) = 5 * 5 = 25 En notaci´on lambda: λx.x*x ´o x → x*x Caracter´ısticas que deben cumplir las funciones 1) Caracter´ıstica de identidad, si λx x (recibe x, devuelve x), entonces cualquier λy y. 2) No importa como se llama la funci´on. 3) Los nombre de los par´ametros no importan. 4) Una funci´on que recibe dos par´ametros, puede ser escrita a una funci´on de un par´ametro, llamando a otra funci´on que reciba un par´ametro y retome un valor. Por ejemplo: 1
  • 2.
    5) Una funci´onpuede ser llamada por otra, si esta solo tiene un argumento. Ejemplos: Convertir a notaci´on λ f0 ( x ) = x + f ( y ) f ( y ) = y - 1 λx. x + (λy. y - 1) x → x + (y → y - 1) f(x, y) = x + y - 3 λx. x + y - 3 x → x + y 3 Caracter´ısticas computacionales - Condici´on de parada en las funciones. - Funciones puras, para los mismos argumentos siempre tienen la misma salida. - Evaluaci´on tard´ıa, realiza el c´alculo s´olo si es necesario y obligatorio. - Evaluaci´on estricta, se realiza el c´alculo siempre, de una instrucci´on de forma completa. Por ejemplo: f(x) = size ( [5/2, 7/0, 6/2] ) f(y) = y+y En la evaluaci´on tard´ıa s´olo se calcula el size de la lista, no importa el contenido. if (f(x) and g(x) and h(x)) . - Si f(x) es falso, g(x) y h(x) no se eval´uan. - Si g(x) es falso, h(x) y f(x) no se eval´uan. 2
  • 3.
    Caracter´ısticas adicionales - Muchoslenguajes funcionales presiden de sistema de tipos. - Normalmente son interpretados. - Es frecuente encontrar la iteratividad expresada como llamadas recursivas. - La llamada tard´ıa (evaluaci´on tard´ıa) ahora calculos y llamadas recursivas. 3