COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
COMPORT – Compilador Portugol - Nilo Menezes
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