Engenharia de Linguagens

Engenharia de Linguagens (2010/2011)

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.


r3 - 03 Sep 2011 - 14:49:02 - PedroRangelHenriques
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM