SlideShare ist ein Scribd-Unternehmen logo
1 von 24
Downloaden Sie, um offline zu lesen
U   N I V E R S I D A D E   L   U S Í A D A   D E   L   I S B O A

Faculdade de Ciências da Economía e da Empresa

          Mestrado em Ciências da Computação




        Programas recursivos de domínio finito




                    Hercílio Rui Dinis Duarte




                              Lisboa

                             Maio 2012
U   N I V E R S I D A D E   L   U S Í A D A   D E   L   I S B O A

Faculdade de Ciências e da Economía da Empresa

          Mestrado em Ciências da Computação




        Programas recursivos de domínio finito




                    Hercílio Rui Dinis Duarte




                              Lisboa

                             Maio 2012
APRESENTAÇÃO



                    Programas recursivos de domínio finito



                               Hercílio Rui Dinis Duarte




Após verificar estudos anteriores sobre automatos finitos deterministicos e não
deterministicos, surge a necessidade de se efectuar um estudo sobre programas de
dominio finito, embora o presente trabalho irá simplesmente especializar-se nos
recursivos.

Neste trabalho, iremos estudar sobre os programas recursivos de dominio finito
baseando-se em transdutores que permitem fazer um controle recursivo de estados
finitos, ou seja, transdutores pushdown.

Após verificar-se resultados e concluir suas vantagens, iremos então simplificar este
trabalho ao simplifica-lo num diagrama mais simples.

Palavras-chave: Transdutores de estados finitos, Recursividade, Pilhas, Transdutores
pushdown
PRESENTATION



                         Recursive finite-domain programs


                                Hercílio Rui Dinis Duarte



After verifying previous studies on deterministic finite automata and non-deterministic,
there is a need to conduct a study on finite domain programs, although this work will
specialize in just recursive.

In this paper, we study about the domain of recursive programs based on finite
transducers that allow a recursive finite state control, ie, pushdown transducers.

After checking up the results and conclude its advantages, then we will simplify the job
simplifying it to a simple diagram.




Keywords: finite-state tranducers, Recursion, Stacks, Pushdown transducers
LISTA DE ILUSTRAÇÕES

Ilustração 1 – Representação do processamento de uma pilha ........................................... 16

Ilustração 2 – Representação das partes de um transdutor pushdown. (GUARARI
Eiton, 1998) ......................................................................................................................... 18

Ilustração 3 – Representação da abordagem sintática da Web 1.0 e 2.0 (GUARARI
Eiton, 1998) ......................................................................................................................... 21

Ilustração 4 – Diagrama de estados do transdutor pushdown (GUARARI Eiton, 1998)........ 22
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




LISTA DE ABREVIATURAS, SIGLAS E ACRÓNIMOS

       PLN - Processamento de Linguagens Naturais
       AFD - Autómatos Finitos Deterministicos
     AFND - Autómatos Finitos Não Deterministicos
       LIFO - Last in First Out




Hercílio Rui Dinis Duarte                           13
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




SUMÁRIO


1. Introdução .................................................................................................... 15
2. Programas recursivos de domínio finito ....................................................... 16
   2.1. Recursividade ........................................................................................ 16
      2.1.1. Tipos de recursividade .................................................................... 17
      2.1.2. Descrições resumidas sobre recursividade ..................................... 18
   2.2. Estrutura de uma pilha ........................................................................... 18
   2.3. Trasndutores baseados em pilhas (pushdown) ..................................... 19
      2.3.1. Estrutura .......................................................................................... 20
         2.3.1.1. Fita de entrada (Input tape) ....................................................... 20
         2.3.1.2. Cabeçalho de entrada (Input head)........................................... 20
         2.3.1.3. Controlo do estado finito ........................................................... 21
         2.3.1.4. Cabeçalho de saída .................................................................. 21
         2.3.1.5. Fita de saída ............................................................................. 21
         2.3.1.6. Cabeçalho pushdown (escrita e leitura) .................................... 21
         2.3.1.7. Fita pushdown ........................................................................... 21
      2.3.2. Cálculo de uma relação pelo transdutor pushdown ......................... 21
      2.3.3. Diagrama em grafo do transdutor pushdown .................................. 22
3. Conclusão .................................................................................................... 24




Hercílio Rui Dinis Duarte                                                                                         14
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




1. INTRODUÇÃO

A teoria da computação apresenta uma diversa e complexa relação de várias relações
capazes de simular qualquer realidade automática. Nesta viajem, entende-se a
essência do funcionamento dos sistemas, o que está por trás, quais as principais
barreiras entre a compreensão homem-máquina assim como a relação de
compreensão entre estes.

Tal como foi proposto, começou-se por estudar a compreensão e o processamento
das linguagens naturais (PLN). Agora a realidade tornou possivel o estudo de
formalismos que representam a comunicação nos dispositivos computacionais. O
presente trabalho vem aboradar aspectos relacionados a programas que dependem
de memórias finitas e que de maneira recursiva simplificam os cálculos.

Os transdutores são tidos como dispositivos que convertem um tipo de energía para
outro, é muito usado na electricidade. Mas para a nossa realidade o termo transdutor
será aplicado pelo facto deste ser um dispositivo em que antes de fornecer um
determinado resultado primeiro trata de aplicar antes suas propriedades previamente
programadas. Pois atravês de uma sequência de acções iremos verficar como estás
propriedades se desenvolvem.




Hercílio Rui Dinis Duarte                                                         15
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




2. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO

MOREIRA (1997) afirma que, os modelos de computação podem ser caracterizados
em termos do tipo de memória que possuem e como se tem acesso a ela.

Cada tarefa de computação finita pode ser realizada por um circuito combinacional.
Embora este conceito seja muito importante, mas não é tão prático. Não podemos
simplesmente projectar um circuito especialmente a cada tarefa computacional. Em
vez disso, é aconselhavel executar tarefas computacionais com máquinas que
funcionam com uma memória auxiliar para o controle do fluxo de dados. (SAVAGE
John, 1997)

Apartir do conceito acima, temos então as máquinas de memória finita e as máquinas
de memória finita com característica recursiva.

Podemos pensar que uma das formas de determinarmos a recursividade de um
programa de domínio finito é através da observação e descrição dos elementos
relacionados a memória. A memória deverá permitir um acesso recursivo de maneira
finita aos seus objectos pré-definidos.

Segundo SAVAGE (1997), os programas recursivos de domínio finito, funcionam tendo
em sua base a implementação de uma memória auxiliar Pushdown (uma pilha), isto é,
o armazenamento sobre esta é efectuado numa ordem LIFO (Last In, First Out).


    2.1. RECURSIVIDADE

Segundo CRESPO (2001), A recursividade1 é a metodología de descrever uma
estrutura, em que um dos elementos é a descrição da própria estrutura.

A recursividade permite que possamos definir infinitos objectos de uma maneira
simples e objectiva. É uma técnica bastante poderosa para o desenvolvimento de
algoritimos.

Podemos verificar um comportamento recursivo na definição de uma função factorial:




1
  Em outras palavras significa recorrência, enquanto uma data equação não é igualada a
definição de sua base.


Hercílio Rui Dinis Duarte                                                           16
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




                                     1 se n  0 e
                                 n! 
                                     n.(n  1)! se n  1
Segundo KOWALTOWSKI (2010), em algoritimia uma estrutura de dados recursivos
pode definir-se atravês dos seguintes procedimentos:

void Exemplo (T1 x1 , T2 x2 , . . . ) {

    S1 y1; S2 y2; . . . ;

    Ci ;     /* Comandos i n i c i a i s */

    i f (E ( . . . ) ) {

        C0 ; /* Caso base */

} else {           /* Chamadas r e c u r s i v a s */

C1 ; Exemplo ( e11 , e12 , . . . ) ;

C2 ; Exemplo ( e21 , e22 , . . . ) ;

C3 ; Exemplo ( e31 , e32 , . . . ) ;

...;

Cm; Exemplo ( em1 , em2 , . . . ) ;

Cf ;

    }
}

              2.1.1. TIPOS DE RECURSIVIDADE

De uma forma objectiva e lógica de enquadramento do conceito recursividade em
nosso projecto iremos nos basear em dois tipos. Tal como NETO, António (1998)
classifica como tipos de recursividade o seguinte:

           Recursividade infinita




Hercílio Rui Dinis Duarte                                                  17
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




Um procedimento recursivo é infinito quando não existe nenhuma condição que faça o
procedimento ser interrompido.

       Recursividade finita

A recursão finita é conhecida quando se encontra uma estrutura de condição de
paragem em algum momento da execução de um programa.


           2.1.2. DESCRIÇÕES RESUMIDAS SOBRE RECURSIVIDADE

       Num programa recursivo deve haver a garantia que o processo seja finito.
        Caso contrario o programa estará a fazer infinitas chamadas recursivas. Neste
        caso deve haver um estado de paragem.

       O estado de paragem de um programa recursivo é determinado através de um
        subprograma associado denominado como a base do processo.

       A rotina recursiva trabalha sobre uma instância, e para cada chamada
        recursiva deve haver garantia que a instância que será passada a ele seja
        sempre mais restrita que a chamada superior.

       Através de resumos acima, verificamos que a recursividade finita é aplicada em
        sistemas da computação, de formas a e evitar que estes sistemas sejam
        infinitamente recursivos.


    2.2. ESTRUTURA DE UMA PILHA

Segundo LOPES (1999), Uma pilha que também é conhecida como stack, é um
sistema usado para o armazenamento de dados. O seu critério de acesso é definido
pelo facto do último elemento que entra na estrutura, ser o primeiro a sair.

LOPES (1999) também afirma que, as pilhas são utilizadas para guardar dados que
devem ser processados em ordem inversa de chegada e que são muito utilizadas em
sistemas operativos, compiladores e nas instruções de programas que realizam
chamadas de subprogramas (recursividade).


NETO, António (1998) apresenta como afirmação de que, uma pilha é de
extrema importância para o entendimento de um processo recursivo.



Hercílio Rui Dinis Duarte                                                           18
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




Mediante as afirmações apresentadas, podemos supor que uma pilha é um sistema
conceptual que representa uma memória com a seguinte estrutura:




                        Ilustração 1 – Representação do processamento de uma pilha




Operações básicas de uma pilha:

          sobreposição de um novo elemento;

          retirar o elemento do topo da pilha;

          verificar qual é o elemento no topo da pilha;

          verificar se a pilha está vazia.



Para este trabalho, iremos admitir a apresentação de uma memória recursiva baseada
em pilhas denominada como Transdutor pushdown e que iremos estudar no
subcapítulo seguinte.


    2.3. TRASNDUTORES BASEADOS EM PILHAS (PUSHDOWN)

