A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.

Apresentações semelhantes


Apresentação em tema: "01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB."— Transcrição da apresentação:

1 01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB

2 -calculus 01(c) 2007 Gustavo Motta 2 Sumário Sintaxe Renomeação, -congruência e substituição

3 -calculus 01(c) 2007 Gustavo Motta 3 Sintaxe Considerações Funções representadas por uma notação simbólica (expressões- ) e não por conjuntos de pares Define-se Uma sintaxe sem preocupações semânticas Operações sobre as expressões- Teoria de transformações de funções para investigar suas propriedades sob essas operações Toda expressão- denota alguma função Não considera os domínios e os co-domínios - livre de tipos O -calculus é uma importante ferramenta para estudar as propriedades matemáticas das linguagens de programação

4 -calculus 01(c) 2007 Gustavo Motta 4 Sintaxe Assume-se que há de uma seqüência infinita de variáveis representadas por identificadores constantes representadas por uma cadeia finita de dígitos ou outros símbolos Variáveis e constantes são denominados de átomos, pois são as expressões- mais simples expressões- mais complexas são formadas a partir dos átomos pelo uso de duas operações de formação de expressões Aplicação Abstração

5 -calculus 01(c) 2007 Gustavo Motta 5 Sintaxe Abstração Formada pelo símbolo seguido de uma variável, seguindo por um ponto, seguido por uma expressão- arbitrária x.x x. y.x x. y.y Visa criar um função unária a partir de uma expressão- dada A variável que segue o símbolo corresponde ao nome do argumento da função Funções com mais de um argumento são formadas pela repetição de abstrações

6 -calculus 01(c) 2007 Gustavo Motta 6 Sintaxe Aplicação É apenas a aplicação de uma expressão- a outra A primeira das expressões é denominada operador A segunda é chamada de operando da aplicação (f)3 ( x. y.x)2 ( x. y.y) x.x Qualquer expressão- pode ser usada como operando ou operador

7 -calculus 01(c) 2007 Gustavo Motta 7 Sintaxe Sintaxe formal ::= | | | ::= ( ) ::=. Exemplos x.x x. y.(y)x x.(f)x (f)3 f.(f)2 ( y.(x)y) x.(u)x Observe notação de aplicação de função f(x) passa ser (f)x na notação Letras minúsculas para nomes de variáveis expressões- arbitrárias são denotadas por letras maiúsculas

8 -calculus 01(c) 2007 Gustavo Motta 8 Sintaxe Definição de igualdade Duas expressões-, P e Q, são idênticas, em símbolos, P Q, se e somente se Q é uma cópia exata de P, símbolo por símbolo Associatividade A aplicação de funções é associativa à direita (P)(Q)R corresponde à aplicação de P a (Q)R ((P)Q)R denota a aplicação de (P)Q a R

9 -calculus 01(c) 2007 Gustavo Motta 9 Sintaxe Variáveis livres A ocorrência de uma variável x numa expressão- está amarrada se ela está dentro de um subtermo com a forma x.P, caso contrário, ela está livre Definição – O conjunto de variáveis livres de uma expressão- E, denotado por (E), é definida por indução na construção de E 1. (c) = {} 2. (x) = {x} para qualquer variável x 3. ( x.P) = (P) {x} 4. ((P)Q) = (P) (Q)

10 -calculus 01(c) 2007 Gustavo Motta 10 Sintaxe Variáveis livres Exemplos ( x.(z)x) y.(y)x y.( x.(x)y) y.(y)x ( x.(z)x) y.(y)x y.( x.(x)y) y.(y)x

11 -calculus 01(c) 2007 Gustavo Motta 11 Renomeação, -congruência e substituição Motivação A computação dos valores de uma função para um dado argumento requer a substituição do argumento para a variável correspondente na expressão que representa a função x. y.((+)x)y ( x. y.((+)x)y)10 y.((+)10)y ( y.((+)10)y)15 ((+)10)15 25

