Disciplina Curricular
Compiladores Com
Licenciatura Bolonha em Engenharia Informática e de Computadores - Alameda - LEIC-A 2006
Contextos
Grupo: LEIC-A 2006 > 1º Ciclo > Ciências da Engenharia Informática
Período:
Peso
6.0 (para cálculo da média)
Objectivos
Aquisição de conceitos sobre a definição de linguagens de programação.Obtenção de conhecimentos sobre os métodos de análise (front-end) e síntese (back-end) mais usados pelos compiladores. Especificação lexical e sintáctica, bem como a análise semântica das linguagens de computação, com especial ênfase nas linguagens de programação. Desenvolver um compilador para uma linguagem de programação simples que gere código máquina executável.
Programa
Ambiente de desenvolvimento Unix: ferramentas gcc, gdb, cvs, make, lex e yacc. Linguagens regulares e análise lexica: modelação do reconhecimento de frases, em analisadores lexicos, por autómatos finitos (deterministas e não-deterministas). Linguagens livres de contexto: gramaticas livres de contexto, árvores de derivação, autómatos finitos com pilha, analisadores sintacticos descendendes LL(1), e ascendendes LR(0)/ SLR(1)/ LALR(1). Gramáticas atributivas e avaliação de atributos. Tratamento e recuperação de erros, analise semântica estática e dinâmica: erros gramaticais, manipulação de identificadores, tipificação e árvores de activação. Geração de código intermédio em árvores abstractas e código postfix. Tópicos de geração e optimização de código final para maquinas "load and store".
Metodologia de avaliação
Projecto: 40% Aulas práticas: 10% Exame/testes: 50%