Para GURARI (1989), um trasndutor pushdown é uma máquina abstracta de controlo
de estados finito mas de forma recursiva.




Hercílio Rui Dinis Duarte                                                            19
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




O Conceito de transdutores finito vem dar a possibilidade de esquematizar-mos um
programa que funciona mediante uma entrada, um estado e uma saida. O transdutor
não deixa de ser um automato, mas com a diferença deste ter em sua estrutura uma
memória que diretamente interage com a unidade de controlo.

Pelo facto contarem com uma memória antes de fornecer um determinado resultado é
que atribui a caracteristica de serem chamados de transdutores finitos que os
distingue dos demais tipos de automatos.

O termo recursividade nos transdutores de estados finitos é tido como verdade no
momento em que a pesquisa que a unidade de controle realiza a memória é do tipo
LIFO, ou seja, obdecendo uma estrutura de dados em pilha. Neste caso, o transdutor
deixa de ser simplesmente transdutor de controle finito e passa a ser transdutor de
controle finito recursivo (pushdown).




                 Ilustração 2 – Representação das partes de um transdutor pushdown. (GUARARI
                                                  Eiton, 1998)




           2.3.1. ESTRUTURA

                2.3.1.1. FITA DE ENTRADA (INPUT TAPE)

A fita de entrada permite apresentar a sequência determinada do conjunto de simbolos
do alfabeto a ser reconhecido.


                2.3.1.2. CABEÇALHO DE ENTRADA (INPUT HEAD)

O Cabeçalho trata de efectuar a leitura a apartir da fita dos dados de entrada e deixar
os dados disponíveis para serem controlados finitamente.



Hercílio Rui Dinis Duarte                                                                      20
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




                2.3.1.3. CONTROLO DO ESTADO FINITO

Também tratado como unidade de controlo finito, é a parte principal que permite ter
controle da sequência de cálculos e trata de conectar-se a memória auxiliar de
maneira a obter um maior desempenho. Em que no caso, a memória é uma pilha.


                2.3.1.4. CABEÇALHO DE SAÍDA

O cabeçalho que permite simplesmente escrever o reasultado final, como diz o próprio
termo, é apenas de saida, de modos a que a informação após ter passado por uma
regra rigorosa é então apresentada.


                2.3.1.5. FITA DE SAÍDA

Esta fita, é entidade que exibe os dados atravês de uma escrita depois do cabeçalho
de saida efectuar o seu trabalho.


                2.3.1.6. CABEÇALHO PUSHDOWN (ESCRITA E LEITURA)

O Cabeçalho de pushdown responsabiliza-se de efectuar continuamente uma
pesquisa sobre a mémoria (fita pushdown) em busca dos dados previamente
ordenados.


                2.3.1.7. FITA PUSHDOWN

É vista como sendo a memória auxiliar do sistema. tal como foi estudado, esta ordena
os dados obedecendo as regras seguindo o principio de uma pilha.


           2.3.2. CÁLCULO DE UMA RELAÇÃO PELO TRANSDUTOR PUSHDOWN

A imagem a baixo proposta por GUARARI (1998), representa os diferentes estados de
um transdutor no reconhecimento da linguagem { (aibi, ci) | i >1 }, sendo que no
primeiro estado o transdutor assume em sua fita pushdown (a chamada memória
auxiliar LIFO), o simbolo Z0 que marca o fundo da pilha. O cálculo começa pela leitura
da sequência de a´s pela fita de entrada, e enquanto ocorre essa leitura é dado
também como entrada de forma sequencila desses valores na memória pushdown, os
simbolos são lidas um a um a partir da entrada, ou seja, de forma léxica.




Hercílio Rui Dinis Duarte                                                           21
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




Assim que M termina a leitura dos a’s, começa a leitura dos b´s, e na ocorrência dessa
leitura é recuperado um a para cada b lido e ao mesmo tempo é escrito um c na fita de
saida.

A linguagem será aceite caso na leitura do último b, haver a recuperação do último a
(permitindo assim uma deslocação para o valor inicial da memória, Z0) e a escrita do
último c. Caso contrário, ou seja, se o último b for lido e não haver a recuperação de
Z0, a linguagem não será reconhecida.




                    Ilustração 3 – Representação da abordagem sintática da Web 1.0 e 2.0 (GUARARI
                                                     Eiton, 1998)




           2.3.3. DIAGRAMA EM GRAFO DO TRANSDUTOR PUSHDOWN

Segundo Guarari (1998), graficamente um transdutor Pushdown é representado
obdecendo o seguinte:



M = <Q, Ʃ, Γ, Δ, δ, q0, Z0, F>, sendo que:


Q – Conjunto de estados

Ʃ - Alfabeto

Γ – Alfabeto pushdown

Δ – Alfabeto de saida




Hercílio Rui Dinis Duarte                                                                           22
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




δ – Tabela das regras de transição

q0 – Estado inicial

Z0 - Simbolo do fundo da pilha

F – Estado final



Regras de transição

O conjunto das regras de transições (q, α, β, p, ϓ, ρ) são representados com p e q
que são o conjunto de estados em Q, α é tanto um simbolo de entrada ou uma string
vazia, β é tanto um simbolo pushdown ou uma string vazia, é uma string dos simbolos
pushdown, e ρ é tanto um simbolo de saida ou uma string vazia.




                   Ilustração 4 – Diagrama de estados do transdutor pushdown (GUARARI Eiton, 1998)




