CompiladoresVisão geral
Análise Semântica
A análise semântica percorre a árvore de derivação já aceita pela gramática e calcula, em cada fragmento, o tipo da expressão, a declaração à qual um nome se liga, e os atributos das produções.
Tipos, ligações e atributos deste tópico — e tabelas de símbolos, código de três endereços e registros de ativação nos tópicos seguintes — partem desses cálculos.
As páginas se agrupam em três blocos. O primeiro classifica cada expressão por um tipo, confere anotações e preenche o tipo que o texto omite.
O segundo liga cada uso de nome à declaração visível e trata a ocultação entre blocos aninhados.
O terceiro avalia atributos nas produções e encontra uma ordem legal para as regras.
Conferir os operandos de a+b, ou inferir o tipo a partir do literal sem anotação, está em Sistemas de Tipos.
Qual declaração vale para este x — aninhamento do texto ou quadro ativo mais recente — está em Regras de Escopo.
O número E.val na produção E → E₁ + T está em Esquemas de Tradução. O tipo dessa soma está em Sistemas de Tipos.
A definição dirigida pela sintaxe declara o que calcular. O esquema coloca a ação no lado direito e classifica o atributo em sintetizado ou herdado; as duas notações estão em Esquemas de Tradução.
Páginas deste tópico
Sistemas de Tipos
ProAlta incidência no POSCOMP6 min de leitura · 8ª mais cobrada em Compiladores
Verificação vs inferência; operandos compatíveis; erro de tipo ≠ erro de sintaxe.
Regras de Escopo
ProMédia incidência no POSCOMP7 min de leitura · 13ª mais cobrada em Compiladores
Léxico vs dinâmico; ocultação; resolução interno→externo; tabela só em recall.
Esquemas de Tradução
ProAlta incidência no POSCOMP23 min de leitura · 5ª mais cobrada em Compiladores
SDD vs esquema de tradução; sintetizado vs herdado; grafo de dependência; avaliar E.val.