Engenharia Linguagens

Engenharia de Linguagens

Análise e Transformação de Software

Sumários

03 de Março de 2008

  • I.1 Introdução e Motivação para a área de Análise e Transformação de SW; sua inserção no contexto da Engenharia de Software:
    • noção de análise de código-fonte (outras hipóteses para análise de código intermédio ou máquina);
    • avaliação do software analisado -- métricas;
    • transformação como meio para melhorar o software avaliado.
  • I.2 As quatro grandes componentes envolvidas na disciplina:
    • extracção de informação do código (fase de análise);
    • armazenamento da informação extraída;
    • visualização (paradigmas/exemplos);
    • transformação.
  • I.3 Apresentação de 2 ferramentas, desenvolvidas no seio do gEPL, para análise e visualização de código-fonte (de programas ou de documentos anotados):

10 de Março de 2008

  • S. Introdução ao Slicing, técnicas, exemplos e implementação.
    • S.1 o que é o Slicing, as estratégias Backward versus Forward, e Estático versus Dinâmico.
    • S.2 como se usa, para que serve; apresentação de 2 ferramentas HSlicer e CodeGenie.
    • S.3 como se implementa; descrição da ferramenta Holmes, um slicer de wsHaskell para reconstrução do Modelo de Interacção de uma aplicação.

  • CS. Definição e escolha de casos-de-estudo (Case-Studies) de ATS; Implementação.
    • CS.1 Apresentação de 2 casos de estudo (ver Fichas Práticas 1 e 2) com o intuito de reflectir sobre todo o processo de Análise, Representação Interna, eventual visualização e Transformação e criar uma bancada de trabalho que suporte futuros desenvolvimentos mais específicos nesta área.
    • CS.2 Início da implementação do CS da Ficha 1, usando o Gerador LISA.

31 de Março de 2008

  • S. Introdução ao Slicing, técnicas, exemplos e implementação.
    • S.2 Resolução de 1 ou 2 exercícios concretos usando a ferramenta CodeGenie:
      • a) Dado um Diagrama de Classes (DC) em UML estendido com restrições (p.ex. OCL) e um conjunto de Testes para esse Sistema, pretende-se encontrar a respectiva implementação, usando CodeGenie, para depois avaliar o Modelo recorrendo às métricas incorporadas no Eclipse.
      • b) Dado um conjunto de testes para a operação de Travessia de uma Árvore Binária, pretende-se estudar a forma de escolher a melhor solução encontrada e proposta pelo CodeGenie.
      • c) Dado um conjunto de testes para a operação de Reconhecimento de Expressões Regulares, pretende-se estudar a forma de escolher a melhor solução encontrada e proposta pelo CodeGenie.
    • S.3 Métricas: plugin de métricas para o Eclipse.

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Análise e implementação do CS da Ficha 1, usando o Gerador AnTLR.

07 de Abril de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Análise e implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Definição da subgramática da Linguagem SQL a considerar na versão SQL1.
      • Criação de um Parser em AnTLR-Works para SQL1; análise da gramática e testes de parsing.
      • Construção da àrvore de Sintaxe Abstracta para armazenar a informação correspondente ao programa-fonte a ser transformado.
      • Estudo da facilidade StringsTemplate para geração da saída.

14 de Abril de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Continuação das experiências com o StringsTemplate para geração da saída.
      • Detecção na AST dos padrões a transformar.

21 de Abril de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Detecção na AST dos padrões a transformar.
      • Geração, na saída, do programa-final em SQL2.

28 de Abril de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Sistematização do uso de Gramáticas e Árvores em AnTLR e das várias operações aobre a AST.
      • Geração de diversos formatos para a árvore na saída (à la Lisp e Indentada).
      • Uso de variáveis globais e uso de atributos.

05 de Maio de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Sistematização do uso de Gramáticas e Árvores em AnTLR e das várias operações aobre a AST.
      • Geração de diversos formatos para a árvore na saída (à la Lisp e Indentada).
      • Uso de variáveis globais e uso de atributos.

12 de Maio de 2008

  • Enterro da Gata (dispensa de aulas).

19 de Maio de 2008

  • Doutoramento da Alberto.

26 de Maio de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Sistematização do uso de Gramáticas e Árvores em AnTLR e das várias operações aobre a AST.
      • Geração de diversos formatos para a árvore na saída (à la Lisp e Indentada).
      • Uso de variáveis globais e uso de atributos.

02 de Junho de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.2 Implementação do CS da Ficha 1, usando o Gerador AnTLR:
      • Sistematização do uso de Gramáticas e Árvores em AnTLR e das várias operações aobre a AST.
      • Detecção de Padrões em Árvores.
      • Conversão de SQL1 para SQL2 substituindo o par REMOVE/INSERT por UPDATE

09 de Junho de 2008

  • CS. Casos-de-estudo de ATS; Implementação.
    • CS.3 Manipulação de uma Linguagem de Programação, usando o Gerador AnTLR:
      • Definição da estrutura da linguagem via uso de uma Gramática.
      • Construção da Tabela de Identificadores.
      • Construção do Grafo de Fluxo de Dados.

16 de Junho de 2008

23 de Junho de 2008

30 de Junho de 2008


r14 - 05 Oct 2008 - 10:35:54 - 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