if688

IF688 - Teoria e Implementação de Linguagens Computacionais

Ciência da Computação & Engenharia da Computação, Centro de Informática, (UFPE)

Instrutor

Horário e Local de Aulas

Ementa

Este curso explora os princípios, algoritmos, e estruturas de dados envolvidos na teoria e implementação de compiladores. O conteúdo planejado inclui uma introdução aos princípios e técnicas de construção de compiladores, conceitos básicos da teoria de linguagens, análise léxica, análise sintática, análise semântica, representação de código intermediário, ambientes de execução, análise estática, otimização de código, geração de código.

Bibliografia Sugerida

Bibliografia Complementar

Objetivos

O objetivo da disciplina é fornecer fundamentos para desenvolvimento da compreensão da teoria e prática de compiladores, e de questões envolvidas na implementação de linguagens.

Metodologia

Na disciplina, utilizaremos uma mistura de aulas tradicionais com exercícios e tarefas de programação em sala de aula e para casa.

Recursos

Avaliação

Plano de Ensino

Este plano de ensino está sujeito a alterações durante o semestre, visite frequentemente a página para obter a versão mais atualizada, ou acompanhe os updates no repositório.

Data DIA Aula Conteúdo Atividades Associadas
12.11.24 Terça SEM AULA
14.11.24 Quinta 1 Introdução, admin Pesquisa inicial da disciplina (Google Classroom)
19.11.24 Terça 2 Análise Léxica  
21.11.24 Quinta 3 Implementando e gerando Analisadores Léxicos Exercício 1 - Análise Léxica
26.11.24 Terça 4 Análise Sintática Top-Down  
28.11.24 Quinta 5 Análise Sintática Top-Down Exercício 2 - Recursive-descent parsing
03.12.24 Terça 6 Análise Sintática Bottom-up  
05.12.24 Quinta 7 Análise Sintática Bottom-up Exercício 3 - LL(1) parsing
10.12.24 Terça 8 Análise Semântica  
12.12.24 Quinta 9 Análise Semântica Exercício 4 - LR(1) parsing
17.12.24 Terça 10 Análise Semântica  
19.12.24 Quinta 11 Análise Semântica Exercício 5 - ANTLR
22.12 a 26.01 RECESSO ESCOLAR
28.01.25 Terça 12 Revisão  
30.01.25 Quinta 13 1 Exercício Escolar Exercício 6 - Type-Checking
04.02.25 Terça 14 Representações Intermediárias de Código  
06.02.25 Quinta 15 Representações Intermediárias de Código Exercício 7 - Interpretador simples
11.02.25 Terça 16 Representações Intermediárias de Código  
13.02.25 Quinta 17 Representações Intermediárias de Código Exercício 8 - LLVM?
18.02.25 Terça 18 Análise e Otimização de Código  
20.02.25 Quinta 19 Análise e Otimização de Código Exercício 9 - Data-Flow Analyses
25.02.25 Terça 20 Análise e Otimização de Código  
27.02.25 Quinta 21 Análise e Otimização de Código Exercício 10 - Data-Flow Analyses
04.03.25 Terça Carnaval
06.03.25 Quinta Data Magna de Pernambuco
11.03.25 Terça 22 Ambientes de Execução  
13.03.25 Quinta 23 Ambientes de Execução  
18.03.25 Terça 24 Geração de Código Exercício 11 - Garbage Collection
20.03.25 Quinta 25 Geração de Código  
25.03.25 Terça 26 Geração de Código  
27.03.25 Quinta 27 Geração de Código Exercício 12 - Geração de Código
01.04.25 Terça 28 Revisão  
03.04.25 Quinta 29 2 Exercício Escolar  
08.04.25 Terça 30 APS  
10.04.25 Quinta 31 Segunda Chamada  
15.04.25 Terça 32 Prova Final