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

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

1 O  -Cálculo & Linguagens Funcionais Rafael Dueire Lins Departamento de Informática Universidade Federal de Pernambuco - Recife - Brasil.

Apresentações semelhantes


Apresentação em tema: "1 O  -Cálculo & Linguagens Funcionais Rafael Dueire Lins Departamento de Informática Universidade Federal de Pernambuco - Recife - Brasil."— Transcrição da apresentação:

1

2 1 O  -Cálculo & Linguagens Funcionais Rafael Dueire Lins Departamento de Informática Universidade Federal de Pernambuco - Recife - Brasil

3 2 Motivação: O  -Cálculo é fundamental para o conceito de computabilidade. O  -Cálculo é fundamental para o conceito de computabilidade. n Ele servirá como linguagem intermediária no nosso estudo. Uma linguagem funcional será descrita sobre o  -Cálculo. Uma linguagem funcional será descrita sobre o  -Cálculo. n Serão analisados mecanismos de avaliação de expressões.

4 3 Programa: Lunes: Introdução ao -Cálculo. Lunes: Introdução ao -Cálculo. Martes: O -Cálculo como uma linguagem de programação. Martes: O -Cálculo como uma linguagem de programação. n Miercoles: Lógica Combinatorial. n Jueves: Garbage Collection. n Viernes:The Fall and Rise of Functional Programming.

5 4 Introdução l l John Backus - 1978 Crise de SoftwareCrise de Software Gargalo de von-NeumannGargalo de von-Neumann l l Linguagens Funcionais Sintaxe mais agradável do que a do Lambda-CalculusSintaxe mais agradável do que a do Lambda-Calculus Programação com funçõesProgramação com funções LISP (1960) foi a primeira linguagem funcionalLISP (1960) foi a primeira linguagem funcional

6 5 Programação Funcional l l Funções de Alta-Ordem Funções são cidadãs de primeira classeFunções são cidadãs de primeira classe l l Transparência Referencial Ausência de assinaladores destrutivos (Linguagens Puras)Ausência de assinaladores destrutivos (Linguagens Puras)

7 6 O -Cálculo l l Alonzo Church (1930) l Lógica de Alta-Ordem l Parte de um sistema para Lógica de Alta-Ordem l Peano-Russell l Fundação matemática (Peano-Russell) l l Inconsistente como Teoria Fundacional

8 7 O -Cálculo l l Subconjunto funcional consistente. definibilidade no -Cálculo computabilidade Turing (1936) unificou os conceitos de definibilidade no -Cálculo e de computabilidade l l Linguagens funcionais são sintaxes “mais bonitas”

9 8 O -Cálculo l Sintaxe:  expr  ::   variável   expr  ::   variável  |  constante  |  expr  expr  | variavel .  expr  Exemplos: id x  x  x.x id x  x  x.x Proj x y z  y  x y z.y Proj x y z  y  x y z.y

10 9 O -Cálculo l l Semântica Operacional: Variáveis Livres e Ligadas - x é dita livre em uma expressão- M se: - x é dita livre em uma expressão- M se: 1. M = x 2. M = y.N se x ocorrer livre em N e x!= y 3. M = N O se x ocorrer livre tanto em N quanto em O

11 10 O -Cálculo l l Semântica Operacional: A Conversão-  - Trocando o nome de uma variável - Trocando o nome de uma variávelligada x.x  y.y

12 11 O -Cálculo l l Semântica Operacional: A Conversão-  - Substituição de parâmetros reais por parâmetros formais - Substituição de parâmetros reais por parâmetros formais ( x.t ) s   [ s / x ] t onde [ s / x ] t significa t com cada ocorrência livre de x substituída por s

13 12 O -Cálculo l Semântica Operacional: A Conversão- A Conversão- Exemplo: ( x y z.xyz)( a b c.a(bc))( f.f)   ( y z.( a b c.a(bc)yz)( f.f)   ( z.( a b c.a(bc))( f.f)z)   ( z.( b c.( f.f)(bc))z)

14 13 O -Cálculo l Semântica Operacional: A Conversão- A Conversão-  - Condição de extensionalidade do sistema - Condição de extensionalidade do sistema ( x.  x )    se não houver nenhuma ocorrência de x livre em 

15 14 O -Cálculo l Exemplos de redução: 1. ( a. b.a)( i.i)c 2. ( a.aa) ( a.aa) 3. ( a.aaa) ( a.aaa) 4. ( a. b.a)( i.i) (( a.aaa) ( a.aaa)) 8

16 15 O -Cálculo l Teoremas de Church-Rosser 1. Formas normais são únicas (módulo conversão-  ) 2.  -reduzir a expressão mais externa e mais à esquerda a cada ponto numa sequência de reduções leva a forma normal, se ela existir.

17 16 O -Cálculo l Captura Reduções-  realizadas de forma incorretaReduções-  realizadas de forma incorreta Exemplo: ( x.( y.yx))y  [y/x]( y.yx)  y.yy Solução trivial: conversão- 

18 17 O -Cálculo de DeBruijn: l Evita Captura. l O nome das variáveis não é importante. l O que importa é a distância sintática entre as variáveis e seus limitadores. l Utilizado em Provadores de Teoremas (Automath) e linguagens de programação.

19 18 Amanhã: O -Cálculo servirá como base para uma linguagem de programação. O -Cálculo servirá como base para uma linguagem de programação.


Carregar ppt "1 O  -Cálculo & Linguagens Funcionais Rafael Dueire Lins Departamento de Informática Universidade Federal de Pernambuco - Recife - Brasil."

Apresentações semelhantes


Anúncios Google