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%

Disciplinas Execução

2020/2021 - 2º Semestre

2019/2020 - 2º Semestre

2018/2019 - 2ºSemestre

2017/2018 - 2ºSemestre

2016/2017 - 2ºSemestre

2015/2016 - 2º Semestre

2014/2015 - 2º Semestre

2013/2014 - 2 Semestre

2012/2013 - 2 Semestre

2011/2012 - 2 Semestre

2010/2011 - 2 Semestre

2009/2010 - 2 Semestre

2008/2009 - 2 Semestre

2007/2008 - 2 Semestre

2006/2007 - 2 Semestre