17.01.2013 Views

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

COMPORT – Compilador Portugol - Nilo Menezes

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

1.1.4. Autômatos Finitos<br />

ComPort <strong>–</strong> <strong>Compilador</strong> <strong>Portugol</strong><br />

Segundo AHO (1995), um reconhecedor para uma linguagem é um<br />

programa que toma como entrada uma cadeia x e responde “sim” se x for uma<br />

sentença da linguagem e “não” caso contrário. Compilamos expressões regulares<br />

(veja 1.3.2) num reconhecedor através da construção de um diagrama de transições<br />

generalizado, chamado autômato finito.<br />

Os autômatos finitos se classificam em determinísticos e nãodeterminísticos.<br />

Um autômato finito determinístico pode ser visto como uma máquina<br />

simples, composta de fita, unidade de controle e programa ou função.<br />

A fita é finita (nos dois sentidos), sendo dividida em células de um símbolo<br />

ou caractere. Esta fita não permite gravação e contém toda a informação de entrada.<br />

Os símbolos pertencem ao alfabeto de entrada.<br />

Figura 1 - Fita e unidade de controle<br />

A unidade de controle possui um número finito e predefinido de estados.<br />

Inicialmente a cabeça de leitura está posicionada no símbolo mais à esquerda da<br />

fita. A cada símbolo lido, desloca-se a cabeça de leitura uma célula para a direita.<br />

O programa é uma função parcial que dependendo do símbolo lido<br />

determina o estado corrente do autômato. É importante notar que um autômato não<br />

possui memória, devendo-se utilizar estados intermediários para armazenar<br />

resultados.<br />

Formalmente, podemos definir um autômato finito determinístico como<br />

uma quíntupla:<br />

M=(Σ,Q,δ,q0,F)<br />

Onde:<br />

Σ Alfabeto de símbolos de entrada<br />

Q Conjunto de estados possíveis do autômato<br />

21

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!