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 - Recursive Descent Parsing  
28.11.24 Quinta 5 Análise Sintática Top-Down - LL(1) Parsing Exercício 2 - Recursive-descent parsing
03.12.24 Terça 6 Análise Sintática Bottom-up - LR(0)  
05.12.24 Quinta 7 Análise Sintática Bottom-up - LR(1) Exercício 2 - LL(1) parsing
10.12.24 Terça 8 Análise Semântica - Intro e ASTs  
12.12.24 Quinta 9 Análise Semântica - Visitors Exercício 3 - Recursive-descent parsing
17.12.24 Terça 10 Análise Semântica - Tipos e Escopo  
19.12.24 Quinta 11 Análise Semântica - Tabelas de Símbolos e Type-Checking  
22.12 a 26.01 RECESSO ESCOLAR
28.01.25 Terça 12 Revisão  
30.01.25 Quinta 13 1 Exercício Escolar  
04.02.25 Terça 14 Representações Intermediárias de Código - Introdução  
06.02.25 Quinta 15 Aula Suspensa - CHUVAS  
11.02.25 Terça 16 Representações Intermediárias de Código - Código de 3 endereços  
13.02.25 Quinta 17 Representações Intermediárias de Código - Control-flow Graphs  
18.02.25 Terça 18 Análise e Otimização de Código - Otimizações Locais  
20.02.25 Quinta 19 Aula Suspensa - Reunião ProPG e Professor sem voz  
25.02.25 Terça 20 Análise e Otimização de Código - Otimizações globais forward-flow  
27.02.25 Quinta 21 Análise e Otimização de Código - Otimizações globais backward-flow  
04.03.25 Terça Carnaval
06.03.25 Quinta Data Magna de Pernambuco
11.03.25 Terça 22 Análise e Otimização de Código - Dominance  
13.03.25 Quinta 23 Ambientes de Execução (Pilha)  
18.03.25 Terça 24 APS - ANTLR  
20.03.25 Quinta 25 Ambientes de Execução (Heap)  
25.03.25 Terça 26 Geração de Código  
27.03.25 Quinta 27 Geração de Código  
01.04.25 Terça 28 Geração de Código  
03.04.25 Quinta 29 Revisão  
08.04.25 Terça 30 2 Exercício Escolar  
10.04.25 Quinta 31 Segunda Chamada  
15.04.25 Terça 32 Prova Final