Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Calculo Lambda
Calculo Lambda
2006
CALCULO LAMBDA
CALCULO LAMBDA
El clculo lambda fue desarrollado por Alonso Church en la
dcada del 30 con el objeto de dar una teora general de las
funciones.
El clculo lambda ha sido empleado como fundamento
conceptual de los lenguajes de programacin, aportando:
una sintaxis bsica
una semntica para el concepto de funcin como
proceso de transformacin de argumentos en
resultados
un medio para definir primitivas de
programacin
O<variable> . <trmino> |
( <trmino> <trmino> )
En esta sintaxis no existe el concepto de
<nombre> o <constante>
Qu implica esto?
El formalismo no tendr primitivas, no nos permitir emplear
funciones con el concepto de mdulos abstractos.
O <variable> . <trmino>
Cuerpo de la
abstraccin
funcional
Lista de
argumentos
La sintaxis propuesta utiliza la representacin de
Funciones con un slo argumento.
Una Funcin que requiera ms de un argumento se
representa de la sgte. forma:
CALCULO LAMBDA
Tiene por objeto explicitar el concepto que representa el
empleo de funciones como medio de transformacin de
argumentos en resultados.
REGLAS DEFINIDAS EN EL CL
De acuerdo a la sintaxis propuesta, una aplicacin
funcional tendr el siguiente formato
(M N)
la cual producir un resultado, como consecuencia de la
correspondiente regla del clculo,
R
(resultado)
M=M
simetra
M=N N=M
transitividad
Regla Beta
La Regla Beta establece como sustituir en el cuerpo de la
abstraccin funcional cada ocurrencia de la variable que
hace de argumento nominal por el argumento efectivo de la
aplicacin funcional correspondiente.
1
( (x) exp(2 * x + y) (4) )
La regla Beta
especifica los
pasos 1 y 2
2
argumento nominal
argumento efectivo
(Ox .M N) = [N/x] M
OCURRENCIA DE UN TERMINO
Definicin. Ocurrencia de P en Q
Clausura
P ocurre en P
Induccin
Si P ocurre en M o N P ocurre en (M N)
Si P ocurre en M o P es igual a x P ocurre en Ox.M
Por ejemplo, dado en el siguiente trmino:
( (x y) Ox.(x y) )
(x y) ocurre dos veces
x ocurre tres veces
y ocurre dos veces
y ocurre libre
n ocurre libre
m ocurre libre
y es una variable libre del trmino
OCURRENCIAS DE TERMINOS,
OCURRENCIAS LIBRES Y LIGADAS DE VARIABLES
[N/x] M
En el caso en que M sea la variable a sustituir, la
misma se realiza de la siguiente forma:
1-
[N/x] x :=: N
Ejemplos:
[Oy.(m n) / y] y :=: Oy.(m n)
[(m n) / t] t :=: (m n)
DEFINICIN DE SUSTITUCIN
[N/x] M
En el caso en que M sea una variable, pero diferente
de la sustituida, la misma se realiza de la siguiente
forma:
2-
[N/x] y :=: y
; yzx
Ejemplos:
[Oy.(m n) / y] l :=: l
[(m n) / t] r :=: r
DEFINICIN DE SUSTITUCIN
[N/x] M
En el caso en que M sea una aplicacin funcional, la
misma se realiza de la siguiente forma:
3-
Ejemplos:
DEFINICIN DE SUSTITUCIN
[N/x] M
En el caso en que M sea una abstraccin funcional, la
misma se realiza de la siguiente forma:
4-
Ejemplos:
DEFINICIN DE SUSTITUCIN
En el caso en que M sea una abstraccin funcional, la
misma se realiza de la siguiente forma:
5-
( (Ox. Oy. (y x) M) N)
(Oy. (y M) N)
(N M)
En particular si M :=: y y N :=: x
Por regla Beta
y def. 5, 3, 2, 1
Por regla Beta
y def. 3, 2, 1
( (Ox. Oy. (y x) y) x)
= (x y)
(Oy. (y y) x)
(x x)
x=y?
Por transitividad
En el ejemplo anterior
x e y denotan trminos
genricos
( (Ox. Oy. (y x) y) x)
( [y / x] Oy. (y x) x)
( Oy. (y y) x)
ocurrencia ligada de y
DEFINICIN DE SUSTITUCIN
En el caso en que M sea una abstraccin funcional, la
misma se realiza de la siguiente forma:
No ocurre libre
DEFINICIN DE SUSTITUCIN
[N/x] M
En el caso en que M sea una abstraccin funcional, la
misma se realiza de la siguiente forma:
6 - [N/x] Oy.M :=: Oz. [N/x] [z/y] M
si y "ocurre libre" en N
y
si x "ocurre libre" en M
y
si z no ocurre libre" en N o M
Ejemplo:
(Ox . M N)
Redex 1
(Ox. (Oy.( y x) z) v)
Redex 2
Redex 1
M = (Oy.( y x) z)
N=v
Redex 2
M =( y x)
N=z
Definicin:
Una FORMA NORMAL es un trmino que no contiene
ningn REDEX
Si puede deducirse de las reglas del clculo que P :=: Q y
si Q est en forma normal, se dice que Q ES FORMA
NORMAL DE P
La forma normal de un trmino es nica
Si un trmino P puede reducirse a dos trminos M y N
entonces existe un trmino T al cual M y N pueden, a su
vez, reducirse
No todos los mtodos de reduccin garantizan encontrar
la forma normal de un trmino
ESTRATEGIAS DE REDUCCIN
Estrategia de evaluacin de ORDEN NORMAL: consiste
en reducir siempre primero el redex de ms a la izquierda
(aquel cuyo O aparece ms a la izquierda)
La estrategia de evaluacin de orden normal aplicada a
un trmino que tiene forma normal termina por
encontrarla en un nmero finito de reducciones
Estrategia de evaluacin de ORDEN APLICATIVO:
consiste en reducir primero los dos trminos del redex
antes que la aplicacin que el denota sea reducida.
Redex 1
Orden
Normal
Orden
Aplicativo
(Ox. (Oy.(y x) z) v)
Redex 2
1. Reduzco Redex 2
1. Reduzco Redex 1
[z/y] (y x) :=: (z x)
2. Reduzco Redex 1
(Ox.( z x) v)
[z/y] (y v):=: (z v)
por reglas 3,2 y 1
por reglas
3,2 y 1
[v/x] (z x):=: (z v)
Redex 1
Orden Normal
1. Reduzco Redex 1
II
III
Redex 3
reduzco