Você está na página 1de 54

Compiladores :: Reconhecedores

S u m r i o
01. O que um Reconhecedor
02. Como funciona um Reconhecedor
03. Classes de Reconhecedores x Linguagens
04. Como formalizar Autmatos Finitos
05. Como funciona um Autmato Finito
06. Que nota!es podem ser usadas
07. "ipos de Reconhecedores
08. "ransforma#o entre nota!es
09. Como formalizar Autmatos de $ilha
10. Como funciona um Autmato de $ilha
11. Como transformar gram%tica em autmato
12. Como o&ter autmatos 'timos
13. O que um "ransdutor
14. O que (ram%tica de "ransdu#o
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
01. O que um Reconheceor
=Fun#o +%sica de um Reconhecedor
E,ndicar se uma determinada cadeia pertence ou
n#o a uma linguagem atra)s da aplica#o de um
con-unto de regras de teste.
Cadeia
a ser testada
resultado
Configurao Inicial
=/efinindo Linguagens
E0 um dispositi)o de teste de cadeias
1gram%tica era dispositi)o gerador de cadeias2
EA linguagem definida o con-unto de todas as
cadeias que passem pelos testes aplicados
E$ara definir uma linguagem:
"oda as cadeias da linguagem
de)e passar pelos testes
3enhuma cadeia fora da linguagem
de)e passar pelos testes
Professor: Os)aldo Requi#o *elo
reconhecedor
reconhecedor
Reconhecedor
O
O
O
O
O
O
Compiladores :: Reconhecedores
01. O que um Reconheceor 1cont.2
=4lementos internos de um reconhecedor
f o n t e d e t s t
E"exto de entrada O
ELinguagem de 4ntrada O
ECursor O
E*F4: *aquina de Finitos 4stados O
E*em'ria Auxiliar O
ELinguagem da *em'ria Auxiliar O
Professor: Os)aldo Requi#o *elo
M.F.E.
Memria
Auxiliar
Compiladores :: Reconhecedores
02. !omo funcion" um Reconheceor
=A!es efetuadas pela *F4
E*o)imenta#o do cursor pelo texto de entrada5
ELeitura de uma posi#o do texto de entrada5
EArmazenamento na mem'ria auxiliar5
ELeitura da mem'ria auxiliar e
E#u"n$" o es%"o in%erno " m"quin"
=Configura#o de uma *F4 6 o que
E"em por finalidade registrar a situa#o da *F4 em
determinado instante do tempo
ECon-unto de elementos que definem esta situa#o
E4xemplo de uma configura#o:
"exto que est% sendo lido
4stado interno da m%quina
Conte7do da mem'ria auxiliar
EAlgumas configura!es s#o especiais
Configura#o inicial
Configura#o final
Professor: Os)aldo Requi#o *elo
*F4: *%quina de Finitos 4stados
*F4: *%quina de Finitos 4stados
Compiladores :: Reconhecedores
02. !omo funcion" um Reconheceor 1cont.2
=Configura#o inicial de uma *F4
E0 restaurada a cada in8cio de processo de
reconhecimento de um texto fonte
EAlguns elementos da configura#o s#o
inicializados com )alores pr9determinados:
O cursor aponta para o primeiro elemento
do texto de entrada
O estado interno da m%quina sempre
conhecido e chamado de estado inicial ou
de repouso
A mem'ria auxiliar inicializada )azia
=Configura#o final de uma *F4
E0 a configura#o em que se encontra a *F4 ao
final do processo de reconhecimento de um texto
fonte
Professor: Os)aldo Requi#o *elo
*F4: *%quina de Finitos 4stados
*F4: *%quina de Finitos 4stados
Compiladores :: Reconhecedores
02. !omo funcion" um Reconheceor 1cont.2
=$rocesso de aceita#o de uma cadeia
EColoca o reconhecedor na configura#o inicial
EAplica fun#o de transi#o &aseado na
configura#o atual e gera no)a configura#o
EA fun#o de transi#o:
*odifica estado interno
*odifica conte7do da mem'ria
*o)imenta posi#o do cursor so&re o texto
de entrada
EAplica fun#o de transi#o at chegar numa
configura#o final poss8)el
E"esta configura#o final
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
03. !&"sses e Reconheceores
=Linguagem x (ram%tica x Reconhecedor
"ipo Linguagem (ram%tica Reconhecedor
:
Con-untos
recursi)amente
enumer%)eis
(ram%ticas
irrestritas
*%quinas de
"uring
;
Linguagens
<ens8)eis ao
contexto
(ram%ticas
sens8)eis ao
contexto
*%quinas de
"uring com
mem'ria
limitada
=
Linguagens
Li)res de
contexto
(ram%tica
li)res de
contexto
Autmatos de
pilha
> Con-untos
regulares
(ram%ticas
lineares a
direita
Autmatos
finitos
(ram%ticas
lineares a
esquerda
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
04. !omo form"&i'"r "u%(m"%os fini%os
=4lementos definidores dos autmatos
EFormalismo matem%tico
EQu8ntupla ordenada
E/efinido como *?1Q5 5 $5 q:5 F2
O O O O O
=Q: 4stados internos O
ECon-unto de estados internos poss8)eis da *F4
EChamado de con-unto Q
EFinito e n#o )azio
=: Alfa&eto de entrada O
ECon-unto de todos os s8m&olos a serem usados na
forma#o de sentenas da linguagem
EChamado de
EFinito e n#o )azio
=$: "ransi#o de estado O
EFun#o de "ransi#o de 4stado
E*apeia Q x 1 @ AB2 em Q
=q:: 4stado inicial O
E@m dos elementos de Q 1q: Q2
E4stado 7nico
=F: 4stados de Aceita#o O
ECon-unto de 4stados Finais de Aceita#o
E<u&con-unto de Q 1F Q2
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
EChamado tam&m de 4stados finais
05. !omo funcion" um "u%(m"%o fini%o
=O que Reconhecimento
E$rocesso de aplica#o do con-unto de regras de
teste para uma determinada cadeia
E<er)e para determinar se esta cadeia pertence ou
n#o a linguagem que est% sendo definida
EA cadeia que passa pelos testes aceita como
parte da linguagem 1 reconhecida como parte da
linguagem2.
EA cadeia que n#o passa pelos testes n#o aceita
como parte da linguagem.
E4qui)alente ao processo de deri)a#o nas
gram%ticas formais
=$rocesso de Reconhecimento
EColoca o autmato finito na configura#o inicial:
Cursor apontando para a primeira posi#o
do texto de entrada
4stado interno da m%quina o inicial 1q02
EAplica regras de transi#o de estado 1P2 &aseado
no estado atual 1elemento de )2 e no s8m&olo
lido 1elemento de ou 2:
/etermina um no)o estado da m%quina
*o)imenta cursor para a posi#o seguinte
no texto de entrada
EAplica fun#o de transi#o no)amente at chegar
na posi#o ap's o 7ltimo elemento do texto de
entrada 1configura#o Final2
E"esta o estado que ficou na configura#o final
<e for um dos estados * aceita a cadeia
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
05. !omo funcion" um "u%(m"%o fini%o 1cont.2
=4xemplo de AutomCto Finito
E*?1Q5 5 $5 q:5 F2
Q ? A A5+ B
? A :5; B
$ ? A 1 A5: 2 A5
1 A5; 2 +5
1 +5: 2 +5
1 +5; 2 A B
F ? A + B
=4xemplo de Reconhecimento
E"estes para as cadeias:
;
;:
;::
;:::;
;::;:::
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
06. )ue no%"$+es ,oem ser us""s
=3ota!es para constru#o de AF
EFormalismo *atem%tico
E/iagrama de 4stados
E"a&elas de "ransi#o
=Formalismo *atem%tico
E3ota#o usada
E/efine os cinco elementos necess%rios ao
autmato finito como con-untos e elementos
relacionados em uma qu8ntupla ordenada
E4xemplo: *?1Q5 5 $5 q:5 F2
Q ? A A5+5C B
? A :5; B
$ ? A 1 A5: 2 A5
1 A5; 2 +5
1 +5: 2 C5
1 +5; 2 A5
1 C5: 2 +5
1 C5; 2 A B
F ? A A5C B
Professor: Os)aldo Requi#o *elo
AF: Autmatos Finitos
AF: Autmatos Finitos
Compiladores :: Reconhecedores
06. )ue no%"$+es ,oem ser us""s 1cont.2
=/iagrama de 4stados
E3ota#o (r%fica para constru#o de AF
E<im&ologia usada:
4stado D
4stado inicial E
4stado final de aceita#o F
4stado inicial e
final de aceita#o "
"ransi#o entre estados D e E
1com %tomo n consumido na transi#o2
n
E4xemplo:
a &
& a a
Professor: Os)aldo Requi#o *elo
AF: Autmatos Finitos
AF: Autmatos Finitos
D
F
E
"
D E
D
F
E
Compiladores :: Reconhecedores
06. )ue no%"$+es ,oem ser us""s 1cont.2
="a&elas de "ransi#o
E3ota#o "a&ular para constru#o de AF
*atriz onde as linhas s#o os estados e os
s8m&olos s#o as colunas
E<im&ologia usada:
4stado D D
4stado inicial E E
4stado final de aceita#o F F
4stado inicial e "
final de aceita#o "
"ransi#o entre estados D e E
1com %tomo n consumido na transi#o2
n
D E
E4xemplo:
D E
A + A
+ + 99
Professor: Os)aldo Requi#o *elo
AF: Autmatos Finitos
AF: Autmatos Finitos
Compiladores :: Reconhecedores
06. )ue no%"$+es ,oem ser us""s 1cont.2
=Construindo AF usando as nota!es
ERepresenta#o dos elementos do AF
,mportCncia do estado inicial do AF
,mportCncia dos estados finais do AF
a
&
E3ota#o
Cada transi#o de estado de)e consumir no
m%ximo um %tomo 1n#o uma cadeia2
Representa#o para )%rias transi!es entre
os mesmos estados do AF
a a5&
&
EConstru#o do AF
$reocupa#o apenas com o caminho de
reconhecimento das cadeias
"ransi#o em )azio.
"ransi#o entre estados D e E
1sem consumo de %tomo na transi#o2

