Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Intro Lambda C
Intro Lambda C
Lambda Clculo
( C)
Francisco Rafael Ypez Pino
Programacin Declarativa Avanzada
Introduccin al -Clculo:
1. -reducciones y -reducciones
1.1. Teoras
1.2. Eta-conversin y extensionalidad
1.3. Reduccin generada por un programa
1. -reducciones y -reducciones
Evaluacin de una expresin = serie de pasos de
reduccin, obtenidos cada uno por reescritura,
e ; e se reescribe mediante un paso en , usando una
reduccin indicada por
Semantica Operacional de un lenguaje funcional =
a partir de una expresin inicial, mediante un computo
(= sucesivas reescrituras), se obtiene una expresin
final, p.e.: ei 1 e2 2 . n-1 en n ef
Semntica Operacional de una expresin = computo al
que da lugar tal expresin,
p.e.: S.O.(en)= e1 1 e2 2 . n-1 en
>32
-32
1
y
y
-23,
-1
-reducciones
Son las reducciones que transforman constantes, descritas por p.e.: >
3 2 True y + 1 2 3
y tambin, extendindolo:
* (+ 1 2) (- 4 1)
* (+ 1 2) (- 4 1)
* (+ 1 2) 3
* 3 (- 4 1)
*33
*33
9
9
El orden de la evaluacin es muy importante aunque el resultado no
dependa de este
Se dice que la extensin de la relacin inicial es compatible o sustutiva,
ya que permite reducir una expresin a partir de reducciones de
subexpresiones
Usaremos para indicar una reduccin en varios pasos (cierre transitivo y
reflexivo de ), y as: * (+ 1 2) (- 4 1) 9
.
-reducciones (II)
Las reglas condicionales estn entre las -reglas ms
interesantes
Cond True E F E
Cond False E F F
Estas condicionales se dicen estrictas en el primer argumento si
ste est en forma normal o es True o False
-reducciones
Con las -reducciones reescribimos una llamada f u a la funcin f si
conocemos el cuerpo de la funcin f.
son todas
1.1
Teoras
Teoras (II)
En el C tenemos dos igualdades:
Teoras (III)
En una teora T con igualdad donde son aplicables los siguientes
axiomas (siendo A y B igualdades)
# (( x.( ( y. x x
Luego debe darse x y x x, que es absurdo e introduce
inconsistencias: x y x x C
El problema est en la definicin de sustitucin, pues en estos casos
es obligatorio realizar una -conversion ( ) o renombramiento de
variables:
# (( x.( (( z.( r
& ( r.r x y
Que equivale
formalmente a:
si e*
donde E* es la
traslacin al C de E
y el cmputo de la expresin
no termina.
es un
,
2,
!
M 2 M2
M1
M2
M
R
M2
el C es consistente.
Cada trmino:
Es una forma normal por la cabeza (FNC):
M x1x2 . xn.x M1 Mm (n01 / 2 01 /
O es -reducible por la cabeza:
M x1x2 . xn.( x.M0) M1 Mm (n01 / 2 01 /
% ( x.M0) se le llama redex de cabecera.
M admite FNC si M = N con N en FNC.
Teorema de Estandarizacin; Curry-Feys, 1958:
Si M . N , entonces tambin M .s N.
M tiene FNC si y slo si su reduccin por la cabeza termina, donde sta
consiste en la reduccin reiterada del redex de cabecera.
La reduccin por la cabeza determina de forma nica una secuencia de
trminos (que termina o no).
En la reduccin estandar est incluida la reduccin de cabecera, teniendo:
(siendo
= z.z):
4. -Definibilidad
La nocin de -Definibilidad es conceptualmente la base de la programacin
funcional
Church introduce la nocin de -Definibilidad de funciones f: Nk N con objeto
de capturar la nocin de computabilidad.
Establece que las funciones intuitivamente computables deben ser -definibles
(tesis de Church), lo que motiva el desarrollo de lo que se conoce como teora
de las computabilidad o tora bsica de las funciones recursivas.
Adems de la Aritmtica y la Lgica, las estructuras de datos (lineales y
arbreas) tambin son representables ( -definibles) en el C.
En la sintaxis que hemos visto del C consideramos las funciones predefinidas
(-reglas) como +, 0, -1, cond, etc.
Ahora veremos como pueden definirse en un C puro.
4.2 Computabilidad
: + ! & ,
!
,
3 ; +
;
.
! C del natural n
Teorema de Kleene:
La clase de las funciones recursivas es la misma que la
clase de funciones -definibles.
Por tanto, las funciones computables pueden
representarse en el C
4.4 Listas en el C
Bibliografa:
Razonando con Haskell: Una Introduccin a la Programacin Funcional;
Blas C. Ruiz Jimenez, Fco. Gutierrez Lpez, Pablo Guerrero Garca,
Jos E. Gallardo Ruiz (2000).
El -Clculo (con tipos y sin tipos);
Blas C. Ruiz Jimenez, Pablo Guerrero Garca (2002).
Muchas Gracias