O automato resume-se como inicio a leitura de a´s e b´s no estado inicial, transitando
(escrevendo) o valor de c para o estado q1, e no final transita o ultimo valor que por
característica é o Z0 acompanhado das strings que o representam.




Hercílio Rui Dinis Duarte                                                                            23
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




3. CONCLUSÃO

A ordem como abordei este tema, permitiu exibir de forma sintética a relação de um
programa, sua memória e propriedades recursivas. E facilmente os conceitos retirados
podem ser integrados em projectos anteriores ou ainda por surgir no ambito da
disciplina da Teoria da computação. Tratou-se de uma abordagem geral que
facilmente poderá insentivar o leitor a continuar suas pesquisas atravês da forma livre
como poderá interpretar e tirar suas conclusões por tratar-se de um trabalho
tipicamente acadêmico.

O essencial neste tema foi demonstrar uma daquelas coisas que existem e que são
eternas no ramo da computação. Por mais que surjam sistemas sofisticados de
computação, estes encaixarão sempre nestes modelos formais.




Hercílio Rui Dinis Duarte                                                            24
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




REFERÊNCIAS

SAVAGE, John (1997) – Models of computation – Exploring the power of computing
[Em      linha].  [Consult.   06     Mai.  2012].  DisponíveI    em    WWW:
<http://www.cs.brown.edu/people/jes/book>.


MOREIRA, Nelma (1996) – Computabilidade – Uma Introdução [Em linha]. [Consult.
06.Mai.2012].Disponível: WWW:<http://www.dcc.fc.up.pt/~nam/publica/compdec.pdf>.

CRESPO, Rui (2001) – Processadores de linguagens – Da Concepção à
implementação. 2ª ed. Lisboa: IST Press.


KOWALTOWSKI, Tomasz (2010) – Estrutura de dados e técnicas de programação
[Em    linha].        [Consult.     06     Mai.     2012].     Disponível   em
WWW:<http://colibri.ic.unicamp.br/~tomasz/cursos/mc202/transp_ho_acum.pdf>.

LOPES, Arthur (1999) – Estrutura de dados – Para a construção de softwares. 1ª Ed.
Canoas: Editora da Ulbra.


NETO, António (1998) – Explorando recursão e fractals [Em linha]. [Consult. 06 Mai.
2012].Disponível:WWW:<http://lsm.dei.uc.pt/ribie/docfiles/txt200342415342159M.PDF
>.

GUARI, Eiton (1989) – Introduction to theory of the computation. [Em linha].
[Consult.06.Mai.2012].Disponível:WWW:<http://www.cse.ohio-
state.edu/~gurari/theory-bk/theory-bk.html>.




Hercílio Rui Dinis Duarte                                                        25
ANEXOS
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




    LISTA DE ANEXOS

        Anexo A - Transdutor de controle finito
        Anexo B - Uma máquina de estados finito




Hercílio Rui Dinis Duarte                         27
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




                                                         ANEXO A
                                         Transdutor de controle finito




Hercílio Rui Dinis Duarte                                           28
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




Hercílio Rui Dinis Duarte                29
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




                                                           ANEXO B
                                         Uma máquina de estados finitos




Hercílio Rui Dinis Duarte                                            30
PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO




Hercílio Rui Dinis Duarte                31

Weitere ähnliche Inhalte

Andere mochten auch

Andere mochten auch (13)

Telecomunicações
TelecomunicaçõesTelecomunicações
Telecomunicações
 
Tipos de comunicação (2)
Tipos de comunicação (2)Tipos de comunicação (2)
Tipos de comunicação (2)
 
Tipos de comunicação
Tipos de comunicaçãoTipos de comunicação
Tipos de comunicação
 
Elementos da comunicação
Elementos da comunicaçãoElementos da comunicação
Elementos da comunicação
 
Comunicação
ComunicaçãoComunicação
Comunicação
 
Telecomunicações
TelecomunicaçõesTelecomunicações
Telecomunicações
 
Redes de Computadores
Redes de Computadores Redes de Computadores
Redes de Computadores
 
Redes de Computadores
Redes de ComputadoresRedes de Computadores
Redes de Computadores
 
Processos de comunicação
Processos de comunicaçãoProcessos de comunicação
Processos de comunicação
 
Tipos de comunicação humana
Tipos de comunicação humanaTipos de comunicação humana
Tipos de comunicação humana
 
Redes de computadores slides
Redes de computadores   slidesRedes de computadores   slides
Redes de computadores slides
 
Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.Aula 1 - Redes de Computadores A - Conceitos Básicos.
Aula 1 - Redes de Computadores A - Conceitos Básicos.
 
Comunicação: O Processo De Comunicação
Comunicação: O Processo De ComunicaçãoComunicação: O Processo De Comunicação
Comunicação: O Processo De Comunicação
 

Ähnlich wie Recursive finite-domain programs and pushdown transducers

Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
OWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasOWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasNuno Costa
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDIBruno Gastaldi
 
Tcc magno ronan ritzmann
Tcc magno ronan ritzmannTcc magno ronan ritzmann
Tcc magno ronan ritzmannMagno Ritzmann
 
Apostilaprogramao 120512152026-phpapp02
Apostilaprogramao 120512152026-phpapp02Apostilaprogramao 120512152026-phpapp02
Apostilaprogramao 120512152026-phpapp02Eugenio Batista
 