Professor: Os)aldo Requi#o *elo
D E
AF: Autmatos Finitos
AF: Autmatos Finitos
D E
E
D E D
Compiladores :: Reconhecedores
07. -i,os e .*s
=AF 3#o determin8sticos
EO que
Caso (eral dos Reconhecedores
"am&m conhecido como AF3 ou 3FA
13ondeterministic Finite Autmata2
$or defini#o possui um con-unto de
estados internos5 um alfa&eto de entrada5
uma fun#o de transi#o de estado5 um
estado inicial e um con-unto de estados de
aceita#o
EFuncionamento
O reconhecimento pode acontecer por um
processo de tentati)a e erro
A cadeia a ser testada aceita como parte
da linguagem se em pelo menos um de
todos os poss8)eis caminhos de
reconhecimento a configura#o final for de
aceita#o
E4xemplo:
L
L . CO*
Professor: Os)aldo Requi#o *elo
AF: Autmatos Finitos
AF: Autmatos Finitos
A + C /
Compiladores :: Reconhecedores
07. -i,os e .*s 1cont.2
=AF /etermin8sticos
EO que
Caso especial dos AF3 13FA2
Conhecido como AF/ ou /FA
1/eterministic Finite Autmata2
EFuncionamento
$ossui algumas restri!es em rela#o ao
AF3 13FA2 normal.
3#o pode possuir transi#o em )azio
Cada par de estado e s8m&olo lido tem que
ter no m%ximo um caminho poss8)el
E4xemplo:
L
L . CO*
Professor: Os)aldo Requi#o *elo
AF: Autmatos Finitos
AF: Autmatos Finitos
A + C /
Compiladores :: Reconhecedores
07. -i,os e .*s 1cont.2
=,mpactos em /iagramas de 4stados
E,mpactos em /iagramas de 4stados
G%rias setas saindo do mesmo estado com
o mesmo s8m&olo 1AF32
Constru#o do 4stado de erro ou re-ei#o
1AF/2 para indicar os caminhos em que o
reconhecimento n#o mais poss8)el.
E,mpactos em "a&elas de "ransi#o
3uma clula da matriz de transi!es pode
estar definido um con-unto de estados
1AF32
Constru#o do 4stado de erro ou re-ei#o
1AF/2 para indicar os caminhos em que o
reconhecimento n#o mais poss8)el.
Professor: Os)aldo Requi#o *elo
AF3: Autmatos Finitos 3#o /etermin8stico
AF3: Autmatos Finitos 3#o /etermin8stico
AF/: Autmatos Finitos /etermin8stico
AF/: Autmatos Finitos /etermin8stico
Compiladores :: Reconhecedores
07. -i,os e .*s 1cont.2
=Algoritmo para autmato determin8stico
E*%quina exemplo:
*%quina ?145 Alfa&eto5 *udana5 estado:5 F2
EAlgoritmo para m%quina exemplo:
HH ,nicializa#o
es%"o / es%"o0
en%r"" / proxentr12
HH Loop de reconhecimento
enquanto en%r"" 01 eof
es%"o / *udana1es%"o5 en%r""2
en%r"" / proxentr12
fim9enquanto
HH "este da configura#o
se es%"o em F
retorna Gerdade
sen#o
retorna Falso
fim9se
Professor: Os)aldo Requi#o *elo
AF/: Autmatos Finitos /etermin8stico
AF/: Autmatos Finitos /etermin8stico
Compiladores :: Reconhecedores
08. -r"nsform"$2o en%re no%"$+es
="ransforma!es
E+asicamente traduzir sim&ologia
ERoteiro util em autmatos maiores
=Roteiro para transformar de /4 para ""
E*ontar linhas da ta&ela com todos os estados
identificados da maquina
E*ontar colunas da ta&ela com todos os s8m&olos
reconhecidos pela maquina5 mais coluna adicional
para transi!es em )azio
E,dentificar estado inicial
E,dentificar estados finais
E*ontar transi!es 1esta&elecer uma ordem2
=Roteiro para transformar de "" para /4
E,niciar desenho do estado inicial
E*ontar transi!es do estado inicial com s8m&olos
consumidos
E*arcar estados acessados e montar no)as
transi!es com s8m&olos consumidos
EAp's todos os estados utilizados5 marcar estados
finais
Professor: Os)aldo Requi#o *elo
"": "a&elas de "ransi#o
"": "a&elas de "ransi#o
/4: /iagramas de 4stado
/4: /iagramas de 4stado
Compiladores :: Reconhecedores
09. !omo form"&i'"r "u%(m"%os e ,i&h"
=@tilidade dos Autmatos de $ilha
E*ais linguagens
Amplia o uni)erso de linguagens que
podem ser definidas atra)s de um
reconhecedor
Consegue definir linguagens que o
autmato finito n#o suporta
E@so da mem'ria auxiliar
,mplementa linguagem que necessita de
mem'ria para o reconhecimento
*em'ria implementada em uma
estrutura de pilha 1por isto o nome do
autmato2
=/iferenas para o autmato finito
E3a defini#o formal do autmato
,mplementa a mem'ria auxiliar 1pilha2
3ecessita incluir no)os elementos para
implementar a mem'ria
*odifica elementos 1formato das transi!es
de estado para le)ar em considera#o
elementos da mem'ria2
E3o funcionamento do reconhecimento
3a transi#o: modifica estado interno e
conte7do da mem'ria auxiliar 1consome
conte7do da pilha e rep!e no)o2
3o reconhecimento: )erifica estado final de
aceita#o e se mem'ria auxiliar )azia
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
09. !omo form"&i'"r .P 1cont.2
=4lementos definidores dos A$
EFormalismo matem%tico
E<ptupla ordenada
E/efinido como *?1Q5 5 5 $5 q:5 5 F2
O O O O O O O
=Q: 4stados internos O 1? Autmato Finito2
=: Alfa&eto de entrada O 1? Autmato Finito2
=: Alfa&eto de pilha O 13o)o2
ECon-unto de todos os s8m&olos a serem usados
para guardar conte7do na mem'ria auxiliar
EFinito e n#o )azio
=$: "ransi#o de estado O 1*odificado2
EFun#o de "ransi#o de 4stado
E*apeia Q x 1 @ AB2 x I em Q x I
=q:: 4stado inicial O 1? Autmato Finito2
=: *arcador de pilha )azia O 13o)o2
E@m dos elementos do alfa&eto de pilha 1 2
E,ndica pilha )azia
=F: 4stados de Aceita#o O 1? Autmato Finito2
Professor: Os)aldo Requi#o *elo
A$: Autmatos de $ilha
A$: Autmatos de $ilha
Compiladores :: Reconhecedores
09. !omo form"&i'"r .P 1cont.2
=4xemplo:
* ? 1 AA5+5CB5
A:5;B5
A$5GB5
A1A5;5G2 99J 1A5G$25
1A5;5$2 99J 1A5$$25
1A5:5G2 99J 1+5G25
1A5:5$2 99J 1+5$2
1+5:5G2 99J 1+5$25
1+5;5$$2 99J 1C5$2
1+5;5G$2 99J 1C5G25
1C5;5$$2 99J 1C5$2
1C5;5G$2 99J 1C5G2 B5
A5
G5
ACB 2
Professor: Os)aldo Requi#o *elo
A$: Autmatos de $ilha
A$: Autmatos de $ilha
Compiladores :: Reconhecedores
10. !omo funcion" o "u%(m"%o e ,i&h"
=O que o reconhecimento
E4qui)alente ao processo de deri)a#o nas
gram%ticas formais e similar ao reconhecimento
feito nos autmatos finitos
=$rocesso de Reconhecimento
EColoca o autmato finito na configura#o inicial:
Cursor apontando para a primeira posi#o
do texto de entrada
4stado interno da m%quina o inicial 1q02
*em'ria auxiliar )azia
EAplica regras de transi#o de estado 1P2 &aseado
no estado atual 1elemento de )25 no s8m&olo lido
1elemento de ou 2 e no conte7do da mem'ria
132:
/etermina um no)o estado da m%quina
*o)imenta cursor para a posi#o seguinte
no texto de entrada
*odifica o conte7do da mem'ria auxiliar
1consome o conte7do constante na regra e
coloca o no)o conte7do da regra2
EAplica fun#o de transi#o no)amente at chegar
na posi#o ap's o 7ltimo elemento do texto de
entrada 1configura#o Final2
E"esta o estado que ficou na configura#o final
<e for um dos estados * e
A mem'ria auxiliar est% )azia
4nt#o aceita a cadeia
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o
="ransforma#o em autmato
E$orque transformar em autmato finito
A aceita#o de uma cadeia por gram%ticas
formais en)ol)e processo de gera#o de
cadeia semelhante atra)s das regras de
produ#o
A aceita#o por autmatos aplica um
processo de teste que mais simples de
implementar em rela#o K gram%tica.
E$rocesso de transforma#o completo
$ara facilitar a implementa#o de)emos
estar lidando com um autmato o mais
simples poss8)el e determin8stico
O processo de transforma#o de gram%tica
em autmato apenas gera um autmato
equi)alente que pode ser melhorado
posteriormente
O processo complementado por uma
etapa de melhoria do autmato gerado
chamado de processo de o&ten#o de
autmato 'timo
O autmato gerado nesta primeira
transforma#o 1de gram%tica para
autmato equi)alente2 muitas )ezes
chamado de autmato &ruto 1que ser%
melhorado at se transformar no autmato
'timo2.
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o1cont.2
=$assos para o&ten#o do autmato &ruto
EA+;: <implificar e rescre)er a linguagem
EA+=: /eterminar os estados do autmato
EA+>: /eterminar as transi!es de estado
EA+L: /eterminar estado inicial e estados finais
EResultado: autmato rescrito
=A+;: <implificar e Rescre)er a linguagem
E@tilizar nota#o mais simplificada
agrupar express!es que definem o mesmo
n#o terminal
eliminar defini!es recursi)as
E/iminuir a quantidade de s8m&olos n#o terminais
usados na gram%tica
determinar os n#o terminais que podem
ser eliminados
identificar n#o terminais auto9recursi)os
centrais
identificar entre estes 7ltimos os essenciais
E4xemplo de gram%tica
(?1G5 5 D5 <2
G?A<5 45 "5 F5 $5 95 I5 n5 5 5 6 B
?A95 I5 n5 5 5 6 B B
D ? A< 45 45 4"5 "F5 ""9F5
FFI$5 F$5 $n5 $ 5 " 6 B
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o1cont.2
=$assos para o&ten#o do autmato &ruto
EA+;: <implificar e rescre)er a linguagem
EA+=: /eterminar os estados do autmato
EA+>: /eterminar as transi!es de estado
EA+L: /eterminar estado inicial e estados finais
EResultado: autmato rescrito
=A+=: /eterminar os 4stados do autmato
E<er% aplicado para cada uma das produ!es
gramaticais resultantes da etapa A+;
EColocar posi!es de atri&ui#o de estados entre
cada s8m&olo da produ#o
EAplicar regras de atri&ui#o de estados 1L regras2
@tiliza )ari%)el - como contador de estados
1indicando o pr'ximo estado )ago2
Re4r" 1: 3o inicio de cada poss8)el cadeia
atri&uir o estado : fazer -?;
Re4r" 2: $ara agrupamentos entre
parMnteses e colchetes propagar o estado
anterior ao agrupamento para todos os
poss8)eis in8cios e atri&uir - ao estado ap's
o agrupamento. ,ncrementar -
Re4r" 3: $ara agrupamentos entre cha)es
propagar o estado - para todos os poss8)eis
in8cios e atri&uir - ao final do agrupamento.
,ncrementar -
Re4r" 4: $ara terminais e n#o terminais
isolados atri&uir o estado - K direita do
s8m&olo. ,ncrementar -
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o1cont.2
=$assos para o&ten#o do autmato &ruto
EA+;: <implificar e rescre)er a linguagem
EA+=: /eterminar os estados do autmato
EA+>: /eterminar as transi!es de estado
EA+L: /eterminar estado inicial e estados finais
EResultado: autmato rescrito
=A+>: /eterminar "ransi!es de estado
E<er% aplicado para cada uma das produ!es
gramaticais resultantes da etapa A+;
ECriar as transi!es de estado de acordo com as
regras para determina#o de transi!es a&aixo
1L regras2
Re4r" 01: para cada ocorrMncia de
s8m&olos terminais e n#o terminais criar
transi!es com consumo de %tomo
Re4r" 02: criar transi!es em )azio para
cada op#o de final do agrupamento entre
parMnteses e colchetes ao estado do final
do agrupamento
Re4r" 03: criar transi!es em )azio para
cada op#o de final do agrupamento entre
cha)es para o inicio das op!es do mesmo
agrupamento
Re4r" 04: criar transi!es em )azio para
agrupamentos entre colchetes e cha)es
dos estados anteriores ao agrupamento
para o estado posterior do agrupamento
1carater opcional do agrupamento2.
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o1cont.2
=$assos para o&ten#o do autmato &ruto
EA+;: <implificar e rescre)er a linguagem
EA+=: /eterminar os estados do autmato
EA+>: /eterminar as transi!es de estado
EA+L: /eterminar estado inicial e estados finais
EResultado: autmato rescrito
=A+L: /eterminar estado inicial e estados
finais do autmato
E<er% aplicado para cada uma das produ!es
gramaticais resultantes da etapa A+;
E,dentificar o estado inicial do autmato
4stado : 1zero2 sempre
E,dentificar os estados finais de aceita#o
Os estados finais de cada alternati)a da
produ#o gramatical
=Resultado: Re94scre)er o autmato finito
ECon-unto de estados: estados atri&u8dos no A+=
EAlfa&eto de entrada: s8m&olos usados no processo
de reconhecimento 1nas produ!es A+;2
E"ransi!es de estado: montadas em A+>
E4stado inicial e estados finais: identificados em
A+L
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
11. !omo %r"nsform"r 4r"m%ic" em
"u%(m"%o fini%o1cont.2
=Considera!es so&re a "ransforma#o
EO autmato resultante foi constru8do
mecanicamente
E3#o o melhor autmato nem o mais compacto
E3#o determin8stico
EA tradu#o de)e ser complementada com o uso
da tcnica de o&ten#o de autmato 'timo )ista a
seguir.
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos
=O que s#o Autmatos Ntimos
E<#o autmatos finitos determin8sticos
ECom o menor n7mero de estados internos
ECom o menor n7mero de transi!es de estados
poss8)eis
E0 o melhor autmato finito que pode ser oferecido
como solu#o para uma determinada linguagem
=Aplica#o do processo de o&ten#o
E$ode ser usado como complemento do processo
de transforma#o de uma gram%tica em
autmato 1autmato &ruto2
E$ode ser usado como processo para melhoria de
qualquer autmato constru8do
=$repara#o para a con)ers#o
E"ransformar o autmato dado para a nota#o
ta&ular 1ta&elas de transi#o2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar automato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO;: Autmato na nota#o ta&ular
E4xemplo: Regra (ramatical
/?" , P Q 3 A 5 3 B J R A 5 , P Q 3 A 5 3 B J R B
/eclara#o de tipos numa linguagem qualquer
onde " o tipo do identificador5 , o
,dentificador5 3 um n7mero inteiro5 SQS o a&re
parMntesis e o SJS o fecha parMntesis.
Ap's a aplica#o das regras de atri&ui#o de estados:
/?.".,.P.Q.3.A.5.3.B.J.R.A. 5. ,.P.Q.3.A. 5.3.B.J.R .B.
: 1 = 2 L 5 T 7 U 6 V 3 ;: 11 ;= 12 ;L 15 ;T 17 ;U 16 ;V 13 ;:
Ap's a montagem das "ransi!es
Consumo de Wtomo "ransi!es em )azio
1: 5 " 2 ; 1;: 5 5 2 ;; Agrup 2 e R Car%ter opc
1; 5 , 2 = 1;; 5 , 2 ;= 1V 5 2 > 1= 5 2 >
1= 5 Q 2 L 1;= 5 Q 2 ;L 1;V 5 2 ;> 1O 5 2 T
1L 5 3 2 O 1;L 5 3 2 ;O Agrup B 1> 5 2 ;:
1T 5 5 2 X 1;T 5 5 2 ;X 1U 5 2 T 1;= 5 2 ;>
1X 5 3 2 U 1;X 5 3 2 ;U 1;U 5 2 ;T 1;O 5 2 ;T
1T 5 J 2 V 1;T 5 J 2 ;V 1;> 5 2 ;:
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO;: Autmato na nota#o ta&ular
E4x:"ransformando para a nota#o de ta&ela
9s%"o - : 0 ; 1 <
0 ;
1 =
2 L >
3 ;:
4 O
5 T
6 V X
7 U
8 T
9 >
10 ;;
11 ;=
12 ;L ;>
13 ;:
14 ;O
15 ;T
16 ;V ;X
17 ;U
18 ;T
19 ;>
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO=: 4liminar transi!es em )azio
E4limina uma caracter8stica indese-ada para um
autmato finito determin8stico
E4lementos en)ol)idos
Considere a transi#o entre estados D e E

