Compiladores 1

Bacharelado em Ciência da Computação

Avisos

Cronograma

Data Aula Assunto Material
23/out 1 Apresentação. Introdução ao processo de compilação. Noções introdutórias. Aho, Cap. 1. Price, Cap 1. Apoio 1
25/out 2 Análise Léxica. Gramáticas e Linguagens Regulares. Tokens. Aho, Cap. 2. Price, Cap 2. Lesk. Apoio 2
30/Out 3 Introdução ao Lex (Lesk), Apoio 3
01/Nov 4 Implementação de Analisador Léxico Exercício corrigido: Uma calculadora muito simples, Apoio 4
06/Nov 5 Análise Sintática. Revisão: Gramáticas Livre de Contexto Apoio 5
08/Nov 6 Análise Sintática Top Down Apoio 6
13/Nov 7 Análise Sintática Top Down Apoio 7
15/Nov 8 Análise Sintática Top Down Continuação
20/Nov 9 Análise Sintática Top Down Continuação
22/Nov 10 Parser top-down LL(k) JavaCC, Exemplos de aula
27/Nov 11 Semana Acadêmica SACOMP
29/Nov 12 Semana Acadêmica SACOMP
04/Dez 13 Análise sintática Bottom-up Definição trabalho
06/Dez 14 Participação no Congresso de IC Confira programação: XV CIC
11/Dez 15 Análise sintática Bottom-up, Analisadores LR Apoio 8, Apoio 10
13/Dez 16 Analisadores LR Continuação
18/Dez 17 Prova 1 (Parte A)
20/Dez 18 Prova 1 (Parte B) Entrega do Trabalho Opcional 1
Recesso
22/Jan 19 Análise semântica Apoio 11
24/Jan 20 Análise semântica Execícios
29/Jan 21 Análise de tipos Apoio 12, apresentar esboço da linguagem do trabalho
31/Jan 22 Análise de tipos
5/Fev 23 Ambiente de execução Apoio 13
7/Fev 24 Ambiente de execução
12/Fev 25 Código intermediário Apoio 14, Exercício: tabela de símbolos
13/Fev 26 Código intermediário
19/Fev 27 Ponto Facultativo
21/Fev 28 Laboratório
26/Fev 29 Prova 2 (Parte A)
28/Fev 30 Otimização Apoio 15
5/Mar 31 Prova 2 (Parte B)
7/Mar 32 Geração de código assembly
12/Mar 33 Entrega do trabalho Primeira oportunidade
14/Mar 34 Entrega do trabalho Segunda oportunidade
19/Mar 35 Recuperação Entrega do trabalho opcional 2
26/Mar 37 Exame Confirmado. Das 8 as 12h

Avaliações

Ementa

Estrutura de um compilador/interpretador: módulos componentes, interfaces, análise léxica, análise sintática, análise semântica e geração de código.

Objetivos da disciplina

Esta disciplina tem o objetivo de propiciar ao aluno a oportunidade de aprender e compreender os vários aspectos relacionados com o projeto e a implementação de programas da categoria dos compiladores de linguagens (compiladores, interpretadores, formatadores de textos, shell de sistema operacional etc). Na construção destes conhecimentos são largamente usados os conceitos relacionados às linguagens de programação e às linguagens formais, particularmente a construção e a transformação de gramáticas, bem como as definições de sintaxe, semântica e ambiente de execução.

Conteúdo programático

Bibliografia

Recursos

<< Volta