Desenvolvimento de um software para análise de escoamentos internos em dutos ...
Desenvolvimento de um software para análise de escoamentos internos em dutos ...Desenvolvimento de um software para análise de escoamentos internos em dutos ...
Desenvolvimento de um software para análise de escoamentos internos em dutos ...Marco Túlio Pereira Silveira
 
Apostila programação "pascalzim"
Apostila programação "pascalzim"Apostila programação "pascalzim"
Apostila programação "pascalzim"deniscody
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Leandro Zanolla, MBA, MSc
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Rodrigo Almeida
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04thomasdacosta
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Kanda Kassobo
 

Ähnlich wie Recursive finite-domain programs and pushdown transducers (20)

Resumo assembly x86 16 bits
Resumo assembly x86 16 bitsResumo assembly x86 16 bits
Resumo assembly x86 16 bits
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
OWL QL e Regras Não Monótonas
OWL QL e Regras Não MonótonasOWL QL e Regras Não Monótonas
OWL QL e Regras Não Monótonas
 
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDITCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
TCC - AUTOMAÇÃO RESIDENCIAL - BRUNO GASTALDI
 
Tcc magno ronan ritzmann
Tcc magno ronan ritzmannTcc magno ronan ritzmann
Tcc magno ronan ritzmann
 
Apostilaprogramao 120512152026-phpapp02
Apostilaprogramao 120512152026-phpapp02Apostilaprogramao 120512152026-phpapp02
Apostilaprogramao 120512152026-phpapp02
 
Desenvolvimento de um software para análise de escoamentos internos em dutos ...
Desenvolvimento de um software para análise de escoamentos internos em dutos ...Desenvolvimento de um software para análise de escoamentos internos em dutos ...
Desenvolvimento de um software para análise de escoamentos internos em dutos ...
 
joane
joane joane
joane
 
Apostila programação "pascalzim"
Apostila programação "pascalzim"Apostila programação "pascalzim"
Apostila programação "pascalzim"
 
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
Implementação com Validação Real de um Controle Proporcional, Integral e Deri...
 
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
Troca de contexto segura em sistemas operacionais embarcados utilizando técni...
 
Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04Estrutura de Dados - Aula 04
Estrutura de Dados - Aula 04
 
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
Douglasbentoscriptoretcc 130423092544-phpapp01 (1)
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
mech-course.pdf
mech-course.pdfmech-course.pdf
mech-course.pdf
 
Estrutura de dados 3
Estrutura de dados 3Estrutura de dados 3
Estrutura de dados 3
 
Introdução a estrutura de dados
Introdução a estrutura de dadosIntrodução a estrutura de dados
Introdução a estrutura de dados
 
Minicurso de USER RPL para HP 50G
Minicurso de USER RPL para HP 50GMinicurso de USER RPL para HP 50G
Minicurso de USER RPL para HP 50G
 
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
Implementação_cluster alto_desempenho_fernando_eduardo_20090726-Imetro_2013
 
Python
PythonPython
Python
 