Chamamos D de estado emissor da
transi#o e E de estado receptor da
transi#o
EComo eliminar
A cada transi#o incorporar ao estado
emissor da transi#o em )azio todas as
transi!es poss8)eis saindo do estado
receptor
A cada transi#o se algum dos estados
receptores for final5 o estado receptor
tam&m ser% final
3o processo no)as transi!es em )azio
de)em ser eliminadas recursi)amente
Ao final do processo eliminar a coluna das
transi!es em )azio
Professor: Os)aldo Requi#o *elo
D E
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO=: 4liminar "ransi!es em Gazio
E4x: "a&ela antes da execu#o do processo AO=
9s%"o - : 0 ; 1 <
0 ;
1 =
2 L >
3 ;:
4 O
5 T
6 V X
7 U
8 T
9 >
10 ;;
11 ;=
12 ;L ;>
13 ;:
14 ;O
15 ;T
16 ;V ;X
17 ;U
18 ;T
19 ;>
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO=: 4liminar "ransi!es em Gazio
E4x: "a&ela ap's a execu#o do processo AO=
9s%"o - : 0 ; 1 <
0 ;
1 =
2 L ;;
3 ;;
4 O
5 V X
6 V X
7 U
8 V X
9 ;;
10 ;;
11 ;=
12 ;L ;;
13 ;;
14 ;O
15 ;V ;X
16 ;V ;X
17 ;U
18 ;V ;X
19 ;;
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO>: 4liminar trans. n#o determin8sticas
E4limina outra caracter8stica indese-ada para um
autmato finito determin8stico
E4lementos en)ol)idos
Considere a transi#o entre estados D5E e F
a a
Chamamos AE5FB de con-unto de estados
receptores da transi#o
EComo eliminar
Criar um estado adicional associado a cada
con-unto de estados receptores das
transi!es n#o determin8sticas
$reencher a linha do estado recm criado
com a uni#o das linhas de cada um dos
estados componentes do con-unto
<e algum dos estados componentes do
con-unto for final marcar o no)o estado
como final
4liminar as transi!es n#o determin8sticas
recursi)amente
Professor: Os)aldo Requi#o *elo
D E E
Compiladores :: Reconhecedores

