hopperjc / if688.github.io

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

IF688 - Teoria e Implementação de Linguagens Computacionais

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

Instrutores

  • Professor
  • Monitores
    • Claudio Carvalho de Oliveira (@evfgs --- cco2@cin)
    • Guilherme Gouveia Figueiredo Lima (@Gui-Lima --- ggfl@cin)
    • Mário Victor Gomes de Matos Bezerra (@mvgmb --- mvgmb@cin)
    • Matheus Borba Alves (@mlbas --- mlbas@cin)

Horário e Local de Aulas

  • Terça (08h-10h), grad 4
  • Sexta (10h-12h), grad 4

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

  • (N1+N2)/2, onde:
    • N1 = Prova1 (60%) + Exercicios1 (40%)
      • Prova1 = Teste com [assunto dado até o momento
      • Exercicios1 = Tarefas passadas durante primeira unidade
    • N2 = Prova2 (60%) + Exercicios2 (40%)
      • Prova2 = Teste com [assunto dado a partir de Prova1
      • Exercicios2 = Tarefas passadas durante segunda unidade
  • Final: Teste com todo o assunto da matéria
  • 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

Atenção! 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 Assunto Atividades
01 19.02.19 (ter) Introdução, admin ---
02 22.02.19 (sex) Conceitos Básicos ---
03 26.02.19 (ter) Tradução Dirigida por Sintaxe ---
04 01.03.19 (sex) Análise Léxica (JFlex) --
-- 05.03.19 (ter) FERIADO - Carnaval ---
05 08.03.19 (sex) Ferramentas para Análise Léxica (JFlex) Atividade 1 lançada
06 12.03.19 (ter) Introdução à Análise Sintática e Top-Down Parsing ---
07 15.03.19 (sex) LL(1) Parsing Atividade 2 lançada
08 19.03.19 (ter) Bottom-up Parsing LR(0) Deadline para entrega - Atividade 1
09 22.03.19 (sex) Bottom-up Parsing LR(1) e LALR ---
10 26.03.19 (ter) Bottom-up Parsing LALR & Introdução à Análise Semântica ---
11 29.03.19 (sex) Análise Semântica - ASTs ---
-- 31.03.19 (dom) --- Deadline para entrega - Atividade 2
12 02.04.19 (ter) Análise Semântica - Visitors Atividade 3 lançada
13 05.04.19 (sex) Análise Semântica - Escopo & Type Checking ---
14 09.04.19 (ter) Automatizando Análise Sintática com ANTLR ---
15 12.04.19 (sex) 1 Exercício Escolar ---
-- 15.04.19 (seg) --- Deadline para entrega - Atividade 3
16 16.04.19 (ter) Representações Intermediárias de Código Atividade 4 lançada
-- 19.04.19 (sex) FERIADO - Paixão de Cristo ---
17 23.04.19 (ter) Representações Intermediárias de Código ---
18 26.04.19 (sex) Análise e Otimização de Código ---
19 30.04.19 (ter) Análise e Otimização de Código Atividade 5 lançada
20 03.05.19 (sex) Representações Intermediárias de Código - LLVM Deadline para entrega - Atividade 4
21 07.05.19 (ter) Exercício - Atividade 5 ---
-- 10.05.19 (sex) Exercício - Atividade 5 ---
22 14.05.19 (ter) Análise e Otimização de Código Atividade 6 lançada
23 17.05.19 (sex) Análise e Otimização de Código Deadline para entrega - Atividade 5
24 21.05.19 (ter) Ambientes de Execução ---
25 24.05.19 (sex) Ambientes de Execução ---
26 28.05.19 (ter) Ambientes de Execução ---
27 31.05.19 (sex) Geração de Código ---
28 04.06.19 (ter) Geração de Código ---
29 07.06.19 (sex) Geração de Código Deadline para entrega - Atividade 6
30 11.06.19 (ter) Geração de Código ---
31 14.06.19 (sex) 2 Exercício Escolar ---
32 18.06.19 (ter) Segunda Chamada ---
33 21.06.19 (sex) Tirar dúvidas (online) ---
34 25.06.19 (ter) Tirar dúvidas (online) ---
34 28.06.19 (ter) Prova Final ---

About

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


Languages

Language:Java 96.3%Language:Lex 3.7%