Recursive finite-domain programs and pushdown transducers

  • 1. U N I V E R S I D A D E L U S Í A D A D E L I S B O A Faculdade de Ciências da Economía e da Empresa Mestrado em Ciências da Computação Programas recursivos de domínio finito Hercílio Rui Dinis Duarte Lisboa Maio 2012
  • 2. U N I V E R S I D A D E L U S Í A D A D E L I S B O A Faculdade de Ciências e da Economía da Empresa Mestrado em Ciências da Computação Programas recursivos de domínio finito Hercílio Rui Dinis Duarte Lisboa Maio 2012
  • 3. APRESENTAÇÃO Programas recursivos de domínio finito Hercílio Rui Dinis Duarte Após verificar estudos anteriores sobre automatos finitos deterministicos e não deterministicos, surge a necessidade de se efectuar um estudo sobre programas de dominio finito, embora o presente trabalho irá simplesmente especializar-se nos recursivos. Neste trabalho, iremos estudar sobre os programas recursivos de dominio finito baseando-se em transdutores que permitem fazer um controle recursivo de estados finitos, ou seja, transdutores pushdown. Após verificar-se resultados e concluir suas vantagens, iremos então simplificar este trabalho ao simplifica-lo num diagrama mais simples. Palavras-chave: Transdutores de estados finitos, Recursividade, Pilhas, Transdutores pushdown
  • 4. PRESENTATION Recursive finite-domain programs Hercílio Rui Dinis Duarte After verifying previous studies on deterministic finite automata and non-deterministic, there is a need to conduct a study on finite domain programs, although this work will specialize in just recursive. In this paper, we study about the domain of recursive programs based on finite transducers that allow a recursive finite state control, ie, pushdown transducers. After checking up the results and conclude its advantages, then we will simplify the job simplifying it to a simple diagram. Keywords: finite-state tranducers, Recursion, Stacks, Pushdown transducers
  • 5. LISTA DE ILUSTRAÇÕES Ilustração 1 – Representação do processamento de uma pilha ........................................... 16 Ilustração 2 – Representação das partes de um transdutor pushdown. (GUARARI Eiton, 1998) ......................................................................................................................... 18 Ilustração 3 – Representação da abordagem sintática da Web 1.0 e 2.0 (GUARARI Eiton, 1998) ......................................................................................................................... 21 Ilustração 4 – Diagrama de estados do transdutor pushdown (GUARARI Eiton, 1998)........ 22
  • 6. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO LISTA DE ABREVIATURAS, SIGLAS E ACRÓNIMOS PLN - Processamento de Linguagens Naturais AFD - Autómatos Finitos Deterministicos AFND - Autómatos Finitos Não Deterministicos LIFO - Last in First Out Hercílio Rui Dinis Duarte 13
  • 7. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO SUMÁRIO 1. Introdução .................................................................................................... 15 2. Programas recursivos de domínio finito ....................................................... 16 2.1. Recursividade ........................................................................................ 16 2.1.1. Tipos de recursividade .................................................................... 17 2.1.2. Descrições resumidas sobre recursividade ..................................... 18 2.2. Estrutura de uma pilha ........................................................................... 18 2.3. Trasndutores baseados em pilhas (pushdown) ..................................... 19 2.3.1. Estrutura .......................................................................................... 20 2.3.1.1. Fita de entrada (Input tape) ....................................................... 20 2.3.1.2. Cabeçalho de entrada (Input head)........................................... 20 2.3.1.3. Controlo do estado finito ........................................................... 21 2.3.1.4. Cabeçalho de saída .................................................................. 21 2.3.1.5. Fita de saída ............................................................................. 21 2.3.1.6. Cabeçalho pushdown (escrita e leitura) .................................... 21 2.3.1.7. Fita pushdown ........................................................................... 21 2.3.2. Cálculo de uma relação pelo transdutor pushdown ......................... 21 2.3.3. Diagrama em grafo do transdutor pushdown .................................. 22 3. Conclusão .................................................................................................... 24 Hercílio Rui Dinis Duarte 14
  • 8. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO 1. INTRODUÇÃO A teoria da computação apresenta uma diversa e complexa relação de várias relações capazes de simular qualquer realidade automática. Nesta viajem, entende-se a essência do funcionamento dos sistemas, o que está por trás, quais as principais barreiras entre a compreensão homem-máquina assim como a relação de compreensão entre estes. Tal como foi proposto, começou-se por estudar a compreensão e o processamento das linguagens naturais (PLN). Agora a realidade tornou possivel o estudo de formalismos que representam a comunicação nos dispositivos computacionais. O presente trabalho vem aboradar aspectos relacionados a programas que dependem de memórias finitas e que de maneira recursiva simplificam os cálculos. Os transdutores são tidos como dispositivos que convertem um tipo de energía para outro, é muito usado na electricidade. Mas para a nossa realidade o termo transdutor será aplicado pelo facto deste ser um dispositivo em que antes de fornecer um determinado resultado primeiro trata de aplicar antes suas propriedades previamente programadas. Pois atravês de uma sequência de acções iremos verficar como estás propriedades se desenvolvem. Hercílio Rui Dinis Duarte 15
  • 9. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO 2. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO MOREIRA (1997) afirma que, os modelos de computação podem ser caracterizados em termos do tipo de memória que possuem e como se tem acesso a ela. Cada tarefa de computação finita pode ser realizada por um circuito combinacional. Embora este conceito seja muito importante, mas não é tão prático. Não podemos simplesmente projectar um circuito especialmente a cada tarefa computacional. Em vez disso, é aconselhavel executar tarefas computacionais com máquinas que funcionam com uma memória auxiliar para o controle do fluxo de dados. (SAVAGE John, 1997) Apartir do conceito acima, temos então as máquinas de memória finita e as máquinas de memória finita com característica recursiva. Podemos pensar que uma das formas de determinarmos a recursividade de um programa de domínio finito é através da observação e descrição dos elementos relacionados a memória. A memória deverá permitir um acesso recursivo de maneira finita aos seus objectos pré-definidos. Segundo SAVAGE (1997), os programas recursivos de domínio finito, funcionam tendo em sua base a implementação de uma memória auxiliar Pushdown (uma pilha), isto é, o armazenamento sobre esta é efectuado numa ordem LIFO (Last In, First Out). 2.1. RECURSIVIDADE Segundo CRESPO (2001), A recursividade1 é a metodología de descrever uma estrutura, em que um dos elementos é a descrição da própria estrutura. A recursividade permite que possamos definir infinitos objectos de uma maneira simples e objectiva. É uma técnica bastante poderosa para o desenvolvimento de algoritimos. Podemos verificar um comportamento recursivo na definição de uma função factorial: 1 Em outras palavras significa recorrência, enquanto uma data equação não é igualada a definição de sua base. Hercílio Rui Dinis Duarte 16
  • 10. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO 1 se n  0 e n!  n.(n  1)! se n  1 Segundo KOWALTOWSKI (2010), em algoritimia uma estrutura de dados recursivos pode definir-se atravês dos seguintes procedimentos: void Exemplo (T1 x1 , T2 x2 , . . . ) { S1 y1; S2 y2; . . . ; Ci ; /* Comandos i n i c i a i s */ i f (E ( . . . ) ) { C0 ; /* Caso base */ } else { /* Chamadas r e c u r s i v a s */ C1 ; Exemplo ( e11 , e12 , . . . ) ; C2 ; Exemplo ( e21 , e22 , . . . ) ; C3 ; Exemplo ( e31 , e32 , . . . ) ; ...; Cm; Exemplo ( em1 , em2 , . . . ) ; Cf ; } } 2.1.1. TIPOS DE RECURSIVIDADE De uma forma objectiva e lógica de enquadramento do conceito recursividade em nosso projecto iremos nos basear em dois tipos. Tal como NETO, António (1998) classifica como tipos de recursividade o seguinte:  Recursividade infinita Hercílio Rui Dinis Duarte 17
  • 11. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO Um procedimento recursivo é infinito quando não existe nenhuma condição que faça o procedimento ser interrompido.  Recursividade finita A recursão finita é conhecida quando se encontra uma estrutura de condição de paragem em algum momento da execução de um programa. 2.1.2. DESCRIÇÕES RESUMIDAS SOBRE RECURSIVIDADE  Num programa recursivo deve haver a garantia que o processo seja finito. Caso contrario o programa estará a fazer infinitas chamadas recursivas. Neste caso deve haver um estado de paragem.  O estado de paragem de um programa recursivo é determinado através de um subprograma associado denominado como a base do processo.  A rotina recursiva trabalha sobre uma instância, e para cada chamada recursiva deve haver garantia que a instância que será passada a ele seja sempre mais restrita que a chamada superior.  Através de resumos acima, verificamos que a recursividade finita é aplicada em sistemas da computação, de formas a e evitar que estes sistemas sejam infinitamente recursivos. 2.2. ESTRUTURA DE UMA PILHA Segundo LOPES (1999), Uma pilha que também é conhecida como stack, é um sistema usado para o armazenamento de dados. O seu critério de acesso é definido pelo facto do último elemento que entra na estrutura, ser o primeiro a sair. LOPES (1999) também afirma que, as pilhas são utilizadas para guardar dados que devem ser processados em ordem inversa de chegada e que são muito utilizadas em sistemas operativos, compiladores e nas instruções de programas que realizam chamadas de subprogramas (recursividade). NETO, António (1998) apresenta como afirmação de que, uma pilha é de extrema importância para o entendimento de um processo recursivo. Hercílio Rui Dinis Duarte 18
  • 12. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO Mediante as afirmações apresentadas, podemos supor que uma pilha é um sistema conceptual que representa uma memória com a seguinte estrutura: Ilustração 1 – Representação do processamento de uma pilha Operações básicas de uma pilha:  sobreposição de um novo elemento;  retirar o elemento do topo da pilha;  verificar qual é o elemento no topo da pilha;  verificar se a pilha está vazia. Para este trabalho, iremos admitir a apresentação de uma memória recursiva baseada em pilhas denominada como Transdutor pushdown e que iremos estudar no subcapítulo seguinte. 2.3. TRASNDUTORES BASEADOS EM PILHAS (PUSHDOWN) Para GURARI (1989), um trasndutor pushdown é uma máquina abstracta de controlo de estados finito mas de forma recursiva. Hercílio Rui Dinis Duarte 19
  • 13. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO O Conceito de transdutores finito vem dar a possibilidade de esquematizar-mos um programa que funciona mediante uma entrada, um estado e uma saida. O transdutor não deixa de ser um automato, mas com a diferença deste ter em sua estrutura uma memória que diretamente interage com a unidade de controlo. Pelo facto contarem com uma memória antes de fornecer um determinado resultado é que atribui a caracteristica de serem chamados de transdutores finitos que os distingue dos demais tipos de automatos. O termo recursividade nos transdutores de estados finitos é tido como verdade no momento em que a pesquisa que a unidade de controle realiza a memória é do tipo LIFO, ou seja, obdecendo uma estrutura de dados em pilha. Neste caso, o transdutor deixa de ser simplesmente transdutor de controle finito e passa a ser transdutor de controle finito recursivo (pushdown). Ilustração 2 – Representação das partes de um transdutor pushdown. (GUARARI Eiton, 1998) 2.3.1. ESTRUTURA 2.3.1.1. FITA DE ENTRADA (INPUT TAPE) A fita de entrada permite apresentar a sequência determinada do conjunto de simbolos do alfabeto a ser reconhecido. 2.3.1.2. CABEÇALHO DE ENTRADA (INPUT HEAD) O Cabeçalho trata de efectuar a leitura a apartir da fita dos dados de entrada e deixar os dados disponíveis para serem controlados finitamente. Hercílio Rui Dinis Duarte 20
  • 14. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO 2.3.1.3. CONTROLO DO ESTADO FINITO Também tratado como unidade de controlo finito, é a parte principal que permite ter controle da sequência de cálculos e trata de conectar-se a memória auxiliar de maneira a obter um maior desempenho. Em que no caso, a memória é uma pilha. 2.3.1.4. CABEÇALHO DE SAÍDA O cabeçalho que permite simplesmente escrever o reasultado final, como diz o próprio termo, é apenas de saida, de modos a que a informação após ter passado por uma regra rigorosa é então apresentada. 2.3.1.5. FITA DE SAÍDA Esta fita, é entidade que exibe os dados atravês de uma escrita depois do cabeçalho de saida efectuar o seu trabalho. 2.3.1.6. CABEÇALHO PUSHDOWN (ESCRITA E LEITURA) O Cabeçalho de pushdown responsabiliza-se de efectuar continuamente uma pesquisa sobre a mémoria (fita pushdown) em busca dos dados previamente ordenados. 2.3.1.7. FITA PUSHDOWN É vista como sendo a memória auxiliar do sistema. tal como foi estudado, esta ordena os dados obedecendo as regras seguindo o principio de uma pilha. 2.3.2. CÁLCULO DE UMA RELAÇÃO PELO TRANSDUTOR PUSHDOWN A imagem a baixo proposta por GUARARI (1998), representa os diferentes estados de um transdutor no reconhecimento da linguagem { (aibi, ci) | i >1 }, sendo que no primeiro estado o transdutor assume em sua fita pushdown (a chamada memória auxiliar LIFO), o simbolo Z0 que marca o fundo da pilha. O cálculo começa pela leitura da sequência de a´s pela fita de entrada, e enquanto ocorre essa leitura é dado também como entrada de forma sequencila desses valores na memória pushdown, os simbolos são lidas um a um a partir da entrada, ou seja, de forma léxica. Hercílio Rui Dinis Duarte 21
  • 15. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO Assim que M termina a leitura dos a’s, começa a leitura dos b´s, e na ocorrência dessa leitura é recuperado um a para cada b lido e ao mesmo tempo é escrito um c na fita de saida. A linguagem será aceite caso na leitura do último b, haver a recuperação do último a (permitindo assim uma deslocação para o valor inicial da memória, Z0) e a escrita do último c. Caso contrário, ou seja, se o último b for lido e não haver a recuperação de Z0, a linguagem não será reconhecida. Ilustração 3 – Representação da abordagem sintática da Web 1.0 e 2.0 (GUARARI Eiton, 1998) 2.3.3. DIAGRAMA EM GRAFO DO TRANSDUTOR PUSHDOWN Segundo Guarari (1998), graficamente um transdutor Pushdown é representado obdecendo o seguinte: M = <Q, Ʃ, Γ, Δ, δ, q0, Z0, F>, sendo que: Q – Conjunto de estados Ʃ - Alfabeto Γ – Alfabeto pushdown Δ – Alfabeto de saida Hercílio Rui Dinis Duarte 22
  • 16. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO δ – Tabela das regras de transição q0 – Estado inicial Z0 - Simbolo do fundo da pilha F – Estado final Regras de transição O conjunto das regras de transições (q, α, β, p, ϓ, ρ) são representados com p e q que são o conjunto de estados em Q, α é tanto um simbolo de entrada ou uma string vazia, β é tanto um simbolo pushdown ou uma string vazia, é uma string dos simbolos pushdown, e ρ é tanto um simbolo de saida ou uma string vazia. Ilustração 4 – Diagrama de estados do transdutor pushdown (GUARARI Eiton, 1998) O automato resume-se como inicio a leitura de a´s e b´s no estado inicial, transitando (escrevendo) o valor de c para o estado q1, e no final transita o ultimo valor que por característica é o Z0 acompanhado das strings que o representam. Hercílio Rui Dinis Duarte 23
  • 17. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO 3. CONCLUSÃO A ordem como abordei este tema, permitiu exibir de forma sintética a relação de um programa, sua memória e propriedades recursivas. E facilmente os conceitos retirados podem ser integrados em projectos anteriores ou ainda por surgir no ambito da disciplina da Teoria da computação. Tratou-se de uma abordagem geral que facilmente poderá insentivar o leitor a continuar suas pesquisas atravês da forma livre como poderá interpretar e tirar suas conclusões por tratar-se de um trabalho tipicamente acadêmico. O essencial neste tema foi demonstrar uma daquelas coisas que existem e que são eternas no ramo da computação. Por mais que surjam sistemas sofisticados de computação, estes encaixarão sempre nestes modelos formais. Hercílio Rui Dinis Duarte 24
  • 18. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO REFERÊNCIAS SAVAGE, John (1997) – Models of computation – Exploring the power of computing [Em linha]. [Consult. 06 Mai. 2012]. DisponíveI em WWW: <http://www.cs.brown.edu/people/jes/book>. MOREIRA, Nelma (1996) – Computabilidade – Uma Introdução [Em linha]. [Consult. 06.Mai.2012].Disponível: WWW:<http://www.dcc.fc.up.pt/~nam/publica/compdec.pdf>. CRESPO, Rui (2001) – Processadores de linguagens – Da Concepção à implementação. 2ª ed. Lisboa: IST Press. KOWALTOWSKI, Tomasz (2010) – Estrutura de dados e técnicas de programação [Em linha]. [Consult. 06 Mai. 2012]. Disponível em WWW:<http://colibri.ic.unicamp.br/~tomasz/cursos/mc202/transp_ho_acum.pdf>. LOPES, Arthur (1999) – Estrutura de dados – Para a construção de softwares. 1ª Ed. Canoas: Editora da Ulbra. NETO, António (1998) – Explorando recursão e fractals [Em linha]. [Consult. 06 Mai. 2012].Disponível:WWW:<http://lsm.dei.uc.pt/ribie/docfiles/txt200342415342159M.PDF >. GUARI, Eiton (1989) – Introduction to theory of the computation. [Em linha]. [Consult.06.Mai.2012].Disponível:WWW:<http://www.cse.ohio- state.edu/~gurari/theory-bk/theory-bk.html>. Hercílio Rui Dinis Duarte 25
  • 20. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO LISTA DE ANEXOS Anexo A - Transdutor de controle finito Anexo B - Uma máquina de estados finito Hercílio Rui Dinis Duarte 27
  • 21. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO ANEXO A Transdutor de controle finito Hercílio Rui Dinis Duarte 28
  • 22. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO Hercílio Rui Dinis Duarte 29
  • 23. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO ANEXO B Uma máquina de estados finitos Hercílio Rui Dinis Duarte 30
  • 24. PROGRAMAS RECURSIVOS DE DOMÍNIO FINITO Hercílio Rui Dinis Duarte 31