12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AO>: 4liminar trans. n#o determin8sticas
E4x: 3#o se aplica ao exemplo 1n#o existem
transi!es n#o determin8sticas no exemplo2.
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar automato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AOL: 4liminar estados n#o acess8)eis
ECom a elimina#o das transi!es em )azio e das
transi!es n#o determin8sticas5 alguns estados do
autmato podem n#o ser mais alcanados por
algum caminho poss8)el do autmato
E4stes estados s#o chamados de n#o acess8)eis e
de)em ser eliminados no autmato.
E4lementos en)ol)idos
Cria#o de duas colunas de controle para o
processo. @ma para a marca#o dos
estados acess8)eis. Outra para marca#o
dos estados -% considerados no processo.
EComo eliminar
;.*arcar estado inicial como acess8)el 1por
defini#o um estado inicial acess8)el2
=.$ara algum estado acess8)el que n#o
tenha sido considerado ainda: marcar os
estados que s#o acess8)eis partindo deste
e marcar este estado como considerado
>.Repetir o passo = enquanto existir estado
L.4liminar os estados que terminarem
como n#o marcados
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AOL: 4liminar estados n#o acess8)eis
E4x: "a&ela antes da execu#o do processo AOL
9s%"o - : 0 ; 1 < .cess !onsi
0 ;
1 =
2 L ;;
3 ;;
4 O
5 V X
6 V X
7 U
8 V X
9 ;;
10 ;;
11 ;=
12 ;L ;;
13 ;;
14 ;O
15 ;V ;X
16 ;V ;X
17 ;U
18 ;V ;X
19 ;;
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AOL: 4liminar estados n#o acess8)eis
E4x: "a&ela ap's a execu#o do processo AOL
9s%"o - : 0 ; 1 < .cess !onsi
0 ; D D
1 = D D
2 L ;; D D
3
;;
4 O D D
5 V X D D
6
V X
7 U D D
8 V X D D
9 ;; D D
10
;;
11 ;= D D
12 ;L ;; D D
13
;;
14 ;O D D
15 ;V ;X D D
16
;V ;X
17 ;U D D
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
18 ;V ;X D D
19 ;; D D
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=$assos para o&ten#o do autmato &ruto
EAO;: "ransformar autmato na nota#o ta&ular
EAO=: 4liminar transi!es em )azio
EAO>: 4liminar transi!es n#o determin8sticas
EAOL: 4liminar estados n#o acess8)eis
EAOO: 4liminar grupos de estados equi)alentes
EResultado: Autmato Ntimo
=AOO: 4liminar estados equi)alentes
E/epois das simplifica!es feitas podem existir
estados redundantes que est#o realizando a
mesma fun#o no autmato.
E4stes estados s#o chamados de equi)alentes
EQuando s#o equi)alentes
4stados finais n#o podem ser equi)alentes
a estados n#o finais e )ice9)ersa.
4stados s#o equi)alentes se consumem o
mesmo con-unto de s8m&olos e )#o para os
mesmos estados 1ou equi)alentes destes2
<e n#o conseguimos pro)ar que s#o
estados distintos eles s#o equi)alentes
EComo eliminar
;.<eparar estados em con-untos de
poss8)eis estados equi)alentes: Finais e
3#o9Finais e por consumo de %tomo
=.Aplicar testes de distingYi&ilidade em
pares de estados do mesmo con-unto
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
>.<implificar autmato eliminando os
estados redundantes
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=AOO: 4liminar estados equi)alentes
E4x: "a&ela antes da execu#o do processo AOO
9s%"o - : 0 ; 1 <
0 ;
1 =
2 L ;;
4 O
5 V X
7 U
8 V X
9 ;;
11 ;=
12 ;L ;;
14 ;O
15 ;V ;X
17 ;U
18 ;V ;X
19 ;;
E<epara#o dos con-untos de estados
$rimeiro n8)el: con-unto de estados
) ? A:5;5=5L5O5X5U5V5;;5;=5;L5;O5;X5;U5;VB
<egundo n8)el: estados finais e n#o finais
*in"is ? A=5V5;=5;VB
;2o*in"is ? A:5;5L5O5X5U5;;5;L5;O5;X5;UB
"erceiro n8)el: por consumo de %tomos
Finais que consomem < ? AV5;VB
Finais que consomem 0 e < ? A=5;=B
3#oFinais que consomem - ? A:B
3#oFinais que consomem : ? A;5;;B
3#oFinais que consomem ; ? AL5X5;L5;XB
3#oFinais que consomem 1 e < ? AO5U5;O5;UB
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=AOO: 4liminar estados equi)alentes
EAplica#o dos testes de distingui&ilidade aos
pares 1par de estados do mesmo con-unto2
AV5;VB5 A=5;=B5 A;5;;B5 AL5XB5 A;L5;XB5 AL5XB5
AO5UB5 A;O5;UB e AO5;OB
Resultados poss8)eis: equi)alentes5 n#o
equi)alentes5 ou depende de outros testes
EAo final dos testes s#o equi)alentes os estados:
AV5;VB5A=5;=B5A;5;;B5AL5X5;L5;XBe AO5U5;O5;UB
4limina os estados semelhantes e refaz a
ta&ela para referenciar apenas os que
continuar#o no autmato
E4x: "a&ela ap's execu#o do processo AOO
9s%"o - : 0 ; 1 <
0 ;
1 =
2 L ;
4 O
5 V L
9 ;
Autmato Ntimo
E$ode ser transformado para nota#o de diagrama
de estados 1de forma a )isualizar linguagem
sendo reconhecida2.
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=<egundo exemplo de transforma#o
E @sando a gram%tica: = / 0 > ; < ? ; 1
EO&tendo o autmato &ruto
.@1:<implifica#o da gram%tica
-% simplificada 1oZ2
.@2:/etermina#o dos estados
= /.0.>.;.<.?.;.1.
: ; = > L = O T
.@3:/etermina#o das transi!es
Regra;: 1:502;5 1=5;2>5 1>52L5 1=5;2O5
1O512T5 Regra>:1L52 =5 RegraL:1;52 =
.@4:/etermina#o do estado inicial 1:2 e
estados finais 1T2
EO autmato &ruto
9S-.AO 0 ; < 1
0 ;
1 =
2 A>5OB
3 L
4 =
5 T
6
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=<egundo exemplo de transforma#o
E.O1: O&tendo o autmato 'timo
9S-.AO 0 ; < 1
0 ;
1 =
2 A>5OB
3 L
4 =
5 T
6
Autmato +ruto
E.O2: 4liminando as transi!es em )azio
9S-.AO 0 ; < 1
0 ;
1 A>5OB
2 A>5OB
3 L
4 A>5OB
5 T
6
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=<egundo exemplo de transforma#o
E.O3: 4liminando transi!es n#o determin8sticas
9S-.AO 0 ; < 1
0 ;
1 A>5OB
2 A>5OB
3 L
4 A>5OB
5 T
6
>3<5? L T
OU
9S-.AO 0 ; < 1
0 ;
1 X
2 X
3 L
4 X
5 T
6
7
59B>3<5?6
L T
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
12. !omo o7%er "u%(m"%os 8%imos 1cont.2
=<egundo exemplo de transforma#o
E.O4: 4liminando estados n#o acess8)eis
9S-.AO 0 ; < 1 ACC4<< CO3<,/
0 ; D D
1 X D D
2
X
3
L
4 X D D
5
T
6 D D
7 L T D D
E.O5: 4liminando estados equi)alentes
Q ? A:5;5L5T5XB
Finais ? ATB [3#o finais ? A:5;5L5TB
Finais que consomem nada ? ATB
3#o finais que consomem Q ? A:B
3#o finais que consomem 3 ? A;5LB
3#o finais que consomem 5 e J ? AXB
A;5LB s#o equi)alentes 1sai o L2
9S-.AO 0 ; < 1
0 ;
1 X
2 X
3 ;
5 T
6
7 ; T
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores

13. O que -r"nsu%or
=Caracter8sticas
E*ecanismo de defini#o de uma linguagem \
*ecanismo de tradu#o desta para outra
linguagem
E4xiste um tipo de transdutor correspondente para
cada tipo de reconhecedor
"ransdutor finito
1reconhecedor: autmato finito2
"ransdutor de pilha
1reconhecedor autmato de pilha2
EO reconhecedor usado como &ase para a
constru#o do transdutor chamado de &%sico
3o transdutor finito o automato finito
usado chamado de autmato &%sico
="ransdutor Finito
E/efini#o formal
Autmato Finito +%sico ? 1Q5 5 "5 q:5 F2
"ransdutor Finito ? 1Q5 5 5"]5 q:5 F2
E*odifica!es
Acrescenta um alfa&eto de sa8da 12
Acrescenta na fun#o de transi#o uma
cadeia de sa8da 1"^: Fun#o de "ransi#o
de 4stado do "ransdutor2
"^: *apeia Q x 1 @ AB2 Q x I
E9 4xemplo de "ransdutor Finito
Autmato +%sico
Professor: Os)aldo Requi#o *elo
Compiladores :: Reconhecedores
"ransdutor
Reconhecimento de cadeias
14. O que Cr"m%ic" e -r"nsu$2o
=Caracter8sticas
E*ecanismo de defini#o de uma linguagem \
*ecanismo de tradu#o desta para outra
linguagem
EA gram%tica usada como &ase para a constru#o
da gram%tica de transdu#o chamada de &%sica
=(ram%tica de transdu#o
E/efini#o formal
(ram%tica &%sica (?1G55$5<2
(ram%tica "ransdu#o (^?1G5 5 5 $^5 <2
E*odifica!es
Acrescenta um alfa&eto de sa8da 12
*odifica o formato das produ!es
acrescentando uma cadeia de sa8da
$^: $rodu!es da (ram%tica de "ransdu#o
$^: pares 1p52 onde p $5 e
E9 4xemplo de "ransdutor Finito
(ram%tica +%sica ?
1 A<5A5:5;B5A:5;B5A<;A5 A:A5 A;B5<2
(ram%tica de "ransdu#o
\ alfa&eto de sa8da ? A x 5 _ 5 z B
\ produ!es ? A 1< ;A5 x25 1A:A5_z25
1A;5xx2B
Professor: Os)aldo Requi#o *elo

Você também pode gostar