Skip to content

Site da disciplina IF688 - Teoria e Implementação de Linguagens Computacionais, Ciência da Computação, CIn-UFPE

Notifications You must be signed in to change notification settings

if688/if688.github.io

Repository files navigation

IF688 - Teoria e Implementação de Linguagens Computacionais

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

Instrutor

  • Professor: Leopoldo Motta Teixeira (@leopoldomt --- lmt@cin)

  • Monitores:

    • João Victor Ribeiro Costa de Omena (@Jvrco --- jvrco@cin)
    • João Vitor Cavalcanti Regis (@Jvcregis --- jvcr@cin)
    • Luis Guilherme Monteiro Maciel Nunes (@nuneslg --- lgmmn@cin)
    • Pedro Arthur Santana Patriota (@pedro-patriota --- pasp@cin)
    • Rodrigo Rossiter Ladvocat Cintra (@rodrigoladvocat --- rrlc@cin)

Horário e Local de Aulas

  • Terça (13h-15h), Sala D005
  • Quinta (15h-17h), Sala D005

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

  • Discord
  • Google Classroom
  • Github Classroom - Ver instruções no Google Classroom após o primeiro exercício ser disparado

Avaliação

  • Nota = (Atividades x 5 + Provas x 5) / 10
    • Atividades = Atividades de programação
    • Provas = Exercícios escolares
  • Final
  • Observações:
    • Entrega fora do prazo: redutor de 1 ponto por dia de atraso.
    • Atraso máximo: 1 (uma) semana. Após esse prazo, será dada nota zero para a respectiva atividade de avaliação.
    • Trabalhos “CTRL-C + CTRL-V” terão nota zero (vale tanto para cópia de colegas, como para trabalhos copiados da internet).

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
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