segunda-feira, 22 de outubro de 2007

Análise Léxica

Tudo é uma questão de abstração. É mais fácil tratar um texto a partir de cada letra ou a partir de cada palavra? Quando você lê um texto (este post, por exemplo), você lê letra a letra ou palavra a palavra? Claro que vc trata o texto como uma sequência de palavras, isto é, como uma sequência de símbolos léxicos (tokens).

A análise léxica é um processo que analisa uma entrada de dados, geralmente um código-fonte de um programa, e tem como saída uma sequência de tokens. Mas pra quê isso? A palavra-chave é: abstração! E assim como toda abstração, tudo isso é feito para facilitar (ou até viabilizar) o trabalho de alguém, nesse caso o do analisador sintático (ou parser). No caso da leitura deste post, a abstração de letras em palavras é para viabilizar o processo de leitura de textos.

Um código-fonte de um programa é, em princípio, uma sequência de caracteres sem sentido para um computador. O computador não entende a sequência de caracteres "i" seguido de "f", mas um analisador léxico apropriado retorna que "i" + "f" pode ser abstraído para o símbolo (token) "if", e isso é útil ao analisador sintático. E ao nosso cérebro! :)

Talvez seja necessário entrar em mais detalhes sobre a etapa da análise técnica, mas por enquanto isso basta. O analisador léxico é a primeira etapa de um compilador. Veremos melhor porque disso no próximo post quando eu falar sobre a análise sintática, e só depois a análise semântica.

Nenhum comentário: