1
4
5
13
Considere  = {a, b}.
• A expressão regular a| b denota a linguagem {a,
b}.
• a* denota a linguagem consistindo em todas as
cadeias de zero ou mais as, ou seja,
{.a.aa.aaa,...},
• (alb)* denota o conjunto de todas as cadeias
consistindo em zero ou mais instâncias de a ou
b, ou seja, todos os a’s e b’s:
• {,a,b,aa,ab,ba,bbaaa,...}.
• ala* b denota a linguagem {a,b,ab,aab,aaab,,..},
ou seja, a cadeia a e todas as cadeias
consistindo em zero ou mais e terminando em b
24
25
26
27
28
Automato finito: reconhecimento de tokens
• Reconhecimento dos lexmas casados com o token relop
• No no estado O, o estado inicial. Se for encontrado < como o
primeiro símbolo de entrada, então entre os lexemas que
• o padrão para relop, só podem ser <, <> ou <=. Portanto, ir para o
estado 1 e examinar o caractere seguinte.
• Se ele for =, então o lexema <= é reconhecido. Ir para o estado 2 e
retornar o token relop com o atributo LE (comparação menor ou
igual a ) .
• Se, no estado 1, o caractere for o >. então tem-se o lexema <> e ir
para estado 3 para retornar o reconhecimento do atributo NE
(comparação não-igual).
• Com qualquer outro caractere, o lexema é <. Ir para o estado 4 para
retornar o reconhecimento do atributo LT (comparação menor do
que) .
• No estado 4 o * indica um recuo na entrada de uma posição.
Automato finito: reconhecimento de tokens de
operadores de relacionamento
Automato finito: reconhecimento de tokens de
palavras reservadas e identificadores
Usualmente, palavras-chave como if ou then são reservadas
(assim como em nosso exemplo em andamento). Não são, portanto,
identificadores.
Contudo, um diagrama de transição para procurar lexemas
identificadores, também reconhecerá as palavras-chave if, then e else
do nosso exemplo em andamento.
Download

Document