Introdução ao desenvolvimento de Filtros de Texto recorrendo a
Geração Automática de um Reconhecedor de Expressões Regulares, baseado num
Autómato Determinista Reactivo, com recurso à Ferramenta Flex.
Resolução dos exercícios da Ficha TP n.º 1 (parte 1),
com vista à geração de programas autónomos para Filtragem de Textos.
Resumo:
Resolução de exercícios da ficha 1 sobre filtros de texto (Processador de Questionários,
Expansor de abreviaturas, Normalização de Emails) utilizando a ferramenta FLex.
No final desta aula os alunos, devem ficado a saber especificar expressões regulares em FLex e a
definir acções semânticas associadas às expressões regulares.
Introdução a Análise Léxica:
desenvolvimento de um Analisador Léxico (AL) para reconhecimento de todos os símbolos terminais de uma Linguagem,
dada a respectiva GIC, fazendo a Geração Automática de um Reconhecedor de Expressões Regulares baseado num
Autómato Determinista Reactivo, com recurso à Ferramenta Flex.
Resolução dos exercícios da Ficha TP n.º 1 (parte 2),
com vista à geração de Analisadores Léxicos (AL) que funcionam ligados a um Parser externo.
Resumo:
Resolução de exercícios da ficha 1 sobre analisadores léxicos (Máquina de Venda de Chocolates
e parte do Anuário dos Medicamentos Brancos) utilizando a ferramenta FLex.
No final desta aula os alunos devem ter recordado a definição de gramáticas para uma dada linguagem,
e ficado a saber reconhecer os símbolos terminais que lhe estão associados, tendo-os especificado em FLex associando-lhes
acções semânticas.
Gramáticas: escrita de uma Gramática Independente de Contexto (GIC) face à descrição da linguagem pretendida no contexto de
determinado problema.
Análise Sintáctica: Desenvolvimento de um Analisador Sintáctico (Parser)
para reconhecimento e validação estrutural das frases de uma Linguagem,
dada a respectiva GIC, fazendo a sua Geração Automática com recurso à Ferramenta Yacc.
Resolução dos exercícios da Ficha TP n.º 2
com vista à geração de um parser LR() que só faz a validação da frase.
Resumo:
Continuação da resolução de exercícios da ficha 1 sobre analisadores léxicos
(Anuário dos Medicamentos Brancos e Documento anotado em XML) utilizando a ferramenta FLex.
Gramáticas: escrita de uma Gramática Independente de Contexto (GIC) face à descrição da linguagem pretendida no contexto de
determinado problema.
Análise Sintáctica: Desenvolvimento de um Analisador Sintáctico (Parser)
para reconhecimento e validação estrutural das frases de uma Linguagem,
dada a respectiva GIC, fazendo a sua Geração Automática com recurso à Ferramenta Yacc.
Análise Semântica: Desenvolvimento de um Analisador Semântico e Tradutor
para validação semântica das frases de uma Linguagem e seu processamento (transformação),
de acordo com a respectiva Gramática Tradutora (GT),
fazendo a sua Geração Automática com recurso de novo à Ferramenta Yacc.
Continuação da resolução dos exercícios da Ficha TP n.º 2
com vista à geração de processadores de linguagens guiados por um parser LR().
Resumo:
Resolução de um exercício típico completo, de modo a ilustrar a escrita de uma GIC em notação
do Yacc para a geração automática de um Parser Bottom-Up e a sua ligação ao código do Analisador
Léxico (função yylex()) gerado pelo Flex; integração de Acções Semânticas na GIC para
geração de um Tradutor Dirigido pela Sintaxe.
Pode obter, nos links seguintes, o
código Yacc
o
código Flex
e um
teste
relativos a este 1º exercício introdutório.
Resolução parcial do exercício 1 da ficha 2 (cálculo de atributos associados a algumas produções da
gramática --- valor total de dinheiro na máquina de venda de chocolates).
Pode obter, em anexo, o
código Yacc
o
código Flex
e um
teste
relativos a este exercício sobre a MVC.
Gramáticas: escrita de uma Gramática Independente de Contexto (GIC) face à descrição da linguagem pretendida no contexto de
determinado problema.
Análise Sintáctica: Desenvolvimento de um Analisador Sintáctico (Parser)
para reconhecimento e validação estrutural das frases de uma Linguagem,
dada a respectiva GIC, fazendo a sua Geração Automática com recurso à Ferramenta Yacc.
Análise Semântica: Desenvolvimento de um Analisador Semântico e Tradutor
para validação semântica das frases de uma Linguagem e seu processamento (transformação),
de acordo com a respectiva Gramática Tradutora (GT),
fazendo a sua Geração Automática com recurso de novo à Ferramenta Yacc.
Continuação da resolução dos exercícios da Ficha TP n.º 2
com vista à geração de processadores de linguagens guiados por um parser LR().
Resumo:
Resolução do exercício 2 da Ficha 2 relativo ao Anuário de Medicamentos Brancos.
Solidificação de conhecimentos em Yacc: construção da gramática do exercício em causa;
utilização de diferentes atributos de diferentes tipos a um só símbolo (utilização de structs)
para a produção de uma página HTML com os medicamentos do anuário.
Pode obter, nos links seguintes, o
código Yacc
o
código Flex
e um
teste
relativos a este exercício.
Consolidação de conhecimentos relativos às aulas teóricas:
gramática LL(1), Lookeahead, First e Follow; algoritmo para a construção da tabela de decisão LL(1).
Resolução do exercício 1 da Ficha 4 relativo ao "Horto de Braga": cálculo dos Lookahead
das produções da gramática e construção da respectiva tabela de decisão LL(1).
Gramáticas: Análise de Gramáticas com vista à construção das Tabelas de Parsing LL -- parsing Top-Down;
verificação da Condição LL(1).
Cálculo do First(1), Follow(1) e LookAhead(1)
Continuação da Resolução dos exercícios da Ficha TP n.º 4.
Resumo:
Consolidação de conhecimentos relativos às aulas teóricas:
gramática LL(1), Lookeahead, First e Follow; algoritmo para a construção da tabela de decisão LL(1).
Nesta semana as aulas foram totalmente ocupadas com a discussão do 1º TP junto de cada Grupo de Alunos;
análise dos relatórios e da execução do programa entregue.
Procedeu-se à respectiva avaliação e publicação da pauta.
Gramáticas: Análise de Gramáticas com vista à construção das Tabelas de Parsing LL -- parsing Top-Down;
verificação da Condição LL(1).
Cálculo do First(1), Follow(1) e LookAhead(1)
Conclusão da Resolução dos exercícios da Ficha TP n.º 4
relativos ao algoritmo de parsing TD e à verificação da condição LL(1).
Resumo:
Consolidação de conhecimentos relativos às aulas teóricas:
gramática LL(1), Lookeahead, First e Follow; algoritmo para a construção da tabela de decisão LL(1).
Resolução do exercício 1 da ficha 5 (gerador de índices remissivos).
Uso de atributos herdados e sintetizados na implementação da gramática.
Pode obter, nos links seguintes, o
código LISA
e um
teste
relativos a este exercício.
Resolução do exercício 3 da ficha 5 (linguagem de programação nLP).
Uso de atributos herdados e sintetizados na implementação da gramática.
Pode obter, nos links seguintes, o
código LISA
e um
teste
relativos a este exercício.