⾕

Computação  |  

Introdução

As fases de análise léxica e análise sintática compõem o início do processo de compilação. Juntas, transformam o código-fonte em uma estrutura compreensível pelo compilador, organizando o conteúdo em tokens e validando a estrutura gramatical do programa.

Análise Léxica

A análise léxica, também chamada de scanner, é responsável por ler o código-fonte caractere por caractere e agrupá-lo em unidades léxicas chamadas tokens.

O que são tokens? Tokens são categorias como:

• Palavra-chave: if, while, return
• Identificador: x, variavel1
• Constantes: 42, "texto"
• Operadores: +, -, ==
• Delimitadores: ;, {, }

Funções do analisador léxico:

I) Ignora espaços em branco e comentários

II) Reconhece padrões com base em expressões regulares

III) Classifica e envia tokens para a próxima fase (análise sintática)

Ferramentas: Ferramentas como Lex/Flex automatizam essa fase. A entrada é um conjunto de expressões regulares que descrevem os tokens, e a saída é um código C/C++ que realiza a varredura léxica.

Análise Sintática

A análise sintática, ou parser, verifica se a sequência de tokens produzida pela análise léxica está de acordo com a gramática da linguagem.

Árvore Sintática: A saída dessa fase é a árvore sintática (parse tree), que mostra a estrutura hierárquica do programa, revelando como os tokens se organizam em comandos, expressões, funções etc.

Next