12 -calculus 01(c) 2007 Gustavo Motta 12 Renomeação, -congruência e substituição Aspecto fundamental Duas expressões- são consideradas essencialmente as mesmas se elas diferem apenas nos nomes de suas variáveis amarradas As expressões- x.(y)x e z.(y)z representam a mesma função A liberdade de uso do nome de variáveis amarradas é formalizada transformação -congruência Renomeação de variáveis amarradas que não modifica o sentido de expressões-

13 -calculus 01(c) 2007 Gustavo Motta 13 Renomeação, -congruência e substituição Renomeação Definição – A renomeação de uma variável x para z numa expressões- P, em símbolos {z/x}P, é definida por indução na construção de P 1. {z / x}x z 2. {z / x}y y se x y 3. {z / x} x.E z.{z / x}E para toda expressão- E 4. {z / x} y.E y.{z / x}E para toda expressão- E, x y 5. {z / x}(E 1 )E 2 ({z / x}E 1 ){z / x}E 2 para quaisquer expressões-, E 1 e E 2

14 -calculus 01(c) 2007 Gustavo Motta 14 Renomeação, -congruência e substituição Renomeação O prefixo {z / x} não é parte da notação É apenas uma forma de indicar a renomeação {a / b}( v. b.(b)v) u.((c)u)b indica a expressão ( v. a.(a)v) u.((c)u)a A regra x.E z.{z / x}E para qualquer z que não esteja amarrado ou livre em E

15 -calculus 01(c) 2007 Gustavo Motta 15 Renomeação, -congruência e substituição -congruência ( -igualdade) Definição – Duas expressões-, M e N, são -congruentes (ou -iguais), em símbolos M N, se M N, ou M N, ou N é obtido de M pela troca de uma sub-expressão de S de M por uma expressão- T, tal que S T, ou existe alguma expressão- R, tal que M R e R N Relação de equivalência Reflexiva, simétrica e transitiva

16 -calculus 01(c) 2007 Gustavo Motta 16 Renomeação, -congruência e substituição Substituição (conversão- ) Definição – A substituição com Q de todas as ocorrências livres da variável x em P, em símbolos [Q / x]P, é definida por indução em P 1. [Q / x]x Q 2. [Q / x]y y se x y 3. [Q / x] x.E x.E para qualquer expressão- E 4. [Q / x] y.E y.[Q / x]E para qualquer expressão- E, se x y e pelo menos uma das seguintes condições valha: x (E), y (Q) 5. [Q / x] y.E z.[Q / x]{z / y}E para qualquer expressão- E e para qualquer z, com x z y, que não seja nem livre ou amarrado em (E)Q, se x y e ambos x (E) e y (Q) valem 6. [Q / x](E 1 )E 2 ([Q / x]E 1 ) [Q / x]E 2

17 -calculus 01(c) 2007 Gustavo Motta 17 Renomeação, -congruência e substituição Substituição (conversão- ) O prefixo [Q / x]P não é parte da notação É apenas uma forma de indicar a substituição [ z. y.(y)z / x]( u.(x)u)(u)x -congruente com ([ z. y.(y)z / x] u.(x)u)[ z. y.(y)z / x](u)x que é ( u.[ z. y.(y)z / x](x)u)([ z. y.(y)z / x]u)[ z. y.(y)z / x]x que é ( u.([ z. y.(y)z / x]x)[ z. y.(y)z / x]u)(u) z. y.(y)z finalmente, -congruente com ( u.( z. y.(y)z)u)(u) z. y.(y)z

18 -calculus 01(c) 2007 Gustavo Motta 18 Renomeação, -congruência e substituição Substituição (conversão- ) A operação de substituição nem sempre é trivial Os casos mais complexos envolvem o item 5. da definição [ u.(y)u / x] y.(x)y resulta em y.[ u.(y)u / x](x)y e então y.([ u.(y)u / x]x)[ u.(y)u / x]y e finalmente y.( u.(y)u)y Qual é o problema da substituição anterior? [ u.(y)u / x]{z / y} y.(x)y resulta em z.( u.(y)u)z

19 -calculus 01(c) 2007 Gustavo Motta 19 Bibliografia Revesz, G. E. Lambda-Calculus, Combinators, and Functional Programming. Cambridge University Press, 1988.


Carregar ppt "01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB."

Apresentações semelhantes


Anúncios Google