Pular para conteúdo

Arquitetura — Semântico

O módulo semântico é responsável por validar o significado das estruturas reconhecidas pelo analisador sintático.

Essa etapa garante consistência lógica e semântica durante o processo de compilação.


Objetivo

Realizar verificações relacionadas ao uso correto de variáveis, tipos e escopo dentro do programa.


Responsabilidades

O analisador semântico é responsável por:

  • Verificação de tipos
  • Controle de escopo
  • Validação de declarações
  • Verificação de variáveis não declaradas
  • Verificação de incompatibilidade de tipos
  • Controle de reutilização de identificadores

Verificações Realizadas

Variáveis Declaradas

int x;
x = 10;

Uso Inválido

y = 10;

Resultado:

Erro semântico: variável 'y' não declarada

Compatibilidade de Tipos

int x;
x = 3.14;

Resultado:

Aviso/Erro de incompatibilidade de tipos

Fluxo Semântico

Estrutura Sintática
        ↓
Verificações Semânticas
        ↓
Validação de Tipos e Escopo
        ↓
Código Válido

Componentes Associados

Componente Função
Tabela de Símbolos Armazenamento de variáveis e escopos
Regras Semânticas Validação lógica do programa
Controle de Tipos Compatibilidade entre expressões

Estrutura Esperada

semantic/
├── semantic.c
├── semantic.h
└── symbol_table.c

Tratamento de Erros

O módulo semântico é capaz de identificar inconsistências relacionadas ao significado do programa.

Exemplos:

Variável não declarada
Tipo incompatível
Variável redeclarada

Considerações

A análise semântica complementa a validação realizada pelo parser, garantindo maior confiabilidade no processo de geração de código.

A arquitetura permite futuras expansões para verificações mais avançadas.


Histórico de Versões

Versão Data Descrição Autor(es)
1.0 30/04/2026 Criação da documentação do módulo semântico Arthur Fernandes