Engenharia Gramatical 
 Programa Resumido 
 
-  1.Linguagens e Gramáticas; Caracterização destes conceitos e domínios do saber.
-  2. Conceitos sobre Gramáticas de Atributos (GA); definição formal; desenvolvimento de GAs (aproximação monolítica versus modular, incremental).
-  3. Processamento de Linguagens baseado em GAs (tradução dirigida pela semântica). 
-  3.1 Notações gramaticais;
-  3.2 Geração de Programas (processadores de Linguagens, protótipos rápidos) a partir de GAs.
 
-  4. O paradigma da Programação baseada em Gramáticas (PG).
-  5. Qualidade de Linguagens; dimensões de avaliação e definição; critérios.
-  6. Qualidade de Gramáticas; dimensões de avaliação e definição; critérios. 
-  6.1 Métricas para Avaliar a Qualidade das Gramáticas, quer enquanto formalismo de especificação e geração de linguagens, quer enquanto suporte à geração de programas.
 
-  7. Ambientes para Manipulação de Gramáticas.
 Resultados de Aprendizagem Específicos 
 
-  Capacidade para desenvolver especificações da sintaxe/semântica de linguagens e problemas em geral com gramáticas de atributos.
-  Capacidade para gerar programas (protótipos) usando ferramentas automáticas baseadas em gramáticas de atributos.
-  Capacidade para gerar ou utilizar ambientes de desenvolvimento estruturais e orientados à semântica.
-  Capacidade para discutir a qualidade de Linguagens e Gramáticas,
-  Capacidade para medir Gramáticas e avaliar a sua qualidade.
-  Capacidade para desenvolver ambientes para Manipulação de Gramáticas.
 Metodologia de Ensino e Avaliação 
 
-  As aulas de 2h tem sempre um cariz teórico-prático. Em cada aula: 
-  no início é sempre feito um balanço da aula anterior e discutidos os trabalhos ou questões propostos;
-  depois algum tempo é dedicado a levantar questões teóricas e a apresentar as diferentes aproximações e metodologias que suportam a sua resolução; esta parte, embora de carácter teórico, desenvolve-se sempre em forma de diálogo com os alunos.
-  continua-se a aula numa parte mais prática em que os alunos são convidados a pesquisar e fazer uma sintese do que há já escrito sobre o assunto; ou então a desenvolver experimentação de ferramentas ou implementação de algorimtos.
 
-  A avaliação é feita com base em trabalhos entregues  pelos alunos, resolvidos foras das aulas mas defendidos perante a turma. Os trabalhos para avaliação são de dois tipos:   
-  monografias, com sinteses dos temas pesquisados; 
-  trabalhos de implementação.
 
 Bibliografia recomendada 
 
-  Aho & Sethi & Ullman, "Compiler Principles, Techniques and Tools", Addison-Wesley, 1986.
-  Pittman & Peters, "The Art of Compiler Design: theory and pratice", Prentice-Hall, 1992.
-  Waite & Carter, "An Introduction to Compiler Construction", HarperCollin?  College Publishers, 1993.
-  James F. Power and Brian A. Malloy, "A metrics suite for grammar-based software". Journal of Software Maintenance and Evolution: Research and Practice, Vol 16, Nº 6, pp 405-426, 2004.
-  Julien Cervelley, Matej Crepin¨ek, Rémi Foraxy, Toma¸ Kosar, Marjan Mernik and Gilles Roussel, "On Defining Quality Based Grammar Metrics". Proceedings of the International Multiconference on Computer Science and Information Technology, pp. 651–658, 2009.
-  Tiago Alves and Joost Visser, "A Case Study in Grammar Engineering". Lecture Notes in Computer Science, Volume 5452/2009, pp 285-304, 2009.
-  John M. Roche, "Software metrics and measurement principles", SIGSOFT Softw. Eng. Notes, ACM, volume 19, number 1, 1994.
-  Tom Mens, Serge Demeyer,  "Future trends in software evolution metrics", Proceedings of the 4th International Workshop on Principles of Software Evolution, ACM, 2001.
-  Norman Fenton, Martin Nail, "Software metrics: roadmap", Proceedings of the Conference on The Future of Software Engineering, ACM 2000.