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)

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 2 projectos individuais levará ao desenvolvimento de Pensamento Crítico e Inovador e Competências Intrapessoais.

Componente Laboratorial

n.a.

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.

Disciplinas Execução