Click here to load reader
Upload
brianakon
View
215
Download
0
Embed Size (px)
DESCRIPTION
Apostila para estudo direcionado ao tema.
Citation preview
TEORIA DA COMPUTAO
UNIDADE 04 FUNES RECURSIVASProfa. Joyce Martins ([email protected])
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: introduo
So construdas a partir de trs funes naturais e trs operaes:zerozero: N N, tal que xN , zero(x) = 0
sucessor de um nmero naturalsucessor: N N, tal que xN , sucessor(x) = x + 1
projeoprojeoi: Nn N, tal que projeoi (x1, x2, ... xn) = xi4. FUNES RECURSIVAS: funes recursivas de Kleene
So construdas a partir de trs funes naturais e trs operaes:substituio composicionalsejam 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 comoh(x1, x2, ... xn) = g(f1(x1, x2, ... xn), f2(x1, x2, ... xn), ... fk(x1, x2, ... xn))
recursosejam as funes recursivas f: Nn N e g: Nn+2 N, ento h: Nn+1 N definida por recurso a partir das funes f e g comoh(x1, x2, ... xn, 0) = f(x1, x2, ... xn)h(x1, x2, ... xn, y+1) = g(x1, x2, ... xn, y, h(x1, x2, ... xn, y))
minimizaoseja a funo recursiva f: Nn+1 N, ento h: Nn N definida por minimizao da funo f comoh(x1, x2, ... xn) = min {y | f(x1, x2, ... xn, y) = 0 }4. FUNES RECURSIVAS: funes recursivas de Kleene
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 -termoUma -abstrao representa uma funo que possui um parmetro.EXEMPLO: x.(x + 1)
-aplicao: se M e N so -termos, ento (M N) tambm um -termoUma -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: clculo Lambda linguagem
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.
4. FUNES RECURSIVAS: importncia
DOCUMENTOS CONSULTADOS / RECOMENDADOSDIVERIO, T. A.; MENEZES, P. B. Teoria da computao: mquinas universais e computabilidade. 3.ed.Porto Alegre: Bookman, 2011.
********