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

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Capítulo 8 A linguagem da Lógica de Predicados
Capítulo 9 A semântica da Lógica de Predicados
Matrizes especiais Matriz linha Matriz do tipo 1 x n, ou seja, com uma única linha. Por exemplo, a matriz A =[ ], do tipo 1 x 4. Matriz coluna.
Linguagem Fabrício Dias
MÁQUINAS UNIVERSAIS Fabrício Dias
I - Noções dum compilador
Prof.: Bruno Rafael de Oliveira Rodrigues
Linguagens Formais e Autômatos
Teoria da Computação FIC– Ciência da Computação
Elsa Carvalho 49 Universidade da Madeira Departamento de Matemática e Engenharias Programação em Lógica e Funcional (2000/01) (Actualizado em 2005/06)
Composta de funções.
Nice Maria Americano da Costa
Software Básico Silvio Fernandes
ÁLGEBRA BOOLEANA Prof. Wanderley.
Ivan Saraiva Silva Aula 1 - Álgebra Booleana
Resolução.
Relações Adriano Joaquim de O Cruz ©2002 NCE/UFRJ
Então, vamos lá! Qual é esse conteúdo?
Prof. Sérgio Altenfelder
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
Linguagens Livres de Contexto
BCC 101– Matemática Discreta
LINGUAGEM C.
Polinômios Prof. Marlon.
02(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
05(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
04(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
Introdução ao -calculus
00(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
3. Sintaxe e Semântica.
Prof. Luiz A M Palazzo Pelotas, fevereiro de 2011
AXIOMATIZAÇÃO Equipe: André Augusto Kaviatkovski, Daniel Elias Ferreira, Vinicius Zaramella.
Linguagem de 1ª ordem da teoria de conjuntos
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
1 – Matrizes: Operações e Propriedades
Conceitos Básicos.
TENSÕES E CORRENTES EM CIRCUITOS TRIFÁSICOS BALANCEADOS Sistemas de potência são alimentados por geradores trifásicos. De maneira ideal, os geradores suprem.
Simplificação de Expressões Booleanas e Circuitos Lógicos
Campus de Caraguatatuba
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Análise Semântica e Representação Intermédia
Números Complexos Definição: Um número complexo z pode ser definido como um par ordenado (x, y) de números reais x e y, z = (x, y) (1) sujeito.
Compiladores, Aula Nº 7 João M. P. Cardoso
Funções e suas propriedades
Informática Teórica Engenharia da Computação
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Conceitos de Lógica Digital
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Capítulo 11 Programação Lógica
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Teoria da Computação Aula 1 Prof. Fabiano Sabha.
CAPÍTULO 2 - CONJUNTOS.
Campus de Caraguatatuba Aula 12: Sistemas de Equações Lineares (2)
Conceitos básicos em grafos
Campus de Caraguatatuba Aula 2: Somatório e Produtório
©Prof. Lineu MialaretAula 9 - 1/28Matemática Discreta 1 Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba.
Nome alunos 1 Título UC. Título – slide 2 Conteúdo Conteúdo 2.
Campus de Caraguatatuba
1 O  -Cálculo & Linguagens Funcionais Rafael Dueire Lins Departamento de Informática Universidade Federal de Pernambuco - Recife - Brasil.
BCC101 Matemática Discreta I
Matemática Discreta 1 – MD 1
Cálculo Lambda (l – Calculus)
Lambda Cálculo & Programação Funcional
Cálculo Lâmbda (l – Calculus)
©Prof. Lineu MialaretAula 4 - 1/27Matemática Discreta I Instituto Federal de Educação, Ciência e Tecnologia de São Paulo - IFSP Campus de Caraguatatuba.
Engenharia/Ciência da Computação
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Álgebra de Boole Circuitos Digitais
Colégio da Imaculada Colégio da Imaculada Curso Técnico em Informática
Transcrição da apresentação:

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

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

-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

-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

-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

-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

-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

-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

-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)

-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

-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

-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-

-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

-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

-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

-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

-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

-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

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