| |
Análise e Transformação de Software
Programa Resumido
- Análise de programas:
- Extracção de dados
- Armazenamento da informação recolhida
- Exploração do conhecimento.
- Transformação de programas:
- Programação estratégica.
- Técnicas de Slicing.
- Especialização de programas e cálculo parcial.
- Paradigmas para visualização de dados e de conhecimento:
- visualização de informação, de dados e de software.
- modelos de visualização.
- visualização/navegação em árvores, grafos, hiper-cubos, petri-nets.
- visualização/navegação em ontologias.
- animação de algoritmos.
Resultados de Aprendizagem Específicos
- Capacidade de construir front-ends poderosos para a análise de linguagens de programação (ambíguas ou não).
- Capacidade de desenvolver software como uma tarefa de transformar programas e/ou especificações em implementações eficientes.
- Capacidade de utilizar métricas e técnicas de transformação de programas para optimizar programas (e.g. cálculo parcial, detecção de código morto), efectuar debugging de programas (e.g. slicing), melhorar a estrutura dos programas (e.g. refactoring).
- Capacidade de definir testes para software e testar automaticamente programas em diferentes linguagens de programação.
- Capacidade para criar representações visuais adequadas à compreensão clara do conhecimento complexo detido.
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
- Flemming Nielson, Hanne Riis Nielson, Chris Hankin, "Principles of Program Analysis. Springer, 452 pages, ISBN 3-540-65410-0, 2005.
- 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
- Terrence Par, The Definitive Antlr Reference: Building Domain-Specific Languages, The Pragmatic Bookshelf, 2007
|
|
 Copyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding TWiki? Send feedback
|
|
| |