Bancadainterativo
🧪 Laboratório de simulações
Todos os simuladores da disciplina num só lugar para você experimentar os conceitos.
Abrir laboratório →Avaliação26 questões
🎯 Simulado estilo ENADE
Banco abrangente de questões objetivas com gabarito comentado para treinar.
Iniciar simulado →Trilha de 14 semanas
Aulas
Cada aula traz teoria didática, simulações, atividade em grupo e um mini-quiz. Siga na ordem ou vá direto ao tema.
1
Introdução à compilaçãoO que é um compilador, em que ele difere de um interpretador e o panorama completo das fases que transformam o código-fonte em um programa executável, com a tabela de símbolos e o tratamento de erros como apoios transversais.
Sem. 1
→
2
Linguagens, gramáticas e estrutura do compiladorOs níveis de abstração entre o problema humano e o hardware, a organização do compilador em front-end e back-end ligados por uma representação intermediária, e a hierarquia de Chomsky que classifica as linguagens formais e justifica os reconhecedores de cada fase.
Sem. 2
→
3
Análise léxica I — tokens e expressões regularesA primeira fase do compilador: agrupar a torrente de caracteres do código-fonte em unidades com significado, os tokens. Estudamos a tríade lexema, token e padrão, a especificação de padrões por expressões regulares e o funcionamento de um analisador léxico real.
Sem. 3
→
4
Análise léxica II — autômatos finitosComo a especificação por expressão regular vira código executável: autômatos finitos determinísticos (AFD) e não determinísticos (AFN), o pipeline ER→AFN→AFD→código e o funcionamento interno de um scanner como uma máquina de estados.
Sem. 4
→
5
Gramáticas livres de contextoA linguagem da sintaxe: gramáticas livres de contexto (GLC), derivações, árvores sintáticas, o problema da ambiguidade e sua solução via precedência e associatividade, e as notações BNF e EBNF que descrevem a estrutura das linguagens de programação.
Sem. 5
→
6
Análise sintática descendenteParsing recursivo-descendente: como percorrer a gramática, da raiz às folhas, para reconstruir a árvore sintática a partir dos tokens. Estudamos por que a recursão à esquerda quebra o método, como eliminá-la, e como a fatoração à esquerda prepara a gramática.
Sem. 6
→
7
LL(1), FIRST/FOLLOW · Revisão + Prova 1Os conjuntos FIRST e FOLLOW, que guiam o parser preditivo; a construção e o uso da tabela LL(1); e a revisão geral das semanas 1 a 6. Esta é a semana da Avaliação 1.
Sem. 7
→
8
Análise semântica I — gramáticas de atributosDepois da estrutura, o significado: atributos sintetizados e herdados, gramáticas de atributos e a tradução dirigida pela sintaxe (SDT) que executa ações ao longo da árvore.
Sem. 8
→
9
Tabela de símbolos e verificação de tiposA memória do compilador: a tabela de símbolos com escopos aninhados e o sistema de tipos que detecta incompatibilidades antes da execução.
Sem. 9
→
10
Representação intermediáriaA ponte entre front-end e back-end: por que uma RI existe, o código de três endereços e a tradução dirigida pela sintaxe que o gera a partir da árvore.
Sem. 10
→
11
Ambiente de execuçãoComo o programa traduzido se organiza na memória em tempo de execução: registros de ativação, a pilha de chamadas (e a recursão) e a distinção entre pilha e heap.
Sem. 11
→
12
Geração de código e organização do computadorA fase final: traduzir a RI para a máquina-alvo, com seleção de instruções, alocação de registradores e a influência da organização do computador.
Sem. 12
→
13
Projeto integrador — mini-compiladorJuntando as fases: do código-fonte aos tokens, à árvore e ao código de três endereços, em um projeto único que exercita o front-end ponta a ponta.
Sem. 13
→
14
Apresentações · Revisão geral · Prova 2Fechamento da disciplina: apresentação dos projetos, revisão conectada de todas as fases do compilador e preparação para a Avaliação 2 (e exame).
Sem. 14
→