Contacto WhatsApp 961135355

Universidade Lusófona do Porto

Compiladores

Curso

Engenharia Informática (ULP)

Grau|Semestres|ECTS

Licenciatura | Semestral | 4

Ano | Tipo de unidade curricular | Lingua

3 |Obrigatório |Português

Total de horas de Trabalho | Tempo de Contacto (horas)

122 | 30

Código

ULP452-7347

Disciplinas complementares recomendadas

Não aplicável

Modalidade de Ensino

Face-a-face

Precedências

Não

Estágio profissional

Não

Conteúdos Programáticos

1. Introdução à compilação
a. Conceitos básicos
b. Estrutura de um compilador
c. Processo de compilação
2. Análise léxica
a. FLEX
b. Expressões regulares
c. Autómatos finitos
3. Análise sintática
a. Gramáticas
b. Árvores de parse
c. BISON
4. Análise semântica
a. Implementação da análise semântica
b. Gramáticas de atributos
5. Otimização de código
a. Propriedades do processo de otimização
b. Eliminação de sub-expressões comuns e código morto
c. Otimização de ciclos
6. Tabela de símbolos
a. Tipos de ocorrências
b. Tabelas com um único nível
c. Tabelas multinível

Objetivos

A disciplina tem como objetivo apresentar os conceitos fundamentais na área de compilação de programas, através de abordagem teórica e prática).

Conhecimentos, capacidades e competências a adquirir

No futuro o aluno deverá ter competências ao nível de: tradutores, processos de compilação de linguagens de programação, análise léxica, análise sintática e semântica, e recuperação de erros durante a análise sintática.

Metodologias de ensino e avaliação

50% Frequência final incidindo sobre toda a matéria 50% Minitestes (4) de 20 minutos cada incidindo em tópicos específicos da componente prática

Bibliografia principal

Aho, A. V.; Sethi, R.; Ullman, J. D.: "Compiladores. Principios, Técnicas y Herramientas" Addison-Wesley Iberoamereicana. 1990.
Aho, A. V.; Ullman, J. D.: "Principles of Compiler Design" Addison-Wesley, Reading, Mass. 1977.
Aho, A. V.; Ullman, J. D.: "The Theory of Parsing, Translation and Compiling. Vol. II: Compiling" Prentice-Hall, Englwood Cliffs, New Jersey. 1973.
Aho, A. V.; Ullman, J. D.: "The Theory of Parsing, Translation and Compiling. Vol. I: Parsing" Prentice-Hall, Englwood Cliffs, New Jersey. 1972.
Bennet, J. P.: "Introduction to Compiling Techniques" McGraw-Hill. 1990.
Bornat, R.: "Understanding and Writing Compilers: a Do-It-Yourself Guide" Mac Millan, Londres. 1982. Holmes, J.: "Object-Oriented Compiler Construction" Prentice-Hall International, Engewood Cliffs, New Jersey. 1995.
Hunter, R.: "The Design and Construction of Compilers" John Wiley & Sons. Chichester, 1981. Levine, J. R.; Mason, T.; Brown, D.: "Lex & Yacc" O'Reilly. California. 1992.