ESPECIFICACIÓN FORMAL DE SISTEMAS
LAMBDA EXPRESIONES El lambda cálculo ( C) es un lenguaje simple que permite la descripción de las funciones matemáticas y de sus propiedades El lambda cálculo ( C) es un lenguaje simple que permite la descripción de las funciones matemáticas y de sus propiedades Fue introducido por Church en los años 30 como fundamento de la matemática y constituye un modelo formal Fue introducido por Church en los años 30 como fundamento de la matemática y constituye un modelo formal
EJEMPLO La expresión \x 2 * x se escribe en el C así: La expresión \x 2 * x se escribe en el C así: x. * 2 x x. * 2 x y denota una función de un solo argumento tal que al objeto x le asocia el objeto * 2 x y denota una función de un solo argumento tal que al objeto x le asocia el objeto * 2 x En el ejemplo anterior se observa que:. El símbolo sirve para denotar funciones. El punto. Se usa para separar el argumento (o variable instanciable). En el C se utiliza notación prefija
EQUIVALENCIAS Una -equivalencia con dos funciones significa que las dos funciones son la misma, y por lo tanto debemos identificarlas; así escribiremos en lugar de (o también directamente ), lo cual: Una -equivalencia con dos funciones significa que las dos funciones son la misma, y por lo tanto debemos identificarlas; así escribiremos en lugar de (o también directamente ), lo cual:
EJEMPLO 0.1 La expresión Haskell \x \y (x + y) * 2 se escribe en el C: La expresión Haskell \x \y (x + y) * 2 se escribe en el C: x. y. * (+ x y) 2 x. y. * (+ x y) 2 Aunque a veces la expresión anterior se suele escribir de forma más compacta: Aunque a veces la expresión anterior se suele escribir de forma más compacta: También se obtiene una E al aplicar una función a un objeto. Así aplicando la función del ejemplo 0.0 al objeto 3 ( x. * 2 x ) 3
Si M y N son E, la combinación (M N) es una E que se llama aplicación; en la abstracción x.E, x se llama la variable asociada o ligadora (o instanciable) y E se llama el cuerpo de la abstracción. Si M y N son E, la combinación (M N) es una E que se llama aplicación; en la abstracción x.E, x se llama la variable asociada o ligadora (o instanciable) y E se llama el cuerpo de la abstracción. Convenio 0.0 Sobrecargamos el significado de (igualdad sintáctica) con:. Los paréntesis más externos no se escriben. La abstracción es asociativa a la derecha:. La aplicación es asociativa a la izquierda:
EJEMPLO 0.2 Con el convenio anterior se tienen las igualdades sintácticas: Con el convenio anterior se tienen las igualdades sintácticas:
EJEMPLO 0.2 Con el convenio anterior se tienen las igualdades sintácticas: Con el convenio anterior se tienen las igualdades sintácticas:
EJEMPLO 0.2 Con el convenio anterior se tienen las igualdades sintácticas: Con el convenio anterior se tienen las igualdades sintácticas:
0.1 VARIABLES LIBRES Y ASOCIADAS El ámbito de una variable en una abstracción x.E se extiende a la derecha tanto como sea posible (hasta el primer paréntesis no cerrado o hasta el final de la expresión); una variable x en una expresión E se dice ligada o asociada si aparece en el ámbito de una abstracción de variable instanciable x; en otro caso se dice libre (así; una variable que aparezca en una expresión será libre o ligada; no tiene sentido hablar de libre o ligada si la variable no aparece en la expresión) El ámbito de una variable en una abstracción x.E se extiende a la derecha tanto como sea posible (hasta el primer paréntesis no cerrado o hasta el final de la expresión); una variable x en una expresión E se dice ligada o asociada si aparece en el ámbito de una abstracción de variable instanciable x; en otro caso se dice libre (así; una variable que aparezca en una expresión será libre o ligada; no tiene sentido hablar de libre o ligada si la variable no aparece en la expresión)
EJEMPLO 0.3 Analizando las variables que aparezcan en las E siguientes, se tiene que: Analizando las variables que aparezcan en las E siguientes, se tiene que:
EJEMPLO 0.3 Analizando las variables que aparezcan en las E siguientes, se tiene que: Analizando las variables que aparezcan en las E siguientes, se tiene que:
SEMÁNTICA OPERACIONAL
EJEMPLO 1.1 La evaluación de la expresión La evaluación de la expresión Puede dar lugar al siguiente computo Puede dar lugar al siguiente computo
EJEMPLO 1.1