Engenharia de Linguagens

Engenharia de Linguagens (2010/11)

Análise e Transformação de Software

Sumários

27 de Setembro de 2010

  • A. Apresentação da disciplina
    • I.1 Introdução e Motivação para a área de Análise e Transformação de SW.

11 de Outubro de 2010

  • Resolução do Exercício 1 sobre Gramáticas, GIC e GT (enunciado descrito nas Fichas Práticas de Engenharia Gramatical).

18 de Outubro de 2010

  • Continução da Resolução do Exercício 1 sobre Gramáticas, GIC e GT (enunciado descrito nas Fichas Práticas de Engenharia Gramatical).

25 de Outubro de 2010

  • Continução da Resolução do Exercício 1 sobre Gramáticas, agora para introdução às GA e à ferramenta Silver (enunciado descrito nas Fichas Práticas de Engenharia Gramatical; e conteúdo da aula descrito no Módulo de EG (sumários)).

08 de Novembro de 2010

  • Resolução do Exercício 2 sobre Gramáticas, para introdução às GA e à ferramenta Silver (enunciado descrito nas Fichas Práticas de Engenharia Gramatical; e conteúdo da aula descrito no Módulo de EG (sumários)).

15 de Outubro de 2010

  • Continuação da introdução às GA, às árvores de sintaxe abstrata (AST) e à ferramenta Silver, agora com um novo exemplo da calculadora de expressões "dc -- desktop calculator languag" (conteúdo da aula descrito no Módulo de EG (sumários)).

22 de Novembro de 2010

  • Não dei aula por estar na Universidade Nacional de SanLuis? , Argentina, no contexto da visita anual do projecto de cooperação bilateral Quixote (aula dada por JGR, a compensar ainda em dezembro).

29 de Novembro de 2010

  • Não dei aula por estar na Universidade Nacional de SanLuis? , Argentina, no contexto da visita anual do projecto de cooperação bilateral Quixote (aula dada por JGR, a compensar ainda em dezembro).

06 de Dezembro de 2010

  • Resolução do Exercício 3 sobre Linguagens e Gramáticas, para sedimentar os conhecimentos já introduzidos sobre GAs. Análise da estrutura fisica de uma factura para escolha dos simbolos não-terminais e terminais e dos atributos que permitam descrever o processamento que traduza a semântica desejada; construção das variantes linguisticas pedidas por extensão ou adaptação da gramática; definição das regras para cálculo dos atributos sintetizados.

  • Continuação da discussão sobre ferramentas para geração de processadores de linguaguens como o sistema Silver, o LISA ou o AnTLR --- a linguagem de programação para escrita das regras de cálculo dos atributos: escolha entre uma linguagem própria e específica ou uma GPL (General Purpose Language), vantagens e inconvenientes.

13 de Dezembro de 2010

  • Introdução à ferramenta para geração de processadores de linguaguens AnTLR --- filosofia geral, alguma regras básicas e as funcionalidades do ambiente de desenvolvimento AnTLRWorks. Utilização do Exercício 2 sobre Linguagens e Gramáticas (a linguagem Lisp e as SExpressions), para sedimentar os conhecimentos já introduzidos sobre GAs e para explicar o uso do AnTLR.

03 de Janeiro de 2011

  • Introdução à ferramenta para geração de processadores de linguaguens AnTLR (cont.) --- alguma regras básicas e as funcionalidades do ambiente de desenvolvimento AnTLRWorks. Utilização do Exercício 3 sobre Facturas para sedimentar os conhecimentos já introduzidos sobre GAs e para explicar o uso do AnTLR.

10 de Janeiro de 2011

  • Introdução à ferramenta para geração de processadores de linguaguens AnTLR (cont.) --- alguma regras básicas e as funcionalidades do ambiente de desenvolvimento AnTLRWorks. Desenvolvimento de um compilador para uma linguagem de cálculo de expressões, para sedimentar os conhecimentos já introduzidos sobre GAs e para explicar o uso do AnTLR.

17 de Janeiro de 2011

  • Introdução à ferramenta para geração de processadores de linguaguens AnTLR (cont.) e ao ambiente de desenvolvimento AnTLRWorks; sedimentação dos conhecimentos já introduzidos sobre GAs.

  • Cont. do Desenvolvimento de um compilador para uma linguagem de cálculo de expressões: escolha dos atributos herdados e sintetizados para análise semântica estática---construção da TabId por recolha dos pares <identificador,tipo>; verificação de re-declarações; type-checking .

** 2º SEMESTRE ***

21 de Fevereiro de 2011

  • A ferramenta para geração de processadores de linguaguens AnTLR e o ambiente de desenvolvimento AnTLRWorks.

  • Sedimentação dos conhecimentos já introduzidos sobre GAs e introdução aos exercícios sobre Análise de Programas---enunciado do problema para as próximas aulas: análise de programas em LogoLISS; escrita de um programa para transporte da gramática Yacc para AnTLR.

  • Cont. do Desenvolvimento de um compilador para uma linguagem de cálculo de expressões: escolha dos atributos herdados e sintetizados para análise semântica estática---construção da TabId por recolha dos pares <identificador,tipo>; verificação de re-declarações; type-checking .

28 de Fevereiro de 2011

  • Apresentação teórico-prática do trabalho de mestrado do Hugo Areias: retargetting da ferramenta AnTLR de modo a gerar Processadores de Linguagens em Perl --- o problema, a estratégia (ou o caminho) seguido, os resultados atingidos.

  • Discussão da forma como usar Perl para se comportar como o Java (a run-time Library).

07 de Março de 2011

  • Não houve aula --- 2ªf de Entrudo.

14 de Março de 2011

  • A ferramenta para geração de processadores de linguaguens AnTLR e o ambiente de desenvolvimento AnTLRWorks.

  • Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita de um programa para transporte da gramática Yacc para AnTLR.

21 de Março de 2011

  • Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita de um programa para transporte da gramática Yacc para AnTLR (cont. do projeto).

28 de Março de 2011

  • Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita da gramática AnTLR e eliminação de conflitos (cont. do projeto).

04 de Abril de 2011

  • A ferramenta para geração de processadores de linguaguens AnTLR e o ambiente de desenvolvimento AnTLRWorks: introdução aos construtores para criar árvores de sintaxe abstrata com atributos (AST) e para sua manipulação; filosofia de trabalho usando o par "grammar / tree-grammar".

  • Cont. do projeto para Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita da gramática AnTLR e eliminação de conflitos (cont. do projeto).

11 de Abril de 2011

  • Cont. do projeto para Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita da gramática AnTLR e eliminação de conflitos (cont. do projeto); definição de atributos para construção da Tabela de Identificadores (definição da sua estrutura em termos genéricos).

  • a noção de Bloco e do Nível de aninhamento; o âmbito de validade das declarações (scope) e as regras de visibilidade.

18 de Abril de 2011

  • Não houve aula --- férias de Páscoa.

25 de Abril de 2011

  • Não houve aula --- feriado nacional comemorativo da Revolução dos Cravos.

02 de Maio de 2011

  • Aula usada para apresentação e avaliação parcial do Projeto Integrado (PI) -- 3ª fase (apresentação teórica).

09 de Maio de 2011

  • Cont. do projeto para Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita da gramática AnTLR e eliminação de conflitos (cont. do projeto); definição de atributos para construção da Tabela de Identificadores (definição da sua estrutura em termos genéricos) --- exploração das facilidades do AnTLR para construir e manipular AST; discussão da solução seguida por alguns dos grupos.

16 de Maio de 2011

  • Cont. do projeto para Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; escrita da gramática AnTLR e eliminação de conflitos (cont. do projeto); definição de atributos para construção da Tabela de Identificadores (definição da sua estrutura em termos genéricos) --- exploração das facilidades do AnTLR para construir e manipular AST; discussão da solução seguida por alguns dos grupos.

23 de Maio de 2011

  • Cont. do projeto para Sedimentação dos conhecimentos já introduzidos sobre GAs e exercícios sobre Análise de Programas: análise de programas em LogoLISS; exploração das facilidades do AnTLR para construir e manipular AST; discussão da solução seguida por cada grupo.
Exemplo de manipulação de Árvores em AnTLR

30 de Maio de 2011

  • Manhã totalmente dedicada ao projeto integrado (PI).

06 de Junho de 2011

  • Manhã parcialmente dedicada ao fecho de EG e ao projeto integrado (PI).

13 de Junho de 2011

Fecho da Disciplina, Balanço final:

  • Análise, Representação Intermédia (tabela de identificadores, árvore de sintaxe (decorada com atributos), grafos de fluxo e de dependências), Estratégias de Travessia e Transformações.

  • Análise Estática versus Análise Dinâmica; Instrumentação de Código e Inspétores.

  • Slicing: conceito e definição; estático versus dinâmico; sintático versus semântico; aplicações tradicionais e novas aplicações (verificação de programas anotados com contratos); Slicing de código fonte e de código intermédio e slicing de outras linguagens; slicing de documentos XML.


r26 - 19 Jun 2011 - 05:38:30 - 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