Análise Lexical: Estrutura de um Compilador
Last updated
Last updated
O processo de compilação envolve diferentes fases:
A primeira delas é a análise léxica, que consiste na conversão da sequência de caracteres de entrada numa sequência de elementos lexicais (tokens).
A principal função da análise léxica é estruturar a sequência de carácteres da entrada numa sequência de tokens a serem processados pelo parser.
No entanto, o analisador léxico efectua outras operações como sejam: a exclusão de espaços em branco e de comentários do parser, e a correlação entre erros (léxicos e sintácticos) com o código fonte (e.g. número da linha).
A análise léxica pode ser feita recorrendo a gramáticas do tipo-3, ou seja, por gramáticas regulares, e a sua implementação computacional pode ser feita eficientemente recorrendo a autómatos finitos.
Uma gramática é regular, sse existir um autómato finito que a reconhece.
Um autómato finito é uma máquina de estados com um estado inicial e um ou mais estados de aceitação (reconhecimento).
As transições são feitas apenas tendo em conta o estado actual e a entrada.
Um autómato finito para reconhecer a palavra reservada if será:
Outro autómato finito que reconheça um identificador pode ser: