MO615A - Implementação de Linguagens II

MC900B - Tópicos Especiais em Linguagem de Programação

Primeiro semestre de 2008


Aulas Atendimento Avaliação Seminários
Bibliografia Calendário Notas

Contatos

Professor: Sandro Rigo (sandro AT ic dot unicamp do br)

OBS.:   Quando enviar um e-mail favor colocar no subject "[MO615]", para evitar de seu email ser descartado como spam

Avisos


Data
 Aviso
  02/06
  Foi colocado no xerox da Mara (IA) material sobre SSA e Software Pipelining
  08/04
  Lista de exercícios sugeridos aqui
  25/03
  A data da primeira prova foi alterada para 24/04
  06/03
  Slides podem ser encontrados aqui
  28/02
  Início das aulas. Veja o calendário abaixo para as datas de provas.




Aulas

   Turma A: Ter - Qui: 14:00 - 16:00        -    Sala: IC-316 


Atendimento

Professor:
             Sandro Rigo
Seg: 14h - 15h.

Avaliação

 Avaliação
A avaliação será baseada em duas provas teóricas mais um seminário, seguindo os seguintes pesos: Prova 1 (35%), Prova 2 (40%) e Seminário (25%). O seminário será sobre tópicos modernos de pesquisa em compiladores que serão indicados pelo professor.

Seminários

Veja aqui os temas para seminários.


Bibliografia


      
Ementa
Técnicas avançadas usados no projeto de compiladores modernos. Análise de Fluxo de Dados, otimização de código, alocação de registradores, escalonamento de instruções, geração de código para arquiteturas paralelas.


  • Referências Principais
    • Aho, Sethi and Ullman. Compilers: Principles, techniques and tools.. Addison-Wesley.
    • Steven S. Muchnick. Advanced Compiler Design and Implementation. Morgan Kaufmann
    • Michael Wolfe. High Performance Compilers for Parallel Computing.
    • Andrew Appel. Modern Compiler Implementation in Java. Second Edition Cambridge
    Calendário

    Fevereiro
    Dia      
    Matéria
    28  Qui
    Apresentação do Curso. Linguagem Intermediária.
    Março
    Dia Matéria
    04  Ter
    Blocos Básicos, CFG, DAG
    06  Qui
    Conceitos básicos de otimização
    11  Ter
    Equações para DFA, Definições Alcançantes (Reaching Definitions)
    13  Qui
    Expressões Disponíveis, Análise de Longevidade
    18  Ter
    Análise de Longevidade, Alocação Global de Registradores
    20  Qui
    Feriado
    25  Ter
    Alocação Global de Registradores
    27  Qui
    Não haverá aula
    Abril
    Dia Matéria
    01  Ter
    Coalescing
    03  Qui
    Transformações para otimização de código
    08  Ter
    Laços em um CFG
    10  Qui
    Laços: Detecção de Computação Invariante e Variáveis de Indução
    15  Ter
    Laços: Strength Reduction, Eliminação de Variáveis de Indução
    17  Qui
    Laços: Desenrolamento, Reestruturação
    22  Ter
    Seleção de Instruções
    24  Qui
    PROVA 1
    29  Ter
    Escalonamento Local (Dependências e Branch)
    Maio
    Dia

    06  Ter
    Escalonamento Local (List Scheduling)
    08  Qui
    Escalonamento Global (Trace Scheduling)/ Software Pipelining
    13  Ter
    Software Pipelining
    15  Qui
    Forma SSA
    20  Ter
    Forma SSA
    22  Qui
    Feriado
    27  Ter
    Coleta de Lixo
    29  Qui
    Coleta de Lixo
    Junho
    Dia Matéria
    03  Ter
    Alias Analysis
    12  Qui
    PROVA 2
    Feriados
    20/03;  01/05;  22/05