Bibliografia | Pedro Reis Santos & Thibault Langlois, "Compiladores – Da Teoria à Prática", FCA, 2014. R. G. Crespo, "Processadores de Linguagens: da concepção à implementação", IST-Press, 1998. Aho & Sethi & Ullman, "Compiler Principles, Techniques and Tools", Addison-Wesley, 1986. William Waite & Carter, "An Introduction to Compiler Construction", HarperCollin College Publishers, 1993. Dick Grune & Kees van Reeuwijk & Henri E. Bal & Ceriel J.H. Jacobs & Koen Langendoen, "Modern Compiler Design", 2nd. edition, Springer, 2012. |
Resultados da aprendizagem | - Especificar linguagens de domínio específico através de gramáticas; - Desenvolver processadores para essas linguagens com base na respetiva gramática; - Extrair dados de um texto com base em regras de produção (padrão-ação) baseadas em expressões regulares; - Transformar qualquer texto num outro formato com base em regras de produção (padrão-ação) baseadas em expressões regulares; - Usar programas que produzem programas com base em especificações formais (geradores de analisadores léxicos e de compiladores); - Adquirir conhecimentos sobre autómatos como modelos formais de máquinas de estado e base de reconhecedores de frases guiados por tabela; - Utilizar ferramentas genéricas de informática em ambiente Linux baseadas em expressões regulares, em grafos ou outras. |
Método de avaliação | A avaliação da aprendizagem envolve: um trabalho de desenvolvimento experimental, a realizar em grupo, consubstanciando uma componente de carácter individual. Tanto a componente individual (teste ou exame) como a componente de grupo (trabalhos práticos) têm limite de execução temporal bem definido, nunca excedendo o período lectivo. A classificação final é dada na forma: - 40% da classificação provém da componente prática de grupo; - 60% da classificação provém da componente individual sendo obrigatório ter classificação positiva em todos os instrumentos de avaliação. |