Processamento de Linguagens I
Ano Lectivo: 05/06 (2º semestre)
Sumário das Aulas Teóricas (LESI+LMCC)
Docente: Pedro Rangel Henriques (406012)
Aula T de 2006/02/22
(aula dada por José João Almeida)
Tópicos:
- Apresentação da Disciplina:
- Objectivos e Funcionamento;
- Avaliação e Trabalhos Práticos;
- Programa e Bibliografia
- Introdução ao tema Processamento de Linguagens
Aula T de 2006/02/27
(aula dada por José João Almeida)
Tópicos:
- Introdução ao tema Processamento de Linguagens (cont.)
Aula T de 2006/03/01
(aula dada por José João Almeida)
Tópicos:
- Gramáticas:
- Gramática Independente de Contexto (GIC) e a definição da sintaxe, ou estrutura, de uma Linguagem;
- Gramática Tradutora (GT) e a definição da semântica, ou do conteúdo, de uma Linguagem por adição de Acções Semânticas às produções;
Aula T de 2006/03/06
(aula dada por José João Almeida)
Tópicos:
- Gramáticas e Métodos de Tradução:
- Tradução Dirigida pela Sintaxe versus Tradução Dirigida pela Semântica;
o papel da Grmática Tradutora e da Gramática de Atributos (GA);
- Exemplificação da ideia através do caso de uma Calculadora.
Aula T de 2006/03/08
(aula dada por José João Almeida)
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Top-Down: algoritmo Recursivo-Descendente (RD) puro.
Aula T de 2006/03/13
(aula dada por José João Almeida)
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Top-Down: algoritmo Recursivo-Descendente (RD) genérico baseado na Tabela de Decisão.
Aula T de 2006/03/15
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Top-Down:
revisão de todos os problemas, soluções e conceitos introduzidos nas últimas aulas.
Aula T de 2006/03/20
Tópicos:
- Análise Semântica: o princípio geral -- definição do estado de conhecimento (significado do texto-fonte) que
é necessário para produzir a saída; que variáveis devem implementar com eficiência as estruturas de dados que
constituem o dito estado; como calcular esse estado a partir do texto-fonte durante a análise sintáctica
(segundo a abordagem TDS ao processamento de linguagens).
Aula T de 2006/03/22
Tópicos:
- Análise Semântica: a implementação da abordagem TDS baseada na especificação através de uma
Gramática Tradutora e do princípio geral apresentado na última aula recorrendo
aos módulos de análise e tradução gerados pelo Flex e pelo Yacc.
-
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: introdução a esta estratégia -- apresentação do princípio geral desta abordagem guiada por um
autómato determinista com memória, por comparação com o algoritmo iterativo LL(1) baseado na Tabela de Decisão.
Aula T de 2006/03/27
Tópicos:
- Análise Semântica: a implementação da abordagem TDS baseada na especificação através de uma
Gramática Tradutora e do princípio geral apresentado, recorrendo
aos módulos de análise e tradução gerados pelo Flex e pelo Yacc.
-
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: introdução a esta estratégia -- apresentação do princípio geral e do algoritmo iterativo LR
baseado na Tabela de Decisão.
Aula T de 2006/03/29
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: introdução à construção do autómato de reconhecimento LR -- o conceito de estado, de item LR
e das acções de transição e redução associadas.
Aula T de 2006/04/03
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: construção completa do autómato de reconhecimento LR para uma GIC dada como exemplo;
identificação de conflitos LR(0) de transição-redução e redução-redução.
Aula T de 2006/04/05
Tópicos:
- Não houve aula: participei como organizador na jornadas de informática JOIN2006
Aula T de 2006/04/10
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: construção do autómato de reconhecimento LR para uma outra GIC dada como exemplo;
identificação de conflitos LR(0) de transição-redução e redução-redução e resolução com a estratégia SLR(1)
Aula T de 2006/04/12
Tópicos:
- Tratamento de Erros num Processador de Linguagens:
- Detecção (processo inerente a qualquer fase de análise);
- Sinalização (a estrutura de uma msg de erro e a sua produção)
- Correcção e Recuperação do Erro
Aula T de 2006/04/19
Tópicos:
- Gramáticas:
- Gramática de Atributos (GA) e a definição da sintaxe e da semântica de uma Linguagem:
apresentação do conceito e definição formal dos seus elementos; exemplo de uma lista com atributos sintetizados.
Aula T de 2006/04/24
Tópicos:
- Gramáticas:
- Gramática de Atributos (GA) e a definição da sintaxe e da semântica de uma Linguagem:
definição formal dos seus elementos, em particular introdução ao conceito de Atributo Herdado e
de Atributo Sintetizado; exemplos -- lista com atributos herdados e os blocos de declaraçoes e de instruções de um programa.
Aula T de 2006/04/26
Tópicos:
- Análise Sintáctica, ou Parsing:
- Análise Bottom-Up: conclusão do assunto com a apresentação e discussão detalhada do algoritmo iterativo genérico
de Parsing BU guiado por uma tabela LR(0) ou SLR(1).
Aula T de 2006/05/03
Tópicos:
- Gramáticas:
- Gramática de Atributos (GA) e a definição da sintaxe e da semântica de uma Linguagem:
reforço da definição formal dos seus elementos, em particular introdução ao conceito de Atributo Herdado e
de Atributo Sintetizado.
Aula T de 2006/05/08
Tópicos:
- Gramáticas:
- Gramática de Atributos (GA) e a definição da sintaxe e da semântica de uma Linguagem:
balanço final e revisão do conceito geral, com particular incidência na da definição formal dos seus elementos,
e ênfase nos conceitos de Atributo Herdado e Atributo Sintetizado.
- Compiladores:
- Compilador como caso específico de um Processador de Linguagens que recebe à entrada um programa de computador
escrito numa Linguagem de Programação de Alto-nível e gera, à saída, Código-Binário, ou Assembly, da Máquina-destino:
as operações especiais de \emph{selecção}, \emph{gestão de registos} e \emph{optimização}.
Aula T de 2006/05/10
Tópicos:
- Compiladores:
- Compilador como caso específico de um Processador de Linguagens que recebe à entrada um programa de computador
escrito numa Linguagem de Programação de Alto-nível e gera, à saída, Código-Binário, ou Assembly, da Máquina-destino:
as operações especiais de \emph{selecção}, \emph{gestão de registos} e \emph{optimização}.
- A alteração da Máquina-destino e a necessidade/dificuldade de fazer o re-targeting;
introdução ao conceito de Máquina Virtual e sua vantagem para resolver esse problema.
Aula T de 2006/05/22
Tópicos:
- Compiladores:
- Compilador como caso específico de um Processador de Linguagens que recebe à entrada um programa de computador
escrito numa Linguagem de Programação de Alto-nível e gera, à saída, Código-Binário, ou Assembly, da Máquina-destino:
as operações especiais de \emph{selecção}, \emph{gestão de registos} e \emph{optimização}.
- Introdução ao conceito de Máquina Virtual: ideia geral e princípio da Máquina de Stack;
algoritmo básico; arquitectura e conjunto de Instruções -- o caso da MSP.
Aula T de 2006/05/24
Tópicos:
- Compiladores:
- Compilador como caso específico de um Processador de Linguagens que recebe à entrada um programa de computador
escrito numa Linguagem de Programação de Alto-nível e gera, à saída, Código-Binário, ou Assembly, da Máquina-destino:
as operações especiais de \emph{selecção}, \emph{gestão de registos} e \emph{optimização}.
- Introdução ao conceito de Máquina Virtual: ideia geral e princípio da Máquina de Stack;
algoritmo básico; arquitectura e conjunto de Instruções -- o caso da VM.
Aula T de 2006/05/29
Tópicos:
- Compiladores:
- Continuação da apresentação do conceito de Máquina Virtual e do estudo do caso concreto da VM:
arquitectura específica, princípio de funcionamento e conjunto de Instruções.
Aula T de 2006/05/31
(aula de substituição (fui ao ISEP representar a APPIA na comemoração dos 50 anos de IA) dada pelo Tiago Alves)
Tópicos:
- Avaliação da Disciplina.
- Discussão de dúvidas sobre o 2º TP e definição das datas e mecanismo de avaliação
(ver rubrica AVISOS na página principal da disciplina).
author: prh@di.uminho.pt;
Last modified: 05 de Junho de 2006