if688.github.io icon indicating copy to clipboard operation
if688.github.io copied to clipboard

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

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:

    • Beatriz de Araújo Andrade (@BeatrizA2 --- baa@cin)
    • Beatriz de Oliveira Férre (@biaferre --- bof@cin)
    • Bruno de Figueirêdo Lima (@Brunonaive03 --- bfl3@cin)
    • Diogo Pedro de França Silva (@DiogoPedro --- dpfs@cin)
    • Eliab Bernardino de Paula Junior (@eliab2107 --- ebpj@cin)
    • Ernesto Gonçalves de Lima Neto (@ergdln --- egln@cin)
    • Geovany Ícaro Lima Nunes (@Icaro-Nunes --- giln@cin)
    • Luiza Diniz Mendes Monteiro Luna (@dinizluiza --- ldmml@cin)
    • Pedro Augusto de Almada Lobo Fonseca (@pedroalfonseca --- paalf@cin)

Horário e Local de Aulas

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

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

  • 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 Conteúdo Programático Atividades Associadas
24.10.23 Terça Introdução, admin
26.10.23 Quinta Análise Léxica
31.10.23 Terça Implementando Analisadores Léxicos
02.11.23 Quinta FERIADO - DIA DE FINADOS
07.11.23 Terça Análise Sintática Top-Down - Intro
09.11.23 Quinta Análise Sintática Top-Down - LL(1) Parsing
14.11.23 Terça Análise Sintática Top-Down - Recursive Descent Parsing
16.11.23 Quinta Análise Sintática Bottom-Up - Intro e LR(0)
21.11.23 Terça Análise Sintática Bottom-Up - LR(1) Parsing
23.11.23 Quinta Análise Semântica - Intro e ASTs
28.11.23 Terça Análise Semântica - ASTs e Visitors
30.11.23 Quinta Análise Semântica - Tipos, Escopo, Tabelas de Símbolos
05.12.23 Terça APS - Exercícios
07.12.23 Quinta APS - Exercícios
12.12.23 Terça Análise Semântica - Tabelas de Símbolos e Type Checking
14.12.23 Quinta Revisão e tirar dúvidas
19.12.23 Terça Revisão e tirar dúvidas Prova remarcada por conta da chuva
21.12.23 Quinta 1 Exercício Escolar
26.12.23 Terça Recesso Escolar ---
28.12.23 Quinta Recesso Escolar ---
02.01.24 Terça Recesso Escolar ---
04.01.24 Quinta Recesso Escolar ---
09.01.24 Terça Recesso Escolar ---
11.01.24 Quinta Recesso Escolar ---
16.01.24 Terça Recesso Escolar ---
18.01.24 Quinta Recesso Escolar ---
23.01.24 Terça Recesso Escolar ---
25.01.24 Quinta Recesso Escolar ---
30.01.24 Terça Representação Intermediária de Código
01.02.24 Quinta Representação Intermediária de Código
06.02.24 Terça APS - ANTLR
08.02.24 Quinta APS - ANTLR
13.02.24 Terça CARNAVAL
15.02.24 Quinta Análise e Otimização de Código
20.02.24 Terça Análise e Otimização de Código
22.02.24 Quinta Análise e Otimização de Código
27.02.24 Terça Ambientes de Execução
29.02.24 Quinta Geração de Código
05.03.24 Terça Geração de Código
07.03.24 Quinta Geração de Código
12.03.24 Terça Revisão
14.03.24 Quinta 2 Exercício Escolar
19.03.24 Terça Segunda Chamada
21.03.24 Quinta Tirar dúvidas
26.03.24 Terça Prova Final
28.03.24 Quinta Divulgação notas