Escolar Documentos
Profissional Documentos
Cultura Documentos
Símbolos
Judson Santos Santiago
Compiladores
Introdução
caracteres
• Análise sintática
• Verifica se a sequência
Analisador Analisador
de tokens obedece a Léxico Sintático
gramática da linguagem
tokens
Introdução
análise síntese
Código 0101101011
0100101011
Código
Fonte Compilador 0111001100 Objeto
011001
Tabela de Símbolos
{
int x;
char y; B1
Declaração Escopo
{
bool y; int x; B1
x; B2
y; char y; B1 – B2
} bool y; B2
x;
y;
}
Escopo
int w; B0
B0: w int
{
int x; B1
char y;
B1: x int {
y char bool y; B2
}
{
int z; B3
B2: y bool B3: z int
}
}
Encadeamento de Tabelas
class Point
{
private: x int private A classe é definida dentro de um
int x; bloco: as mesmas regras de
int y; y int private
public: Point void public
escopo se aplicam
Point() {
x = 0;
y = 0;
}
}
Ambientes e Estados
ambiente estado
void func()
{
int i; // variável local Quando func() está sendo executada, o
i = 3; // uso do i local ambiente se ajusta para que i se refira a
} localização reservada na pilha da função
int main()
{
func();
int x = i + 1; // uso do i global
}
Ambientes e Estados
• Elas podem também ser usadas para inserir e consultar símbolos na tabela
Usando a Tabela