Disciplina Curricular
Compiladores Com
Licenciatura Bolonha em Engenharia Informática e de Computadores - Alameda - LEIC-A 2021
Contextos
Grupo: LEIC-A 2021 > 1º Ciclo > Área Principal
Período:
Peso
6.0 (para cálculo da média)
Pré-requisitos
n.a.
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
Unix programming environment: gcc, gdb, cvs, make, lex and yacc tools. Regular languages and lexical analysis: modeling sentence recognition with finite automata (non-deterministic and deterministic). Context free languages: context free grammars, derivation trees, stack finite automata, descendent parsers LL(1) and bottom-up parsers LR(0)/ SLR(1) / LALR(1). Attribute grammars and attribute evaluation. Error treatment and recovery, semantic analysis. Intermediate code generation of abstract trees and postfix code. Topics of final code generation and optimization for "load and store" machines.
Metodologia de avaliação
Projeto: 50%, com nota mínima de 9,5 valores, realizado em 3 entregas (inicial, intermédia e final) com teste prático final individual. Exercícios de laboratório: 50%, com nota mínima de 9,5 valores. O processo de avaliação é o mesmo para todos os alunos, incluindo trabalhadores-estudantes. Em época especial os exercícios de laboratório são substituídos por um exame de 180min.
Componente de Competências Transversais
Não existindo uma componente explícita de Competências Transversais a desenvolver no âmbito desta UC, o desenvolvimento de um projecto levará ao desenvolvimento de Pensamento Crítico e Inovador e Competências Intrapessoais.
Componente Laboratorial
Exercícios de programação individual (N), sem consulta, todas as semanas em aula. Apenas os melhores N-3 são levados em consideração
Componente de Programação e Computação
No curso onde esta UC é oferecida estão asseguradas as componentes de Computação e Programação de acordo com o MEPP 2122.
Princípios Éticos
Todos os membros de um grupo são responsáveis pelo trabalho do grupo. Em qualquer avaliação, todo aluno deve divulgar honestamente qualquer ajuda recebida e fontes usadas. Numa avaliação oral, todo aluno deverá ser capaz de apresentar e responder a perguntas sobre toda a avaliação.