Disciplina: Teoria das Linguagens e Compiladores

Área Científica:

Informática

HORAS CONTACTO:

80 Horas

NÚMERO DE ECTS:

7,5 ECTS

IDIOMA:

Português

Objetivos Gerais:

1 - O objetivo geral é a apresentação e estudo de métodos, técnicas e ferramentas de compiladores.
2 - Os objetivos específicos são: trabalhar com linguagens, gramáticas, conjuntos, expressões e autómatos.
3 - Efetuar o reconhecimento determinista de linguagens.
4 - Construir um analisador léxico e sintático.
5 - Adquirir alguns conhecimentos teóricos sobre a análise semântica e a geração de código.

Conteúdos / Programa:

1 - Introdução à teoria das linguagens.
2 - Propriedades de conjuntos regulares.
3 - Linguagens independentes do contexto.
4 - Autómatos de pilha.
5 - Reconhecimento determinista de linguagens.
6 - Analisadores léxico e sintático.
7 - Análise semântica. Geração de código.

Bibliografia / Fontes de Informação:

Francisco Miguel Dionísio , Folhas de apoio à disciplina de Compiladores ,
Alfred Aho, Ravi Sethi e Jeffrey Ullman , Compilers: Principles, Technics and Tools , Addison-wesley
John E. Hopcroft, Rajeev Motwani e Jeffrey Ullman , Introduction to Automata theory, Languages and Computation (Second Edition) , Addison-wesley
Louden, Kenneth C. , Compiler Construction: Principles and Practice ,
Rui Gustavo Crespo , Processadores de Linguagens, da Concepção à Implementação , IST Press
Vern Paxson , Flex- Fast Lexical Analyzer Generator , Lawrence Berkeley Laboratory
Charles Donnely e Richard Stallman , Bison- The YACC-Compatible Parser Generator ,

Métodos e Critérios de Avaliação:

Tipo de Classificação: Quantitativa (0-20)

Metodologia de Avaliação:
Aulas expositivas. Aulas dedicadas à resolução de problemas. Trabalho prático em computador. Trabalho em equipa. Critérios de avaliação: Dois testes a resolver individualmente, e um projeto a desenvolver em grupo. No final do projeto decorre uma prova oral, individual. Existe recurso, na época respetiva, de qualquer um dos dois testes, mas não do projeto. A ponderação na avaliação é de 35% para cada teste e de 30% para o projeto