Sunteți pe pagina 1din 8

TEORIA DA COMPUTAO

UNIDADE 04 FUNES RECURSIVAS


Profa. Joyce Martins (joyce@furb.br)

4. FUNES RECURSIVAS: introduo


Funo recursiva um formalismo usado para especificar algoritmos que
construdo a partir de funes elementares de forma composicional, no
sentido em que o algoritmo denotado pela funo pode ser determinado em
termos de suas funes componentes (DIVERIO; MENEZES, 2011, p. 214).

4. FUNES RECURSIVAS: funes recursivas de


Kleene
So construdas a partir de trs funes naturais e trs operaes:
zero
zero: N N, tal que xN , zero(x) = 0
sucessor de um nmero natural
sucessor: N N, tal que xN , sucessor(x) = x + 1
projeo
projeoi: Nn N, tal que projeoi (x1, x2, ... xn) = xi

4. FUNES RECURSIVAS: funes recursivas de


Kleene
So construdas a partir de trs funes naturais e trs operaes:
substituio composicional
sejam as funes recursivas g: Nk N e f1, f2, ... fk: Nn N, ento h: Nn
N definida por substituio composicional a partir das funes g, f1, f2, ... fk
como
h(x1, x2, ... xn) = g(f1(x1, x2, ... xn), f2(x1, x2, ... xn), ... fk(x1, x2, ... xn))
recurso
sejam as funes recursivas f: Nn N e g: Nn+2 N, ento
N definida por recurso a partir das funes f e g como
h(x1, x2, ... xn, 0) = f(x1, x2, ... xn)
h(x1, x2, ... xn, y+1) = g(x1, x2, ... xn, y, h(x1, x2, ... xn, y))
minimizao
seja a funo recursiva f: Nn+1 N, ento h: Nn N definida por
minimizao da funo f como
h(x1, x2, ... xn) = min {y | f(x1, x2, ... xn, y) = 0 }

h:

Nn+1

4. FUNES RECURSIVAS: clculo Lambda linguagem


A linguagem Lambda (ou -linguagem) o conjunto dos -termos sobre um
conjunto infinito (V) de variveis.
So - termos:
variveis: vV um -termo
-abstrao: se M um -termo e xV, ento (x.M) um -termo
Uma -abstrao representa uma funo que possui um parmetro.
EXEMPLO: x.(x + 1)
-aplicao: se M e N so -termos, ento (M N) tambm um -termo
Uma -aplicao representa a aplicao da funo M a um valor N.
EXEMPLO: (x.(x + 1)) 3

O resultado de uma aplicao calculado por substituio e reduo, que


interpretada como um passo computacional na busca de um valor
representativo para um -termo qualquer (DIVERIO; MENEZES, 2011, p.
229).

4. FUNES RECURSIVAS: clculo Lambda linguagem


Existem trs tipos de redues:
reduo alfa (-reduo): renomeao de variveis ligadas, isto , variveis
que esto no escopo de um -termo;
x.M y.M[xy]
reduo beta (-reduo): aplicao de uma funo a um argumento, por
substituio;
(x.M)N M[xN]
reduo iterada: aplicao sucessiva de qualquer das redues anteriores.

4. FUNES RECURSIVAS: importncia


Funes recursivas possuem um poder de expresso significativo, no sentido
em que uma simples funo pode representar um algoritmo consideravelmente
complexo (DIVERIO; MENEZES, 2011, p. 237).
Linguagens de programao funcionais, como Lisp e Haskell, onde programas
so funes e composio de funes em vez de comandos, so baseadas no
clculo Lambda.
Alm disso, as linguagens de programao possuem recurso como um
construtor bsico de programas e o Java 8 inclui -expresses, isto ,
expresses do Clculo-Lambda que permitem a chamada de funes sem a
atribuio de nomes, isto , anonimamente.

DOCUMENTOS CONSULTADOS / RECOMENDADOS


1.

DIVERIO, T. A.; MENEZES, P. B. Teoria da computao: mquinas


universais e computabilidade. 3.ed. Porto Alegre: Bookman, 2011.

S-ar putea să vă placă și