UnB

Departamento 
de Ciência da 
Computação

Tradutores 
2/98
 

Prof. Pedro Rezende
 
 
 
 
 

ultima atualização
20/03/99  -  rev 4.7

Lancelot, o programador andante, enfrenta o Dragão da Complexidade do projeto compilador com sua arma: um gerador de parsers LALR(1)

 

Apresentação e objetivos



Ementa e Programa da disciplina

    Resumo das aulas
Uma sequência resumida do material já apresentado nas aulas estará disponível em html através deste link
    Cópia das transparências
Está disponível uma copia das transparencias usadas nas aulas expositivas do curso. Estas transparencias contem um resumo traduzido do conteúdo dos capítulos 1,2,4 e 5 do texto de  Fisher, C. & LeBlanc, R., "Crafting a Compiler".




Ferramentas
      Detalhes
Descrição e acesso às principais ferramentas atuais para auxílio na construção de compiladores estão disponíveis através deste link espelho



Avaliação

  • Alunos que obtiverem nota igual ou superior a 5.0 na primeira prova serão dispensados da segunda prova; neste caso a 1a. prova terá peso 3.
  •     Rendimento    .

        Cronograma
     

    Datas Etapas
    16/11/98 até 11/12/98 - 1ª  etapa Documento da linguagem / Definição do projeto
       1- Título, com nome da linguagem e alunos participantes;
        2- Ambiente de desenvolvimento (linf-compatível);
        3- Especificação da linguagem (manual do usuário);
        4- Bibliografia e Anexos (opcional: diagramas sintáticos).
    11/12/98 até 15/01/99 - 2ª  etapa Analisador sintático
       1- Descrição do gerador de parser e configuração usada;
        2- Listagem da gramática aceita pelo gerador de parser;
        3- Tabelas (arquivos header) gerados pela ferramenta;
        4- Código fonte do parser e scanner; executável e testes; 
    15/01/98 Primeira prova
       notas publicadas em  01/03/99
    15/01/99 até 19/02/99 - 3ª  etapa Analisador semântico (escopo e tipo)
       1- Estudar capítulos 5 a 7 do livro do dragão ou equivalente
       2- Implementar rotinas semânticas para análise de escopo e tipo
    19/02/99 até 11/03/99 - 4ª  etapa Compilador (gerador de código e testes)
       1- Estudar capítulos 8 e 9 do Brinch-Hansen ou equivalente
       2- Escolher máquina virtual (interpretador). Exemplo: p-code
       3- Inserir geração de código para a máquina escolhida
       4- Obter ou implementar interpretador e documentar testes.
    12/03/99 até 19/03/99 Walkthrough do compilador e 2ª prova
      1- Agendar aprsentação (ver horários disponíveis abaixo)
       2- Preparar Documetação
    Para a avaliação do compilador, o aluno ou o grupo de dois alunos deverá agendar com o professor, com razoável antecedência, a apresentação no linf de seu trabalho (walktrhough), entre 12 e 18/03/99. A apresentação e discussão que se segue devem durar em torno de uma hora.

    O aluno ou grupo de alunos deve comparecer, no horário marcado, com o documento impresso do projeto e cópia compilável do código do projeto em disquete. A avaliação será iniciada com a compilação do projeto, em um dos compiladores disponíveis no LINF, e prosseguirá com testes e arguição sobre aspectos do projeto e resultados dos testes.

    Agenda para Avaliação do Projeto
     Walkthrough
    19/03
    Sexta
    15/03
    Segunda
    16/03
    Terça
    17/03
    Quarta
    18/03
    Quinta
    13:00 às 14:00
    D-Pascal 
    [5.5]
    PascalAM
    [*]
    Jackal
    [0.0]
    14:00 às 15:00
    P-- 
    [7.0]
    Pasquality 
    [6.5]
    Pascale
    [5.0]
    HalfPascal
    [6.0]
    15:00 às 16:00
    Pascal-ZIM 
    [10.0]
    Pascalino
    [5.0]
    CUC
    [9.0]
    16:00 às 17:00
    Linguagem X 
    [7.0] 
    Beginner's 
    P [*]
    PAC
    [8.0]
    17:00 às 18:00
    PSN 
    [7.0]
    Petrus 
    [6.5]
    JComp
    [5.0]
    Pascoalinho
    [7.0]
    18:00 às 19:00
    Pasquim 
    [5.0] 
    P+- 
    [*
    PasME
    [5.0]
    Javasca
    [5.0]
     * - revisão até 23/03 antes de 14:00h, mediante solicitação na secretaria do CIC

    Avisos

    1.     A avaliação de um trabalho em grupo pode ser diferenciada para os participantes caso surjam, durante a apresentação do mesmo, discrepâncias injustificadas sobre o nível de envolvimento de cada participante no projeto.

    2.  
    3.     O professor usa, de acordo com o disposto no estatuto e regimento interno da UnB referente a avaliação discente, critérios objetivos combinados a critérios subjetivos em sua avaliação.  A avaliação subjetiva será substanciada na nota de conceito, baseada na sua percepção da qualidade da interação aluno/classe (i.e., interesse na matéria, participação nas aulas, empenho nas tarefas e honestidade), nos critérios para a ponderação da segunda prova, e para diferenciação da nota de trabalho em grupo, quando aplicáveis.

    4.  
    5.  23/11/98: Detalhes sobre os requisitos mínimos do projeto a ser implementado no curso foram divulgados na terceira aula, de 20/11/98. Três ferramentas para auxílio à cunstrução de parsers estão disponíveis para download.

    6.  
    7.  02/12/98: As datas sobre as quais serão computadas frequências, para efeito da avaliação do aluno, serão aqueles onde houver apresentação de aula ou seminario, não sendo incluídas as aulas  para apresentação de seminarios canceladas por falta de demanda, no calculo da porcentagem de frequência.

    8. .
    9. 04/01/99: As aulas entre 04/01/99 e 14/01/99 serão de atendimento na sala do professor, estando dispensada a frequência.

    10.  
    11. 08/03/99: Na avaliação do projeto, os pesos atribuidos às etapas de seu desenvolvimento serão 1,3,3 e 3 para as etapas primeira, segunda, terceira e quarta respectivamente.

    12.  
    13. 15/03/99: Prepare-se adequadamente para a avaliação do seu projeto:

    14. 1) Teste antes o ambiente onde seu projeto será compilado no LINF.

      2) Inclua no disquete contendo arquivos do projeto, uma coleção *abrangente e sistemática* de arquivos com programas-fonte da sua linguagem, criados para os testes que vc conduziu. Ausencia de arquivos de teste na apresentacao pode ser interpretado como falta de critério para validação do projeto, impactando negativamente a avaliação. (Quanto mais abrangente melhor)

      3) Envie por e-mail ou entregue com um dia de antecedencia, a versao atual do codigo-fonte do seu projeto.

      4) Se vc forneceu seu e-mail ao professor, leia sua correspondencia eletronica e/ou a pagina do curso com regularidade durante o semestre!
       



    Bibliografia

    O texto básico para a primeira metade curso será o livro de C. Fisher & LeBlanc, R., "Crafting a Compiler", citado abaixo, cujo resumo traduzido dos primeiros capítulos será apresentado em transparências, disponíveis para cópia na pasta 146 da copiadora do Ceubinho, no ICC norte.

    Para a segunda metade do curso, a referência mais prática para o aluno irá depender da ferramenta de construção do parser por ele escolhida, podendo incluir um ou mais dos textos citados abaixo. Mais informações e sugestões serão acrescentadas ao longo do semestre.


    Comentarios e sugestões