Parsing LL ou LR Generalizado (estudo de sistemas como o SGLR e o HaGLR).
Aspectos quantitativos de Linguagens de Programação:
Métricas para Linguagens de Programação.
Métricas para análise de programas (e.g., detecção de código morto, clones, etc).
Transformação de programas:
Programação estratégica.
Técnicas de Slicing.
Especialização de programas e cálculo parcial.
Teste de Software.
Paradigmas para visualização de dados e de conhecimento:
visualização vs navegação.
visualização/navegação em árvores, grafos, hiper-cubos, petri-nets.
visualização/navegação em ontologias.
animação de algoritmos.
modelos de visualização, visualização com ponto de vista móvel.
Exploração de Ambientes de Trabalho usando os paradigmas explicitados nos items acima.
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 para 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.
A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula:
NF = 50% NP + 25% NT + 25% NAC
Requisitos:
NP >= 8 em cada uma das duas avaliações semestrais (20% + 30%)
NT >= 8 em cada uma das avaliações teóricas dos quatro módulos
Sendo que:
NP é a nota do trabalho prático único e anual, que integra os conhecimentos dos quatro módulos. É avaliado continuamente ao longo do semestre de acordo com pontos de controlo (ver enunciado do trabalho prático).
NT é a média dos testes escritos aos quatro módulos.
NAC é a nota de avaliação contínua, que será obtida pela participação nas aulas, e avaliação de fichas/trabalhos para casa que sejam propostas em cada módulo. A nota final é a média das avaliações contínuas dos quatro módulos.
Datas de Avaliação
Teste PED: 21 Janeiro
Teste EG: 28 Janeiro
Apresentaçoes PI: 11 Fevereiro
NOTA:
Os alunos de opção do 5 ano de LMCC e LESI terão os exames de recurso nas datas marcadas pelas direcções de curso.
o Schema ainda não está documentado (em breve...);
além de ser útil o Schema pretende ser didáctico pelo que não será de estranhar a variedade de estruturas internas utilizadas bem como a modularidade através da utilização de grupos de elementos bem como da separação do modelo do parágrafo num Schema à parte;
a instância apresentada é um manual para a redacção de relatórios utilizado na Universidade de Aveiro que eu adaptei para XML, o seu conteúdo é didáctico e apropriado ao contexto;
as versões HTML e PDF serão geradas com stylesheets construídas pelos alunos sendo que pequenos excertos serão desenvolvidos nas aulas.
Manuais
SLKoptions: Manual do Gerador de Parsers LL(k): SLK
Documentos Exemplo
lpTEMPLATE.bib: Template para Ficheiro de Bibliografia BibTeX
Com a intenção de levar os alunos a fazer um exercício de transformação de SW que os obrigue a pensar no problema, nas fases, nas estratégias e nas ferramentas -- percebendo a necessidade de fazer a análise sintatica e semantica, de construir uma representação intermédia (RI), tipo ASD+TabDefs, e de criar uma Base de Regras de Transformação e um Sistema de Reescrita de ASDs para facilitar a especificação e sistematizar a implementação -- pretende-se que crie uma ferramenta para fazer o upgrade de programas escritos em SQL1 para SQL2.
A questão está que em SQL1 não existe a instrução UPDATE TABLE para alterar um ou mais campos não-chave de um registo.
Isso leva a que a actualização é sempre feita à custa de uma remoção (REMOVE TABLE T WHERE chv="X") seguida de uma inserção (INSERT INTO TABLE T (chv="X", a1=...) ).
O upgrader a implementar deve detectar os pares (REMOVE,INSERT) e substituir por um UPDATE.
Sistematize a implemetação da sua ferramenta de modo a poder gerar automaticamente o máximo de módulos e a poder reaproveitar essas componentes para exercícios análogos.
A sua implementação deve ser, sucinta e legível.
Link útil sobre construção de árvores usando o ANTLR: Tree Construction
Configurar CLASSPATH para permitir a invocação via linha de comandos (Windows): set CLASSPATH = %CLASSPATH%;pathANTLR;pathST; onde a pathANTLR/pathST é a respectiva path para o ANTLR/StringTemplate (.jar) para onde descomprimiram a pasta.
Com a intenção de levar os alunos a sedimentar os conhecimentos base sobre análise e transformação de SW e a reutilizar a plataforma desenvolvida para resolução da Ficha I, pretende-se que crie uma ferramenta para fazer o upgrade de programas escritos em num linguagem orientada aos objectos LOO1 após a actualização de uma classe que presta serviços básicos às restantes classes da aplicação.
A questão está que em a nova versão da classe de serviços SUPORTE() introduziu um método designado por setall() que permite actualizar todos os N atributos da classe, dispensando a invocação sequencial dos métodos setAi() para actualização individual dos N atributos.
O upgrader a implementar deve detectar essa sequência de invocações individuais e substituir por uma só invocação ao novo método setall().
A sua implementação deve ser, sucinta e legível e deve reaproveitar ao máximo a bancada construída nas aulas.
Ficha III
Partindo de uma versão "light" da gramática do C, pretende-se que os alunos construam para um dado programa de entrada:
Tabela de identificadores;
Data Dependence Graph (DDG) usando a técnica de Single Static Assignment (SSA)
Ficha II: Pesquise na Internet o que há sobre Métricas para Avaliação da Qualidade em Gramáticas e Linguagens:
Escreva um pequeno relatório (bem estruturado e bem escrito) sobre o estudo feito, o que encontrou, que conclusões retira.
Ficha III: Considere como base de trabalho a Gramática do 2ºexercício da Ficha Prática 1 (Gf1.2). Então:
Faça as transformações T1 (eliminação de Produções Inúteis), T2 (alteração da linguagem em causa, cf alínea b), T3 (alteração do comprimento do RHS para mofidicar a gramática sem modificar a linguagem, cf alínea c).
Para cada caso faça a avaliação dos 8 parâmetros que medem o tamanho da gramática e classificam a sua recursividade; preencha a influência de cada uma das três transformações sobre os 5 critérios (C1.1 a C2.2) para avaliar a qualidadede uma Gramática.
Acrescente um parâmetro à tabela de modo a medir a dependência entre símbolos (medida a que Power e Malloy chamam "Fenton's Impurity").
Usando o UltraGram, calcule o tamanho do autómato (número de estados) e das tabelas de decisão; prencha a tabela das métricas, na nona linha.
Usando o SLK e depois de modificar a gramática para a transformar em LL, calcule o tamanho das tabelas de decisão; prencha a tabela das métricas, na décima linha (este parâmetro terá de ser introduzido de novo).
Ficha IV: Considere de novo a Gramática do 2ºexercício da Ficha Prática 1 (Gf1.2). Então:
Resolva a Questão 2.2 (construção de uma Gramática Tradutora), juntando a Gf1.2 as Acções Semanticas necessárias para efectuar o processamento pedido.
Resolva a Questão 2.3 (construção de uma Gramática de Atributos),juntando a Gf1.2 os Atributos, as Regras de Cálculo e as Regras de Tradução, bem como as Condições Contextuais necessárias para efectuar a transformação e as validações pedidas.
A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas-Feiras, com o seguinte horário:
08h00 - 11h00:Engenharia Gramatical, na sala 0.04 do DI
11h00 - 12h30:Projecto Integrado, na sala 0.04 do DI
14h00 - 16h00:Processamento Estruturado de Documentos, na sala 206 do CP1
16h00 - 18h30:Projecto integrado, na sala 0.04 do DI
A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas-Feiras na sala 0.04 do DI, com o seguinte horário:
08h30 - 11h30:Scripting no Processamento de Linguagem Natural
Com este projecto integrado pretende-se sedimentar os conhecimentos introduzidos nas aulas teóricas dos 4 módulos
complementares desta UCE: Engenharia Gramatical, Processamento Estruturado de Documentos, Análise e Transformação
de Software e Scripting no Processamento de Linguagem Natural.
2 Resultados da aprendizagem
No final do semestre, os alunos devem ter adquirido um conjunto de competências tecnológicas, específicas e genéricas detalhadas na rubrica ”Resultados de Aprendizagem” da página oficial da disciplina, em http://wiki.di.uminho.pt/twiki/bin/view/Mestrado/EL.
3 Organização e Funcionamento
O projecto será desenvolvido em grupos de 2, havendo 2 sessões presenciais de 1,5h por semana.
Em cada aula está presente um docente da equipa que irá esclarecendo questões específicas levantadas pelos elementos
do grupo, quer ao nível da concepção e desenho da solução, quer ao nível da sua implementação e teste.
No fim de cada semestre e no fim do ano lectivo, cada grupo apresentará à equipa docente o trabalho realizado e os resultados obtidos, devendo entregar um relatório técnico de desenvolvimento devidamente estruturado e fundamentado,
escrito em LaTeX.
Este projecto destina-se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado à disciplina.
O projecto deverá ser desenvolvido individualmente ou em grupos de 2 elementos.
Dos enunciados abaixo o grupo deverá seleccionar um para desenvolver.
DBML Browser
Neste projecto, pretende-se desenvolver um browser para DBML (Database Markup Language).
-- JoseCarlosRamalho - 11 Nov 2007
O que se pretende neste projecto é desenvolver um Arquivo Digital de Trabalhos Práticos de Alunos, que doravante
designaremos por ADTPs.
O Arquivo deverá ser desenvolvido de acordo com o modelo de referência (norma internacional) para a implementação de reopositórios digitais: OAIS (Open Archive Information System).
Basicamente, o sistema recebe um pacote de submissão (SIP) com vários ficheiros de tipos diversos (por exemplo,
TeX, BibTeX, imagens, PDFs, código-fonte, programas executáveis). Juntamente com os ficheiros do Trabalho Prático a arquivar segue um manifesto num dialecto XML standard (METS) que define o conteúdo do pacote e permite ao sistema fazer o seu arquivo.
Além disso, esse manifesto também conterá a classificação (hierárquica ou não), descrita segundo um padrão a escolher de entre os seguintes: Dublin Core Metadata, Encoded Archival Description (EAD) e Dublin Core + Conjunto de Elementos definido pela equipe de projecto, e alguns documentos XML contendo metainformação técnica e/ou descritiva sobre cada um dos ficheiros.
O sistema procede à ingestão do SIP, convertendo o conjunto de ficheiros em formatos própios para armazenamento constituindo um novo pacote designado por pacote de arquivo (AIP).
Esse AIP é depois transformado, segundo regras de difusão próprias do sistema, num conjunto de novos pacotes prontos para serem difundidos/distribuídos, designados por pacotes de disseminação (DIP).
O ADTPs realiza sobre o AIP um vasto conjunto de operações de gestão do arquivo, destinadas a pequisar e a manter os ficheiros.
Resumindo o modelo OAIS comporta 3 actores (o produtor que é o autor ou a entidade ou pessoa que detem os direitos sobre o material a arquivar, o administrador do arquivo que terá o controlo das tarefas de transformação e gestão, e o consumidor que será o futuro utilizador do sistema e que irá realizar operações de pesquisa, consulta e download), 3 megaprocessos (ingestão que corresponde à entrada de materiais no arquivo, gestão/administração que corresponde às acções de transformação e gestão dos objectos digitais armazenados, e disseminação que corresponde à difusão/distribuição de objectos digitais), e 3 pacotes (SIP - "Submission Information Package", AIP - "Archival Information Package" e DIP - "Dissemination Information Package").
Objectos Digitais
Um Arquivo Digital não é mais do que um repositório de Objectos Digitais (OD) e é estes que é preciso definir em cada contexto de aplicação. No nosso caso, o OD é um trabalho prático e a sua estrutura e composição deverá ser pensada e especificada.
O grau de liberdade é grande no entanto sugere-se o seguinte esqueleto estrutural como ponto de partida:
um trabalho prático pode ser constituído por três componentes: relatório, apresentação, aplicação;
o relatório deverá ser constituído por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro TeX ou XML que lhe deu origem (será necessário pensar quais os campos de metainformação técnica que faz sentido acrescentar para cada um destes tipos de ficheiro);
a apresentação deverá ser constituída por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro PPT ou XML que lhe deu origem (será necessário ... metainformação técnica ...);
a aplicação deverá ser constituída por um conjunto de ficheiros zipado (código fonte, makefile, README, ...);
para alem de tudo isto o OD terá alguns campos de metainformação própria. A título de exemplo sugerem-se os seguintes:
Para concretizar o trabalho será necessário realizar as seguintes tarefas, algumas das quais podem prossegiur em paralelo:
Análise, caracterização e especificação da estrutura e composição de um OD;
Derivação do modelo relacional que servirá para armazenar os ODs (depois de armazenados passarão a ser AIP);
Criação da base de dados (por exemplo em MySQL);
Criação de uma interface Web (Website) para incorporação de ODs (trata-se de criar um mecanismo de ingestão semi-automática);
Criação de uma interface Web para pesquisar e aceder aos ODs armazenados (HTML + PHP, JAVA, Perl, ...);
Análise do problema com vista a conceber a arquetectura do sistema ADTPs e a funcionalidade a incluir (será usada a notação UML para a análise);
Identificação dos standards a usar para o manifesto e os formatos de arquivo.
Escalonamento de Avaliações
Para uma avaliação contínua, e uma evolução constante no desenvolvimento do projecto integrado, serão realizadas as seguintes avaliações:
Entrega de um relatório com a especificação da estrutura dos trabalhos práticos a armazenar, bem como a estrutura da base de dados a ser utilizada no sistema (7 de Dezembro)
dado que não existiu aula a 3 de Dezembro, o prazo foi alargado a 14 de Dezembro
enviar relatório (PDF,XML,...) para ambs@di.
Entrega da base de dados e interface para a inserção assistida de trabalhos práticos (21 de Dezembro).
Entrega das interfaces de pesquisa (baseada em keywords, e baseada em taxonomia) de trabalhos práticos (18 de Janeiro).
Propostas de trabalho para o Segundo Semestre
Q1: Disseminação
Em relação ao trabalho desenvolvido, é necessário completar o ciclo de vida de um arquivo com a disseminação de pacotes. Assim, após a pesquisa de um trabalho prático (e de o utilizador ter encontrado o trabalho em
causa), deve ser possível:
descarregar cada trabalho prático num ZIP completo;
descarregar um ZIP com o Relatório (ou apresentação, ou código)
Para ajudar a selecção do conteúdo que se quer descarregar, deve ser possível
navegar interactivamente sobre o filesystem do Trabalho Prático, acedendo on-line à árvore de directorias, e vizualização de ficheiros.
Q2: Recuperação de Documentos pesquisando o conteúdo (IR)
Implementar um sistema de pesquisa textual sobre os ficheiros do relatório (em alternativa ou complemento, sugere-se a indexação de código fonte para pesquisa por nomes de funções, ou mesmo pesquisa textual sobre código C);
Q3: Construção de Documentos
A criação de documentos a partir dos TP arquivados: por exemplo, uma lista de documentos citados pelos vários relatórios; um portfólio dos trabalhos realizados por um aluno, ou pela turma de um professor, etc.
Q4: Partilha de arquivos (consulta automatica)
Implementar uma API de pesquisa sobre o arquivo através de WebServices? , de modo a que os vários arquivos possam consultar a base de trabalhos práticos dos outros arquivos. (Este trabalho levará a uma discussão prévia nas aulas de PI sobre a API a definir).
API
TextSearch: Query ----> Result*
Query: String do género: word AND word
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
TaxonomySearch: Category+ ----> Result*
Category: Código ACM de uma categoria da taxonomia
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
KeywordSearch: Keyword+ ----> Result*
Keyword: uma palavra chave ou um par "campo:palavra-chave". Os campos suportados: título, autor, oientador e resumo.
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
Além dos 4 pontos anteriores, resolva ainda uma das questões abaixo à sua escolha.
Q5a:
Permitir que os TPs sejam classificados por uma árvore classificativa genérica (ontologia, com diferentes tipos de relação) e não apenas por uma taxonomia fixa (ACM);
Q5b:
Desenvolver uma API sobre o repositório de forma a que se possa programar sobre ele, ou seja criar operações que trabalhem sobre os TPs arquivados, p.ex. para retirar e compor meta-informação, fazer resumos de relatórios, extrair comentários de programas, traduzir os comentários ou mesmo os relatórios, etc.;
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):
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.
Exercício de manuseamento de gramáticas (Ficha 01, exerc 1a);
9 de Outubro de 2007
Definição cuidada do objectivo específico deste Módulo: estudar tudo o que tem a ver com:
uso de Gramáticas na Especificação de Problemas (enfatizando o caso particular da Especificação de Linguagens);
uso de Gramáticas na construção sistemática dos programas que resolvem os Problemas especificados (enfatizando o caso particular da Geração Automática de Procesadores de Linguagens).
Leve abordagem ao tema "métricas para aferir a qualidade de uma Gramática" e ao tema "características de uma Linguagem que definem a sua qualidade";
Introdução à ferramenta UltraGram;
Utilização do UltraGram para estudar a GIC do Exercício 1 da Ficha Prática 1 (Gf1.1):
Geração do Autómato Determinista
Análise estática: dimensão, função de transição e Conflitos
Análise dinâmica: Stack de Parsing e Árvore de Derivação
Optimizações na Gramática e implicações na Linguagem; recurso de novo ao UltraGram para avaliar uma série de parâmetros escolhidos para medir a qualidade da Gramática:
1ªTransformação: eliminação de Produções Inúteis
2ªTransformação: alteração da linguagem (para permitir agrupar as orientações de um orientador).
15 de Outubro de 2007
Elaboração de um relatório sobre métricas de análise/avaliação da qualidade de gramáticas e linguagens;
Exercícios com a ferramenta UltraGram.
22 de Outubro de 2007
Revisão dos parâmetros usados nas aulas anteriores para avaliar a evolução da qualidade e eficiência das Gramáticas quando se fazem alterações:
Tamanho da G
Tamanho do AD LR de reconhecimento
Tamanho das Tabelas de Parsing
Tempo de Geração do Parser
Tempo de acesso à Tabelas de Parsing
Tempo de Parsing
Legibilidade de G (para o eng gra que desenvolve)
Legibilidade/Usabilidade de G (para o user final que a utiliza para conhecer a L)
Linguagem gerada por G
Recapitulação/sumário dos Exercícios feitos com a transformação de Gramáticas e da utilização da ferramenta UltraGram para avaliação:
foram feitas 2 transformações a Gf1.1 (eliminação de PInuteis e Melhoria da Linguagem) mas só a 1ª foi medida (anotando-se na tabela acima o sentido da variação) => refazer o último exercício;
foram feitas 2 transformações a Gf1.2 (eliminação de PInuteis e Melhoria da Linguagem) mas nenhuma foi medida => refazer todo o exercício.
Discussão dos relatórios elaborados na aula anterior sobre métricas de análise/avaliação da qualidade de gramáticas com o intuito de reunir a opinão recolhida pelos vários grupos num quadro de consenso geral. Nesta âmbito foram discutidos os seguintes tipos de Métricas:
de Complexidade ou de Tamanho, tendo sido identificados os seguintes parâmetros:
estruturais, tendo sido identificados os seguintes parâmetros:
Profundidade/Peso da àrvore; Balanceamento da árvore; Recursividade
Referências Bibliográficas em LaTeX:
importância das citações na escrita científica: evitar pleonasmos, reconhecimento ao autor, apresentação da base em que se suporta o trabalho, links para a profundar a leitura
o comando \cite{label} no documento
a base de dados textual com a bibliografia (fich.bib) no formato @tipo{ label, item=string (, item=string)* }
o funcionamento cooperativo dos programas LaTeX e BibTeX (e a interacção via fich.aux)
29 de Outubro de 2007
Definição dos Critérios para Caracterização de uma Gramática como geradora de programas (processadores/compiladores):
eficiência na geração
tempo geração
tamanho/complexidade das EDs usadas
eficiência no processamento (na compilação)
tempo Parsing
tamanho/complexidade das Tabelas, ou mecanismos, de decisão.
clareza/legibilidade para manutenção (perspectiva do EG)
Definição dos Critérios para Caracterização de uma Gramática como geradora de linguagens:
clareza/legibilidade para derivar frases de L (perspectiva do end-user)
características da Linguagem Gerada [mos07]:
expressividade
abstracção
compreensibilidade e documentação???
unicidade
consistência
extensibilidade ???
segurança (+comp)
realizabilidade (+comp)
eficiência dos programas (comp)
sinergia (comp)
ortogonalidade (comp)
Definição dos Parâmetros a medir para avaliar estas características (no âmbito da Geração de Programas):
tamanho de G: #T, #N, #P, #Pinuteis, #RHS, #Alt/N, #AltMedia
tipo de Recursividade
tamanho das Tabelas + tempo Decisão (acesso às Tabs ou aos Casos):
tamanho do AD-LR (#Q) ª tamanho Tab-LL
Repetição dos Exercícios feitos sobre a transformação de Gramáticas e a utilização da ferramenta UltraGram para avaliação:
foram feitas 2 transformações a Gf1.1 (eliminação de PInuteis e Melhoria da Linguagem) de modo a registar em Tabela Comparativa o valor de todos os indicadores (parâmetros) escolhidos para caracterizar o Tamanho de G
Foram feitos depois alguns testes com a Ferramenta ProGrammar (gerador de parsers LL) para tentar medir os mesmos indicadores numa situação diferente de Parsing (Top-Down em vez de Bottom-Up), tendo-se de novo recorrido a a gramática do 1ºexercício, Gf1.1, a qual teve de ser alterada (como se mostra abaixo) para Eliminar a Recursividade à Esquerda. Infelizmente este exercício, para além de mostrar que o ProGrammar? detectava logo a Recursividade à Esquerda e que, não havendo conflitos, mostrava o processo de parsing e de construção da AD, não trouxe grande ajuda nas medições pretendidas porque não mostrava as tabelas.
PGs ::= PGlist "." ;
PGlist ::= PG [ {";" PGList } ];
PG ::= IdOrient Tipo CoOrient Aluno "("Titulo")" Inic Fim;
IdOrient ::= alpha ;
Tipo ::= "PHD" | "MSC" ;
CoOrient ::= [ "CO-ORIENT" Nome ] ;
Aluno ::= Nome ;
Titulo ::= string;
Nome ::= string;
Inic ::= "INI" Ano ;
Fim ::= [ "FIM" Ano ] ;
Ano ::= numeric ;
string ::= quotedstring;
Foi introduzido um outro Tópico do Módulo: modelação de sistemas de informação com Gramáticas.
05 de Novembro de 2007
Identificaram-se as implicações que as 2 transformações T1 e T2 de Gf1.1 tiveram sobre as características a avaliar sobre gramáticas:
(C1.1)eficiência na geração: + | -
(C1.2)eficiência no processamento: + | -
(C1.3)clareza/legibilidade para manutenção: - | x
(C2.1)clareza/legibilidade para derivar frases de L: - | x
(C2.2)características da Linguagem Gerada: x | +
Relacionaram-se as Métricas propostas por Power e Malloy (M1 a M6) com os Parâmetros definidos na última aula para avaliar Gramáticas, tendo-se concluido que as três primeiras (M1 a M3) correspondiam a métricas por nós previstas enquanto que as três últimas (M4 a M6) teriam ainda de ser incluídas pois medem a dependência entre símbolos; a título de exemplo, para clarificar esta última questão, discutiu-se a diferença entre a recurisvidade directa e indirecta em listas. Assim comparando as 2 alternativas abaixo:
verificou-se que a primeira (p1,p2,p3) era preferível por diminuir a dependência entre símbolos.
Procurou-se identificar a influêndia que cada parâmetro tem sobre as características, em particular ficou clara a importância do comprimento dos Lados Direitos das Produções na eficiência do parsing.
Foram feitos depois alguns testes com a Ferramenta SLK Parser Generator (http://home.earthlink.net/~slkpg/), gerador de parsers LL, para tentar medir os mesmos indicadores numa situação diferente de Parsing (Top-Down em vez de Bottom-Up), tendo-se de novo recorrido à gramática do 1ºexercício, Gf1.1, a qual teve de ser alterada (como se mostra abaixo) para Eliminar a Recursividade à Esquerda. Desta vez obtiveram-se uma série de métricas úteis para o estudo em curso.
PGs : PGlist .
PGlist : PGlist PG
_epsilon_
PG : IdOrient Tipo CoOrient Aluno ( Titulo ) Inic Fim
IdOrient : ID
Tipo : PHD
MSC
CoOrient : _epsilon_
CO-ORIENT Nome
Aluno : Nome
Titulo : STRING
Nome : STRING
Inic : INI Ano
Fim : _epsilon_
FIM Ano
Ano : NUMBER
Fez-se ainda uma revisão completa às estrategias de Parsing Top-Down e Bottom-Up:
Relembrou-se a estrutura e conteúdo das Tabelas LL: N * T -> prod | erro
Relembrou-se o conteúdo e funcionamento da Stack de Parsing LL, que começa em <S,$> e termina <>
Relembrou-se a estrutura e conteúdo das Tabelas LR: Q * N -> Q e Q * T -> skip(Q) | red(P) | erro
Relembrou-se o conteúdo e funcionamento da Stack de Parsing LR, que começa em <> e termina <S,$>
No fim da aula, apresentou-se o 2ªTrabalho para Casa cujo enunciado se inclui na rubrica Fichas Práticas deste Módulo.
12 de Novembro de 2007
Discutiu-se a resolução (apresentada por um dos grupos) da Ficha Prática III: Transformações da Gramática Gf1.2, aferição das métricas em cada metamorfose e avaliação do impacto de cada transformação (T1, T2 e T3) sobre as características de uma gramática.
Discussão da aplicação do critério (ou métrica) dito "Fenton's Impurity" para avaliação da Dependencia entre os Símbolos Não-terminais: construção do Grafo e cálculo do factor de Fenton; inclusão de mais um critério (C1.4) que mede a facilidade de modularização e manutenção de uma gramática.
Continuou-se a trabalhar no segundo tópico do Módulo, Modelação de Sistemas de Informação com Gramáticas, com o início da resolução de um problema concreto: Especificação de um Sistema para Apoio à construção e publicação de Horários (para Alunos, Docentes e Salas) e Sumários das Aulas. Enunciou-se o problema e começou-se a especificar as classes/conceitos: Horários, Horário e Célula do Horário.
19 de Novembro de 2007
Apresentação sumária das várias opções da ferramenta SKL; e breve introdução ao AnTLR e AnTLR-Works.
Discussão da aplicação do critério (ou métrica) dito "Fenton's Impurity" para avaliação da Dependencia entre os Símbolos Não-terminais.
Conclusão da resolução de um problema concreto de Modelação de Sistemas de Informação com Gramáticas: Especificação de um Sistema para Apoio à construção e publicação de Horários (para Alunos, Docentes e Salas) e Sumários das Aulas. Continuação da especificação das Classes/conceitos (Sala, Aula, Turno, Disciplina, Aluno, Docente) com a introdução de Invariantes (via Condições Contextuais) e especificação de algumas Operações -- criação de um _Sistema de Gramáticas de 2-Níveis_.
Simulação e teste das Classes do SI criando uma Parser para reconhecer frases da Linguagem, recorrendo ao AnTLR.
26 de Novembro de 2007
Resolução de um segundo problema concreto de Modelação de Sistemas de Informação com Gramáticas: Sistema de Gestão para apoio ao Atendimento e Triagem de Paciêntes num urgência hospitalar. Especificação das Classes/conceitos (Doentes, Doente, Historial-Clinico, Episódio, Triagem, Lista-Espera) com a introdução de Invariantes (via Condições Contextuais) e especificação de algumas Operações -- criação de um _Sistema de Gramáticas de 2-Níveis_.
Simulação e teste das Classes do SI criando uma Parser para reconhecer frases da Linguagem, recorrendo ao AnTLR; construção e análise do Grafo de Sucessores (SG) para apreciar a qualidade da especificação.
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 1: Noção de Acção Semântica e de Gramática Tradutora.
Criação de uma mailing-list; Discussão e Publicação dos critérios de avaliação da UCE30-EL.
03 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Resolução do exercício 1.2 da Folha de exercícios 1 para consolidação da matéria sobre GT e AS.
Início da Resolução do exercício 1.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
10 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício 1.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
Início da Resolução do exercício 2.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
17 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Início da Resolução de um novo exercício (Indice Remissivo) para consolidação da matéria sobre GA -- derivação da GIC Concreta+Abstracta a partir de um exemplo de Txt-Fnt:
Construção da Lista de Páginas;
Cálculo do Número de Páginas registadas (entradas);
Verificação da Ordem Crescente das Páginas;
Verificação da Inexistência de Palavras Repetidas.
Construção da tabela (N u T)*(AH u AS)
Introdução às métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
07 de Janeiro de 2008
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício (Indice Remissivo) para consolidação da matéria sobre GA:
Construção da Lista alfabética de Palavras associadas à lista de Páginas.
mostra-se e discute-se abaixo a solução final completa deste exercício:
p1: Index : INDICE Entradas FINDICE
p2: Entradas : Entrada
p3: | Entradas Entrada
p4: Entrada : IdPag ":" LstPals
p5: LstPals : pal
p6: : LstaPals "," pal
p7: IdPag : num
a) criar uma lista de números de páginas
Rp2: Es0.lp = ins(E1.pg, nil)
Rp3: Es0.lp = ins(E2.pg, Es1.lp)
Rp4: E0.pg = IdPag1.pg
Rp7: IdPag0.pg = num1.val
b) contar as Entradas
Rp2: Es0.cnt = 1
Rp3: Es0.cnt = 1 + Es1.cnt
c) garantir que as Páginas aparecem por ordem crescente
Cp3: ( E2.pg > Es1.ult )
Rp2: Es0.ult = E1.pg
Rp3: Es0.ult = E2.pg
d) Garanta que não ha nenhuma Palavra repetida
Sol d1)
Cp3: ( testaRepete(Es1.lpal,E2.lpal) ) //operação mt pesada e desnecessaria
Rp3: Es0.lpal = concat(Es1.lpal,E2.lpal) //operação mt pesada
Rp4: E0.lpal = LstPals2.lpal
Pp5/Rp6: LstPals0.lpal = ins(...)
Sol d2)
Cp5: ( !existe(pal1.val,LstPals0.inlpal) ) //operação mt simples
Cp6: ( !existe(pal2.val,LstPals1.pal) )
Pp5: LstPals0.lpal = ins(pal1.val,LstPals0.inlpal) //operação igual/ simples
Rp6: LstPals0.lpal = ins(pal2.val,LstPals1.lpal); LstPals1.inlpal = LstPals0.inlpal
Rp4: LstPals2.inlpal = Entrada0.inlpal; Entrada0.lpal = LstPals2.lpal
Rp2: Entrada1.inlpal = nil; Entradas0.lpal = Entrada1.lpal
Rp3: Entrada2.inlpal = Entradas1.lpal; Entradas0.lpal = Entrada2.lpal
e) (ignorar restrição da alínea e)criar uma Lista de Pals com uma Lista de Pags
//de novo se coloca a mm situação da Sol d1)
//então vamos avançar logo para a Sol do tipo d2) com AHerdados
Rp4: LstPals2.inpg = IdPag1.pg;
LstPals2.inlpal = Entrada0.inlpal; Entrada0.lpal = LstPals2.lpal
Rp5: LstPals0.lpal = update( mkpair(pal1.val,LstPals0.inpg), LstPals0.inlpal)
//insere o par se Pal não existe, acrescenta Pag a ListaPags se Pal ja existe
Rp6: LstPals0.lpal = update( mkpair(pal2.val,LstPals0.inpg), LstPals1.lpal)
LstPals1.inlpal = LstPals0.inlpal
Rp2: Entradas0.lpal = Entrada1.lpal; Entrada1.inlpal = nil;
Rp3: Entradas0.lpal = Entrada2.lpal; Entrada2.inlpal = Entradas1.lpal
Início da Resolução de um novo exercício (Descrição de Candidaturas; Dados gerais, Entidades proponentes, Projecto e Fases) para consolidação da matéria sobre GA:
p1: Candidatura : Dados Entidades Proj
p2: Dados : IdCand data Eixo Prog
p3: Entidades : Entid
p4: | Entidades Entid
p5: Entid : CodE
p6: Entid : NOVA CodE Nome Morad Resp
p7: Proj : Desc Inic Fim Fases
p8: Fases : Fase
p9: : Fases Fase
p10: Fase : CodE Desc Inic Fim Custo
p..: Eixo : e1 | e2 | ... en
p..: Prog : p1 | p2 | ... pk
Verificação do Programa seleccionado em função do Eixo escolhido (nos Dados);
Tratamento das Entidades -- proponente ja registado (existente na lista das Entidades), ou novo (não existente nessa lista)); identificação das Entidades que participam na Candidatura.
Sistematização dos esquemas para escolha dos atributos S e H dos simbolos e localização/escrita das regras de cálculo, condições de contexto e regras de tradução (comparação de alternativas).
Discussão/avaliação das métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
14 de Janeiro de 2008
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício sobre "Descrição de Candidaturas; Dados gerais, Entidades proponentes, Projecto e Fases" para consolidação da matéria sobre GA:
Cálculo do custo total de um Projecto em função do custo de cada Fase;
Validação da Entidade Responsável por cada Fase de um Projecto (tem de ser membro da lista de Entidades que integram essa Candidatura).
Validação do período de duração de cada Fase (tem de estar contido no período total do Projecto).
Sistematização dos esquemas para escolha dos atributos S e H dos simbolos e localização/escrita das regras de cálculo, condições de contexto e regras de tradução (comparação de alternativas).
Discussão/avaliação das métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
Apresentação da UCE, e dos módulos intervenientes;
Apresentação do Horário e da Equipa Docente;
1 de Outubro de 2007 - 2
Exercícios Práticos na criação de DTDs;
Definição de listas de atributos em DTDs;
Exercícios no uso do XMLSpy para a criação de DTDs e documentos XML baseados em DTD;
Aula 2
9 de Outubro de 2007 - 1
Apresentação sucinta do projecto integrado: Arquivo Digital de Trabalhos Práticos (ADTPs);
Noção de Pacote de Submissão e discussão do seu Conteúdo no caso concreto do arquivo de TPs (de ficheiros TeX ou PDF, a código fonte ou executável, passando por imagens e HTMLs);
Demonstração de um Arquivo Digital de Artigos Científicos: eprints. Análise do Fluxo associado ao processo de aruivo no caso do eprints e verificação das facilidades de pesquisa e funcionalidades de um sistema deste genéro;
Discussão da estrutura de um Arquivo Digital;
Classificação de Documentos: taxonomias (CDU), evolução para ISO Thesaurus, e generalização natural para Ontologias;
Apresentação do conceito de Manifesto que acompanha o Pacote de Submissão;
9 de Outubro de 2007 - 2
Elaboração de um DTD para manifestos de pacotes de ficheiros (Submission Information Package, SIP);
Discussão do DTD obtido, e comparações com o formato METS;
Aula 3
15 de Outubro de 2007 - 1
Modelo de referência OAIS: Open Archive Information System;
Conceitos de Ingestão, Administração e Disseminação num arquivo digital;
Tipos de pacotes SIP, AIP e DIP: Submission Information Package, Archive Information Package e Dissemination Information Package;
Análise do Projecto;
15 de Outubro de 2007 - 2
Exercícios de XPath;
Aula 4
22 de Outubro de 2007 - 1
Revisões de conceitos de bases de dados: tabelas, normalização, chaves primárias e estrangeiras. (databases.pdf)
22 de Outubro de 2007 - 2
Exercícios de XSL;
Aula 5
29 de Outubro de 2007 - 1
Resolução do segundo exercício da ficha de revisões de bases de dados.
Discussão sobre a implementação em modelo relacional de taxonomias e ontologias.
29 de Outubro de 2007 - 2
Exercícios de XSL com geração de índices e travessias multiplas.
Aula 6
5 de Novembro de 2007 - 1
Discussão do enunciado do projecto integrado e das tarefas a realizar;
Discussão da arquitectura do Arquivo Digital de Trabalhos Práticos;
Brainstorming sobre várias abordagens para a representação do AIP em sistema relacional;
5 de Novembro de 2007 - 2
Exercícios de construção de Schemas, e processamento de documentos XML com base em XSL;
Aula 7
12 de Novembro de 2007 - 1
Aula usada para trabalho em grupo no projecto integrado;
Criação de um ambiente de trabalho em servidor partilhado;
12 de Novembro de 2007 - 2
Descrição em Schema de um tipo de documento para relatórios;
Criação de grupos e elementos como aliases em documentos recorrentes;
Aula 8
19 de Novembro de 2007 - 1
Brainstorming sobre a interface Web para submissão de trabalhos práticos;
Brainstorming sobre a estrutura da base de dados e repositório de trabalhos;
Início da criação de uma base de dados;
19 de Novembro de 2007 - 2
Análise do Schema 'report' para relatórios de trabalhos práticos;
Início do desenvolvimento de uma XSL para a transformação do formato report em HTML;
Algumas noções sobre HashTables e Contadores;
Aula 9
26 de Novembro de 2007 - 1
Discussão sobre a metodologia de avaliação da UCE e Projecto Integrado;
Definição de metas/milestones para etapas do Projecto Integrado;
Desenvolvimento da base de dados do Projecto Integrado;
26 de Novembro de 2007 - 2
Continuação do desenvolvimento de uma XSL para a transformação do formato report para HTML;
Uso de xsl:document-result para a geração de mais do que uma página;
Algumas experiências com eixos.
Aula 10
3 de Dezembro de 2007 - 1
Dada a participação do docente no Simpósio Doutoral do 13º Encontro Português de Inteligência Artificial (EPIA), foi sugerido aos alunos o uso da aula para o desenvolvimento do Projecto Integrado;
3 de Dezembro de 2007 - 2
...
Aula 11
10 de Dezembro de 2007 - 1
Discussão do trabalho prático, com ênfase em algumas dúvidas sobre a estrutura da base de dados.
10 de Dezembro de 2007 - 2
Exercícios de construção de um Topic Map a partir de um XML de uma árvore genealógica.
Aula 12
17 de Dezembro de 2007 - 1
Análise por grupos das estruturas de base de dados propostas por outros grupos.
17 de Dezembro de 2007 - 2
Exercícios de geração de XSL-FO a partir de um relatório em XML (Report2007).
Aula 13
7 de Janeiro de 2008 - 1
Discussão sobre a evolução dos trabalhos práticos: definição da interface para upload de trabalhos práticos.
7 de Janeiro de 2008 - 2
Exercícios de geração de website a partir de vários documentos XML usando XSL.
Aula 14
14 de Janeiro de 2008 - 1
Discussão sobre a evolução dos trabalhos práticos. Análise de alguns trabalhos.
14 de Janeiro de 2008 - 2
Exercícios de revisão
Aula 15
21 de Janeiro de 2008 - 1
Revisões de Processamento estruturado de documentos
21 de Janeiro de 2008 - 2
Revisões de Processamento estruturado de documentos
Aula 16 (Início do 2ºSemestre)
03 de Março de 2008 - 1
Tendo por base as deficiências e dificuldades identificadas aquando da avaliação intermédia (fim do 1ºSem.) do Projecto Integrado, esta parte da aula foi totalmente dedicada à
Resolução de um exercício de modelação em UML de um sistema de informação -- Gestão de Contas Bancárias, Clientes, Cartões e Movimentos -- para sedimentar esta componente essencial do projecto (a modelação do sistema).
03 de Março de 2008 - 2
A 2ªparte desta aula de recomeço foi essencialmente dedicada a analisar as conclusões retiradas da 1ª avaliação intermédia e a replanear a actividade de cada grupo, face ao que já fizeram e ao que tem agora de fazer para:
(a) cumprir integralmente os objectivos de um Arquivo Digital, estabelecidos para o 1ºSem.;
(b) incluir agora uma nova funcionalidade para Recuperção de Informação (vulgo, Information Retrieval) que misture os conceitos de pesquisa estrutural em XML com a noção de similaridade textual.
Nesse sentido foi solicitado aos Grupos que troussessem na próxima aula um planeamento rigoroso de todo o projecto (incluindo as fases já percorridas).
Aula 17
10 de Março de 2008 - 1 e 2
Análise da situação concreta do estado de desenvolvimento do projecto de cada grupo; discussão do relatório e replaneamento.
Aula 18
31 de Março de 2008 - 1 e 2
Apresentação detalhada (discussão) dos 5 novos requisitos funcionais (4 obrigatórios e 1 alternativo) a acrescentar ao sistema.
Aula 19
07 de Abril de 2008 - 1 e 2
Apresentação detalhada do conceito de DIP: informação e funcionalidade associadas.
Aula 20
14 de Abril de 2008 - 1 e 2
Implementação do DIP;
Discussão com cada grupo das alternativas estudadas e das decisões tomadas.
TWiki's Education/EL0708 webThe Education/EL0708 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708Copyright 2020 by contributing authors2009-09-26T08:32:08ZWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/WebHome2009-09-26T08:32:08ZUnidade Curricular de Especialização Engenharia de Linguagens Engenharia de Linguagens Trabalhos Finais 2 Apresentação Relatório ... (last changed by PedroRangelHenriques)PedroRangelHenriquesEngenhariaGramaticalhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/EngenhariaGramatical2008-10-05T10:52:18ZEngenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ... (last changed by PedroRangelHenriques)PedroRangelHenriquesSumariosATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosATS2008-10-05T10:35:54ZEngenharia 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 ... (last changed by PedroRangelHenriques)PedroRangelHenriquesAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Alunos2008-10-05T09:35:45ZEngenharia de Linguagens Alunos/Grupos Grupo 1 António Sérgio Matos da Silva Sandra Teixeira Grupo 2 Nuno Ernesto Salgado Oliveira ... (last changed by PedroRangelHenriques)PedroRangelHenriquesFichasEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasEG2008-10-05T09:34:35ZEngenharia de Linguagens Engenharia Gramatical Fichas Práticas Ficha I: Exercícios para Análise Gramatical Ficha II: Pesquise na Internet o que há ... (last changed by PedroRangelHenriques)PedroRangelHenriquesResultadosAvaliaçãohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/ResultadosAvaliação2008-07-31T09:07:01ZEngenharia de Linguagens Resultados da Avaliação NT NT NT NT NAC NAC NAC NAC PI PI Nome ... (last changed by AlbertoSimoes)AlbertoSimoesFichasATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasATS2008-07-03T23:20:59ZEngenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ... (last changed by DanielaCruz)DanielaCruzSumariosPIhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosPI2008-06-16T10:20:07ZEngenharia de Linguagens Projecto Integrado Sumários Aula 1 1 de Outubro de 2007 1 Apresentação da UCE, e dos módulos intervenientes; Apresenta ... (last changed by AlbertoSimoes)AlbertoSimoesProjectohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Projecto2008-06-02T11:37:08ZEngenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ... (last changed by AlbertoSimoes)AlbertoSimoesStringTemplatehttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/StringTemplate2008-04-20T23:13:01ZDanielaCruz 20 Apr 2008 (last changed by DanielaCruz)DanielaCruzAvalEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalEG2008-03-09T10:51:05ZEngenharia de Linguagens Engenharia Gramatical Avaliação Final 2007/2008 NOME G TP1 TP2 TP3 TP4 TPF AvDez AvSem ... (last changed by PedroRangelHenriques)PedroRangelHenriquesHorario2http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario22008-02-25T22:00:07ZEngenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)AlbertoSimoesHorario1http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario12008-02-25T18:15:24ZEngenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)AlbertoSimoesAvalPEDhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalPED2008-02-19T16:21:12ZEngenharia de Linguagens Programação Estruturada de Documentos Avaliação Final 2007/2008 Número Nome Tipo aval. Título Nota 41008 ... (last changed by JoseCarlosRamalho)JoseCarlosRamalhoAvaliaçãohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Avaliação2008-02-10T16:55:56ZEngenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ... (last changed by AlbertoSimoes)AlbertoSimoesSumariosEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosEG2008-01-20T07:50:55ZEngenharia de Linguagens Engenharia Gramatical Sumários 1 de Outubro de 2007 Revisão de alguns conceitos na construção de parsers: análise léxica ... (last changed by PedroRangelHenriques)PedroRangelHenriques
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ...
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 ...
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ...
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ...
Engenharia de Linguagens Notas Pedagógicas Relatórios Schema oficial para os relatórios (solicitação de alterações para jcr #64;di.uminho.pt) report ...
Projecto de PED2007 Este projecto destina se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado ...
Education/EL0708 Web Preferences The following settings are web preferences of the Education/EL0708 web. These preferences overwrite the site level preferences ...
Engenharia de Linguagens Projecto Integrado 1 Objectivos Com este projecto integrado pretende se sedimentar os conhecimentos introduzidos nas aulas teóricas dos ...
Engenharia de Linguagens Scripting no Processamento de Linguagem Natural Programa resumido Linguagens de scripting: características, objectivos e conceitos ...
Engenharia de Linguagens Análise e Transformação de Software Programa resumido Parsing generalizado e Regras de Desambiguidade: Parsing LL ou LR Generalizado ...
Engenharia de Linguagens Processamento Estruturado de Documentos Programa resumido Introdução e um pouco de história: SGML, HTML, XML, SML. Documentaç ...
Engenharia de Linguagens Análise e Transformação de Software Programa resumido Parsing generalizado e Regras de Desambiguidade: Parsing LL ou LR Generalizado ...
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ...
Engenharia de Linguagens Notas Pedagógicas Relatórios Schema oficial para os relatórios (solicitação de alterações para jcr #64;di.uminho.pt) report ...
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ...
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Projecto Integrado 1 Objectivos Com este projecto integrado pretende se sedimentar os conhecimentos introduzidos nas aulas teóricas dos ...
Projecto de PED2007 Este projecto destina se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado ...
Engenharia de Linguagens Processamento Estruturado de Documentos Programa resumido Introdução e um pouco de história: SGML, HTML, XML, SML. Documentaç ...
Engenharia de Linguagens Scripting no Processamento de Linguagem Natural Programa resumido Linguagens de scripting: características, objectivos e conceitos ...
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ...
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 ...
Education/EL0708 Web Preferences The following settings are web preferences of the Education/EL0708 web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/EL0708 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/EL0708.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Engenharia Linguagens
Set SITEMAPUSETO = Engenharia Linguagens
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/EL0708 web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Set DENYWEBVIEW =
Set ALLOWWEBVIEW =
Set DENYWEBCHANGE =
Set ALLOWWEBCHANGE = JoseCarlosRamalho,Main.AlbertoSimoes,Main.PedroRangelHenriques,Main.DanielaCruz
Set DENYWEBRENAME =
Set ALLOWWEBRENAME = JoseCarlosRamalho,Main.AlbertoSimoes,Main.PedroRangelHenriques,Main.DanielaCruz
Users or groups allowed to change or rename this WebPreferences topic: (e.g., TWikiAdminGroup)
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708
The Education/EL0708 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/EL0708
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/WebHome
Unidade Curricular de Especialização Engenharia de Linguagens Engenharia de Linguagens Trabalhos Finais 2 Apresentação Relatório ... (last changed by PedroRangelHenriques)2009-09-26T08:32:08ZPedroRangelHenriquesEngenhariaGramatical
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/EngenhariaGramatical
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ... (last changed by PedroRangelHenriques)2008-10-05T10:52:18ZPedroRangelHenriquesSumariosATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosATS
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 ... (last changed by PedroRangelHenriques)2008-10-05T10:35:54ZPedroRangelHenriquesAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Alunos
Engenharia de Linguagens Alunos/Grupos Grupo 1 António Sérgio Matos da Silva Sandra Teixeira Grupo 2 Nuno Ernesto Salgado Oliveira ... (last changed by PedroRangelHenriques)2008-10-05T09:35:45ZPedroRangelHenriquesFichasEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasEG
Engenharia de Linguagens Engenharia Gramatical Fichas Práticas Ficha I: Exercícios para Análise Gramatical Ficha II: Pesquise na Internet o que há ... (last changed by PedroRangelHenriques)2008-10-05T09:34:35ZPedroRangelHenriquesResultadosAvaliação
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/ResultadosAvaliação
Engenharia de Linguagens Resultados da Avaliação NT NT NT NT NAC NAC NAC NAC PI PI Nome ... (last changed by AlbertoSimoes)2008-07-31T09:07:01ZAlbertoSimoesFichasATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasATS
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ... (last changed by DanielaCruz)2008-07-03T23:20:59ZDanielaCruzSumariosPI
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosPI
Engenharia de Linguagens Projecto Integrado Sumários Aula 1 1 de Outubro de 2007 1 Apresentação da UCE, e dos módulos intervenientes; Apresenta ... (last changed by AlbertoSimoes)2008-06-16T10:20:07ZAlbertoSimoesProjecto
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Projecto
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ... (last changed by AlbertoSimoes)2008-06-02T11:37:08ZAlbertoSimoesStringTemplate
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/StringTemplate
DanielaCruz 20 Apr 2008 (last changed by DanielaCruz)2008-04-20T23:13:01ZDanielaCruzAvalEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalEG
Engenharia de Linguagens Engenharia Gramatical Avaliação Final 2007/2008 NOME G TP1 TP2 TP3 TP4 TPF AvDez AvSem ... (last changed by PedroRangelHenriques)2008-03-09T10:51:05ZPedroRangelHenriquesHorario2
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario2
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)2008-02-25T22:00:07ZAlbertoSimoesHorario1
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario1
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)2008-02-25T18:15:24ZAlbertoSimoesAvalPED
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalPED
Engenharia de Linguagens Programação Estruturada de Documentos Avaliação Final 2007/2008 Número Nome Tipo aval. Título Nota 41008 ... (last changed by JoseCarlosRamalho)2008-02-19T16:21:12ZJoseCarlosRamalhoAvaliação
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Avaliação
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ... (last changed by AlbertoSimoes)2008-02-10T16:55:56ZAlbertoSimoesSumariosEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosEG
Engenharia de Linguagens Engenharia Gramatical Sumários 1 de Outubro de 2007 Revisão de alguns conceitos na construção de parsers: análise léxica ... (last changed by PedroRangelHenriques)2008-01-20T07:50:55ZPedroRangelHenriques
Parsing LL ou LR Generalizado (estudo de sistemas como o SGLR e o HaGLR).
Aspectos quantitativos de Linguagens de Programação:
Métricas para Linguagens de Programação.
Métricas para análise de programas (e.g., detecção de código morto, clones, etc).
Transformação de programas:
Programação estratégica.
Técnicas de Slicing.
Especialização de programas e cálculo parcial.
Teste de Software.
Paradigmas para visualização de dados e de conhecimento:
visualização vs navegação.
visualização/navegação em árvores, grafos, hiper-cubos, petri-nets.
visualização/navegação em ontologias.
animação de algoritmos.
modelos de visualização, visualização com ponto de vista móvel.
Exploração de Ambientes de Trabalho usando os paradigmas explicitados nos items acima.
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 para 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.
A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula:
NF = 50% NP + 25% NT + 25% NAC
Requisitos:
NP >= 8 em cada uma das duas avaliações semestrais (20% + 30%)
NT >= 8 em cada uma das avaliações teóricas dos quatro módulos
Sendo que:
NP é a nota do trabalho prático único e anual, que integra os conhecimentos dos quatro módulos. É avaliado continuamente ao longo do semestre de acordo com pontos de controlo (ver enunciado do trabalho prático).
NT é a média dos testes escritos aos quatro módulos.
NAC é a nota de avaliação contínua, que será obtida pela participação nas aulas, e avaliação de fichas/trabalhos para casa que sejam propostas em cada módulo. A nota final é a média das avaliações contínuas dos quatro módulos.
Datas de Avaliação
Teste PED: 21 Janeiro
Teste EG: 28 Janeiro
Apresentaçoes PI: 11 Fevereiro
NOTA:
Os alunos de opção do 5 ano de LMCC e LESI terão os exames de recurso nas datas marcadas pelas direcções de curso.
o Schema ainda não está documentado (em breve...);
além de ser útil o Schema pretende ser didáctico pelo que não será de estranhar a variedade de estruturas internas utilizadas bem como a modularidade através da utilização de grupos de elementos bem como da separação do modelo do parágrafo num Schema à parte;
a instância apresentada é um manual para a redacção de relatórios utilizado na Universidade de Aveiro que eu adaptei para XML, o seu conteúdo é didáctico e apropriado ao contexto;
as versões HTML e PDF serão geradas com stylesheets construídas pelos alunos sendo que pequenos excertos serão desenvolvidos nas aulas.
Manuais
SLKoptions: Manual do Gerador de Parsers LL(k): SLK
Documentos Exemplo
lpTEMPLATE.bib: Template para Ficheiro de Bibliografia BibTeX
Com a intenção de levar os alunos a fazer um exercício de transformação de SW que os obrigue a pensar no problema, nas fases, nas estratégias e nas ferramentas -- percebendo a necessidade de fazer a análise sintatica e semantica, de construir uma representação intermédia (RI), tipo ASD+TabDefs, e de criar uma Base de Regras de Transformação e um Sistema de Reescrita de ASDs para facilitar a especificação e sistematizar a implementação -- pretende-se que crie uma ferramenta para fazer o upgrade de programas escritos em SQL1 para SQL2.
A questão está que em SQL1 não existe a instrução UPDATE TABLE para alterar um ou mais campos não-chave de um registo.
Isso leva a que a actualização é sempre feita à custa de uma remoção (REMOVE TABLE T WHERE chv="X") seguida de uma inserção (INSERT INTO TABLE T (chv="X", a1=...) ).
O upgrader a implementar deve detectar os pares (REMOVE,INSERT) e substituir por um UPDATE.
Sistematize a implemetação da sua ferramenta de modo a poder gerar automaticamente o máximo de módulos e a poder reaproveitar essas componentes para exercícios análogos.
A sua implementação deve ser, sucinta e legível.
Link útil sobre construção de árvores usando o ANTLR: Tree Construction
Configurar CLASSPATH para permitir a invocação via linha de comandos (Windows): set CLASSPATH = %CLASSPATH%;pathANTLR;pathST; onde a pathANTLR/pathST é a respectiva path para o ANTLR/StringTemplate (.jar) para onde descomprimiram a pasta.
Com a intenção de levar os alunos a sedimentar os conhecimentos base sobre análise e transformação de SW e a reutilizar a plataforma desenvolvida para resolução da Ficha I, pretende-se que crie uma ferramenta para fazer o upgrade de programas escritos em num linguagem orientada aos objectos LOO1 após a actualização de uma classe que presta serviços básicos às restantes classes da aplicação.
A questão está que em a nova versão da classe de serviços SUPORTE() introduziu um método designado por setall() que permite actualizar todos os N atributos da classe, dispensando a invocação sequencial dos métodos setAi() para actualização individual dos N atributos.
O upgrader a implementar deve detectar essa sequência de invocações individuais e substituir por uma só invocação ao novo método setall().
A sua implementação deve ser, sucinta e legível e deve reaproveitar ao máximo a bancada construída nas aulas.
Ficha III
Partindo de uma versão "light" da gramática do C, pretende-se que os alunos construam para um dado programa de entrada:
Tabela de identificadores;
Data Dependence Graph (DDG) usando a técnica de Single Static Assignment (SSA)
Ficha II: Pesquise na Internet o que há sobre Métricas para Avaliação da Qualidade em Gramáticas e Linguagens:
Escreva um pequeno relatório (bem estruturado e bem escrito) sobre o estudo feito, o que encontrou, que conclusões retira.
Ficha III: Considere como base de trabalho a Gramática do 2ºexercício da Ficha Prática 1 (Gf1.2). Então:
Faça as transformações T1 (eliminação de Produções Inúteis), T2 (alteração da linguagem em causa, cf alínea b), T3 (alteração do comprimento do RHS para mofidicar a gramática sem modificar a linguagem, cf alínea c).
Para cada caso faça a avaliação dos 8 parâmetros que medem o tamanho da gramática e classificam a sua recursividade; preencha a influência de cada uma das três transformações sobre os 5 critérios (C1.1 a C2.2) para avaliar a qualidadede uma Gramática.
Acrescente um parâmetro à tabela de modo a medir a dependência entre símbolos (medida a que Power e Malloy chamam "Fenton's Impurity").
Usando o UltraGram, calcule o tamanho do autómato (número de estados) e das tabelas de decisão; prencha a tabela das métricas, na nona linha.
Usando o SLK e depois de modificar a gramática para a transformar em LL, calcule o tamanho das tabelas de decisão; prencha a tabela das métricas, na décima linha (este parâmetro terá de ser introduzido de novo).
Ficha IV: Considere de novo a Gramática do 2ºexercício da Ficha Prática 1 (Gf1.2). Então:
Resolva a Questão 2.2 (construção de uma Gramática Tradutora), juntando a Gf1.2 as Acções Semanticas necessárias para efectuar o processamento pedido.
Resolva a Questão 2.3 (construção de uma Gramática de Atributos),juntando a Gf1.2 os Atributos, as Regras de Cálculo e as Regras de Tradução, bem como as Condições Contextuais necessárias para efectuar a transformação e as validações pedidas.
A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas-Feiras, com o seguinte horário:
08h00 - 11h00:Engenharia Gramatical, na sala 0.04 do DI
11h00 - 12h30:Projecto Integrado, na sala 0.04 do DI
14h00 - 16h00:Processamento Estruturado de Documentos, na sala 206 do CP1
16h00 - 18h30:Projecto integrado, na sala 0.04 do DI
A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas-Feiras na sala 0.04 do DI, com o seguinte horário:
08h30 - 11h30:Scripting no Processamento de Linguagem Natural
Com este projecto integrado pretende-se sedimentar os conhecimentos introduzidos nas aulas teóricas dos 4 módulos
complementares desta UCE: Engenharia Gramatical, Processamento Estruturado de Documentos, Análise e Transformação
de Software e Scripting no Processamento de Linguagem Natural.
2 Resultados da aprendizagem
No final do semestre, os alunos devem ter adquirido um conjunto de competências tecnológicas, específicas e genéricas detalhadas na rubrica ”Resultados de Aprendizagem” da página oficial da disciplina, em http://wiki.di.uminho.pt/twiki/bin/view/Mestrado/EL.
3 Organização e Funcionamento
O projecto será desenvolvido em grupos de 2, havendo 2 sessões presenciais de 1,5h por semana.
Em cada aula está presente um docente da equipa que irá esclarecendo questões específicas levantadas pelos elementos
do grupo, quer ao nível da concepção e desenho da solução, quer ao nível da sua implementação e teste.
No fim de cada semestre e no fim do ano lectivo, cada grupo apresentará à equipa docente o trabalho realizado e os resultados obtidos, devendo entregar um relatório técnico de desenvolvimento devidamente estruturado e fundamentado,
escrito em LaTeX.
Este projecto destina-se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado à disciplina.
O projecto deverá ser desenvolvido individualmente ou em grupos de 2 elementos.
Dos enunciados abaixo o grupo deverá seleccionar um para desenvolver.
DBML Browser
Neste projecto, pretende-se desenvolver um browser para DBML (Database Markup Language).
-- JoseCarlosRamalho - 11 Nov 2007
O que se pretende neste projecto é desenvolver um Arquivo Digital de Trabalhos Práticos de Alunos, que doravante
designaremos por ADTPs.
O Arquivo deverá ser desenvolvido de acordo com o modelo de referência (norma internacional) para a implementação de reopositórios digitais: OAIS (Open Archive Information System).
Basicamente, o sistema recebe um pacote de submissão (SIP) com vários ficheiros de tipos diversos (por exemplo,
TeX, BibTeX, imagens, PDFs, código-fonte, programas executáveis). Juntamente com os ficheiros do Trabalho Prático a arquivar segue um manifesto num dialecto XML standard (METS) que define o conteúdo do pacote e permite ao sistema fazer o seu arquivo.
Além disso, esse manifesto também conterá a classificação (hierárquica ou não), descrita segundo um padrão a escolher de entre os seguintes: Dublin Core Metadata, Encoded Archival Description (EAD) e Dublin Core + Conjunto de Elementos definido pela equipe de projecto, e alguns documentos XML contendo metainformação técnica e/ou descritiva sobre cada um dos ficheiros.
O sistema procede à ingestão do SIP, convertendo o conjunto de ficheiros em formatos própios para armazenamento constituindo um novo pacote designado por pacote de arquivo (AIP).
Esse AIP é depois transformado, segundo regras de difusão próprias do sistema, num conjunto de novos pacotes prontos para serem difundidos/distribuídos, designados por pacotes de disseminação (DIP).
O ADTPs realiza sobre o AIP um vasto conjunto de operações de gestão do arquivo, destinadas a pequisar e a manter os ficheiros.
Resumindo o modelo OAIS comporta 3 actores (o produtor que é o autor ou a entidade ou pessoa que detem os direitos sobre o material a arquivar, o administrador do arquivo que terá o controlo das tarefas de transformação e gestão, e o consumidor que será o futuro utilizador do sistema e que irá realizar operações de pesquisa, consulta e download), 3 megaprocessos (ingestão que corresponde à entrada de materiais no arquivo, gestão/administração que corresponde às acções de transformação e gestão dos objectos digitais armazenados, e disseminação que corresponde à difusão/distribuição de objectos digitais), e 3 pacotes (SIP - "Submission Information Package", AIP - "Archival Information Package" e DIP - "Dissemination Information Package").
Objectos Digitais
Um Arquivo Digital não é mais do que um repositório de Objectos Digitais (OD) e é estes que é preciso definir em cada contexto de aplicação. No nosso caso, o OD é um trabalho prático e a sua estrutura e composição deverá ser pensada e especificada.
O grau de liberdade é grande no entanto sugere-se o seguinte esqueleto estrutural como ponto de partida:
um trabalho prático pode ser constituído por três componentes: relatório, apresentação, aplicação;
o relatório deverá ser constituído por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro TeX ou XML que lhe deu origem (será necessário pensar quais os campos de metainformação técnica que faz sentido acrescentar para cada um destes tipos de ficheiro);
a apresentação deverá ser constituída por um ficheiro em PDF podendo opcionalmente ter ainda o ficheiro PPT ou XML que lhe deu origem (será necessário ... metainformação técnica ...);
a aplicação deverá ser constituída por um conjunto de ficheiros zipado (código fonte, makefile, README, ...);
para alem de tudo isto o OD terá alguns campos de metainformação própria. A título de exemplo sugerem-se os seguintes:
Para concretizar o trabalho será necessário realizar as seguintes tarefas, algumas das quais podem prossegiur em paralelo:
Análise, caracterização e especificação da estrutura e composição de um OD;
Derivação do modelo relacional que servirá para armazenar os ODs (depois de armazenados passarão a ser AIP);
Criação da base de dados (por exemplo em MySQL);
Criação de uma interface Web (Website) para incorporação de ODs (trata-se de criar um mecanismo de ingestão semi-automática);
Criação de uma interface Web para pesquisar e aceder aos ODs armazenados (HTML + PHP, JAVA, Perl, ...);
Análise do problema com vista a conceber a arquetectura do sistema ADTPs e a funcionalidade a incluir (será usada a notação UML para a análise);
Identificação dos standards a usar para o manifesto e os formatos de arquivo.
Escalonamento de Avaliações
Para uma avaliação contínua, e uma evolução constante no desenvolvimento do projecto integrado, serão realizadas as seguintes avaliações:
Entrega de um relatório com a especificação da estrutura dos trabalhos práticos a armazenar, bem como a estrutura da base de dados a ser utilizada no sistema (7 de Dezembro)
dado que não existiu aula a 3 de Dezembro, o prazo foi alargado a 14 de Dezembro
enviar relatório (PDF,XML,...) para ambs@di.
Entrega da base de dados e interface para a inserção assistida de trabalhos práticos (21 de Dezembro).
Entrega das interfaces de pesquisa (baseada em keywords, e baseada em taxonomia) de trabalhos práticos (18 de Janeiro).
Propostas de trabalho para o Segundo Semestre
Q1: Disseminação
Em relação ao trabalho desenvolvido, é necessário completar o ciclo de vida de um arquivo com a disseminação de pacotes. Assim, após a pesquisa de um trabalho prático (e de o utilizador ter encontrado o trabalho em
causa), deve ser possível:
descarregar cada trabalho prático num ZIP completo;
descarregar um ZIP com o Relatório (ou apresentação, ou código)
Para ajudar a selecção do conteúdo que se quer descarregar, deve ser possível
navegar interactivamente sobre o filesystem do Trabalho Prático, acedendo on-line à árvore de directorias, e vizualização de ficheiros.
Q2: Recuperação de Documentos pesquisando o conteúdo (IR)
Implementar um sistema de pesquisa textual sobre os ficheiros do relatório (em alternativa ou complemento, sugere-se a indexação de código fonte para pesquisa por nomes de funções, ou mesmo pesquisa textual sobre código C);
Q3: Construção de Documentos
A criação de documentos a partir dos TP arquivados: por exemplo, uma lista de documentos citados pelos vários relatórios; um portfólio dos trabalhos realizados por um aluno, ou pela turma de um professor, etc.
Q4: Partilha de arquivos (consulta automatica)
Implementar uma API de pesquisa sobre o arquivo através de WebServices? , de modo a que os vários arquivos possam consultar a base de trabalhos práticos dos outros arquivos. (Este trabalho levará a uma discussão prévia nas aulas de PI sobre a API a definir).
API
TextSearch: Query ----> Result*
Query: String do género: word AND word
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
TaxonomySearch: Category+ ----> Result*
Category: Código ACM de uma categoria da taxonomia
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
KeywordSearch: Keyword+ ----> Result*
Keyword: uma palavra chave ou um par "campo:palavra-chave". Os campos suportados: título, autor, oientador e resumo.
Result: Um resultado é um bloco HTML com título, link para o objecto digital, e autores.
Além dos 4 pontos anteriores, resolva ainda uma das questões abaixo à sua escolha.
Q5a:
Permitir que os TPs sejam classificados por uma árvore classificativa genérica (ontologia, com diferentes tipos de relação) e não apenas por uma taxonomia fixa (ACM);
Q5b:
Desenvolver uma API sobre o repositório de forma a que se possa programar sobre ele, ou seja criar operações que trabalhem sobre os TPs arquivados, p.ex. para retirar e compor meta-informação, fazer resumos de relatórios, extrair comentários de programas, traduzir os comentários ou mesmo os relatórios, etc.;
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):
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.
Exercício de manuseamento de gramáticas (Ficha 01, exerc 1a);
9 de Outubro de 2007
Definição cuidada do objectivo específico deste Módulo: estudar tudo o que tem a ver com:
uso de Gramáticas na Especificação de Problemas (enfatizando o caso particular da Especificação de Linguagens);
uso de Gramáticas na construção sistemática dos programas que resolvem os Problemas especificados (enfatizando o caso particular da Geração Automática de Procesadores de Linguagens).
Leve abordagem ao tema "métricas para aferir a qualidade de uma Gramática" e ao tema "características de uma Linguagem que definem a sua qualidade";
Introdução à ferramenta UltraGram;
Utilização do UltraGram para estudar a GIC do Exercício 1 da Ficha Prática 1 (Gf1.1):
Geração do Autómato Determinista
Análise estática: dimensão, função de transição e Conflitos
Análise dinâmica: Stack de Parsing e Árvore de Derivação
Optimizações na Gramática e implicações na Linguagem; recurso de novo ao UltraGram para avaliar uma série de parâmetros escolhidos para medir a qualidade da Gramática:
1ªTransformação: eliminação de Produções Inúteis
2ªTransformação: alteração da linguagem (para permitir agrupar as orientações de um orientador).
15 de Outubro de 2007
Elaboração de um relatório sobre métricas de análise/avaliação da qualidade de gramáticas e linguagens;
Exercícios com a ferramenta UltraGram.
22 de Outubro de 2007
Revisão dos parâmetros usados nas aulas anteriores para avaliar a evolução da qualidade e eficiência das Gramáticas quando se fazem alterações:
Tamanho da G
Tamanho do AD LR de reconhecimento
Tamanho das Tabelas de Parsing
Tempo de Geração do Parser
Tempo de acesso à Tabelas de Parsing
Tempo de Parsing
Legibilidade de G (para o eng gra que desenvolve)
Legibilidade/Usabilidade de G (para o user final que a utiliza para conhecer a L)
Linguagem gerada por G
Recapitulação/sumário dos Exercícios feitos com a transformação de Gramáticas e da utilização da ferramenta UltraGram para avaliação:
foram feitas 2 transformações a Gf1.1 (eliminação de PInuteis e Melhoria da Linguagem) mas só a 1ª foi medida (anotando-se na tabela acima o sentido da variação) => refazer o último exercício;
foram feitas 2 transformações a Gf1.2 (eliminação de PInuteis e Melhoria da Linguagem) mas nenhuma foi medida => refazer todo o exercício.
Discussão dos relatórios elaborados na aula anterior sobre métricas de análise/avaliação da qualidade de gramáticas com o intuito de reunir a opinão recolhida pelos vários grupos num quadro de consenso geral. Nesta âmbito foram discutidos os seguintes tipos de Métricas:
de Complexidade ou de Tamanho, tendo sido identificados os seguintes parâmetros:
estruturais, tendo sido identificados os seguintes parâmetros:
Profundidade/Peso da àrvore; Balanceamento da árvore; Recursividade
Referências Bibliográficas em LaTeX:
importância das citações na escrita científica: evitar pleonasmos, reconhecimento ao autor, apresentação da base em que se suporta o trabalho, links para a profundar a leitura
o comando \cite{label} no documento
a base de dados textual com a bibliografia (fich.bib) no formato @tipo{ label, item=string (, item=string)* }
o funcionamento cooperativo dos programas LaTeX e BibTeX (e a interacção via fich.aux)
29 de Outubro de 2007
Definição dos Critérios para Caracterização de uma Gramática como geradora de programas (processadores/compiladores):
eficiência na geração
tempo geração
tamanho/complexidade das EDs usadas
eficiência no processamento (na compilação)
tempo Parsing
tamanho/complexidade das Tabelas, ou mecanismos, de decisão.
clareza/legibilidade para manutenção (perspectiva do EG)
Definição dos Critérios para Caracterização de uma Gramática como geradora de linguagens:
clareza/legibilidade para derivar frases de L (perspectiva do end-user)
características da Linguagem Gerada [mos07]:
expressividade
abstracção
compreensibilidade e documentação???
unicidade
consistência
extensibilidade ???
segurança (+comp)
realizabilidade (+comp)
eficiência dos programas (comp)
sinergia (comp)
ortogonalidade (comp)
Definição dos Parâmetros a medir para avaliar estas características (no âmbito da Geração de Programas):
tamanho de G: #T, #N, #P, #Pinuteis, #RHS, #Alt/N, #AltMedia
tipo de Recursividade
tamanho das Tabelas + tempo Decisão (acesso às Tabs ou aos Casos):
tamanho do AD-LR (#Q) ª tamanho Tab-LL
Repetição dos Exercícios feitos sobre a transformação de Gramáticas e a utilização da ferramenta UltraGram para avaliação:
foram feitas 2 transformações a Gf1.1 (eliminação de PInuteis e Melhoria da Linguagem) de modo a registar em Tabela Comparativa o valor de todos os indicadores (parâmetros) escolhidos para caracterizar o Tamanho de G
Foram feitos depois alguns testes com a Ferramenta ProGrammar (gerador de parsers LL) para tentar medir os mesmos indicadores numa situação diferente de Parsing (Top-Down em vez de Bottom-Up), tendo-se de novo recorrido a a gramática do 1ºexercício, Gf1.1, a qual teve de ser alterada (como se mostra abaixo) para Eliminar a Recursividade à Esquerda. Infelizmente este exercício, para além de mostrar que o ProGrammar? detectava logo a Recursividade à Esquerda e que, não havendo conflitos, mostrava o processo de parsing e de construção da AD, não trouxe grande ajuda nas medições pretendidas porque não mostrava as tabelas.
PGs ::= PGlist "." ;
PGlist ::= PG [ {";" PGList } ];
PG ::= TWiki.IdOrient Tipo TWiki.CoOrient Aluno "("Titulo")" Inic Fim;
TWiki.IdOrient ::= alpha ;
Tipo ::= "PHD" | "MSC" ;
TWiki.CoOrient ::= [ "CO-ORIENT" Nome ] ;
Aluno ::= Nome ;
Titulo ::= string;
Nome ::= string;
Inic ::= "INI" Ano ;
Fim ::= [ "FIM" Ano ] ;
Ano ::= numeric ;
string ::= quotedstring;
Foi introduzido um outro Tópico do Módulo: modelação de sistemas de informação com Gramáticas.
05 de Novembro de 2007
Identificaram-se as implicações que as 2 transformações T1 e T2 de Gf1.1 tiveram sobre as características a avaliar sobre gramáticas:
(C1.1)eficiência na geração: + | -
(C1.2)eficiência no processamento: + | -
(C1.3)clareza/legibilidade para manutenção: - | x
(C2.1)clareza/legibilidade para derivar frases de L: - | x
(C2.2)características da Linguagem Gerada: x | +
Relacionaram-se as Métricas propostas por Power e Malloy (M1 a M6) com os Parâmetros definidos na última aula para avaliar Gramáticas, tendo-se concluido que as três primeiras (M1 a M3) correspondiam a métricas por nós previstas enquanto que as três últimas (M4 a M6) teriam ainda de ser incluídas pois medem a dependência entre símbolos; a título de exemplo, para clarificar esta última questão, discutiu-se a diferença entre a recurisvidade directa e indirecta em listas. Assim comparando as 2 alternativas abaixo:
verificou-se que a primeira (p1,p2,p3) era preferível por diminuir a dependência entre símbolos.
Procurou-se identificar a influêndia que cada parâmetro tem sobre as características, em particular ficou clara a importância do comprimento dos Lados Direitos das Produções na eficiência do parsing.
Foram feitos depois alguns testes com a Ferramenta SLK Parser Generator (http://home.earthlink.net/~slkpg/), gerador de parsers LL, para tentar medir os mesmos indicadores numa situação diferente de Parsing (Top-Down em vez de Bottom-Up), tendo-se de novo recorrido à gramática do 1ºexercício, Gf1.1, a qual teve de ser alterada (como se mostra abaixo) para Eliminar a Recursividade à Esquerda. Desta vez obtiveram-se uma série de métricas úteis para o estudo em curso.
PGs : PGlist .
PGlist : PGlist PG
_epsilon_
PG : TWiki.IdOrient Tipo TWiki.CoOrient Aluno ( Titulo ) Inic Fim
TWiki.IdOrient : ID
Tipo : PHD
MSC
TWiki.CoOrient : _epsilon_
CO-ORIENT Nome
Aluno : Nome
Titulo : STRING
Nome : STRING
Inic : INI Ano
Fim : _epsilon_
FIM Ano
Ano : NUMBER
Fez-se ainda uma revisão completa às estrategias de Parsing Top-Down e Bottom-Up:
Relembrou-se a estrutura e conteúdo das Tabelas LL: N * T -> prod | erro
Relembrou-se o conteúdo e funcionamento da Stack de Parsing LL, que começa em <S,$> e termina <>
Relembrou-se a estrutura e conteúdo das Tabelas LR: Q * N -> Q e Q * T -> skip(Q) | red(P) | erro
Relembrou-se o conteúdo e funcionamento da Stack de Parsing LR, que começa em <> e termina <S,$>
No fim da aula, apresentou-se o 2ªTrabalho para Casa cujo enunciado se inclui na rubrica Fichas Práticas deste Módulo.
12 de Novembro de 2007
Discutiu-se a resolução (apresentada por um dos grupos) da Ficha Prática III: Transformações da Gramática Gf1.2, aferição das métricas em cada metamorfose e avaliação do impacto de cada transformação (T1, T2 e T3) sobre as características de uma gramática.
Discussão da aplicação do critério (ou métrica) dito "Fenton's Impurity" para avaliação da Dependencia entre os Símbolos Não-terminais: construção do Grafo e cálculo do factor de Fenton; inclusão de mais um critério (C1.4) que mede a facilidade de modularização e manutenção de uma gramática.
Continuou-se a trabalhar no segundo tópico do Módulo, Modelação de Sistemas de Informação com Gramáticas, com o início da resolução de um problema concreto: Especificação de um Sistema para Apoio à construção e publicação de Horários (para Alunos, Docentes e Salas) e Sumários das Aulas. Enunciou-se o problema e começou-se a especificar as classes/conceitos: Horários, Horário e Célula do Horário.
19 de Novembro de 2007
Apresentação sumária das várias opções da ferramenta SKL; e breve introdução ao AnTLR e AnTLR-Works.
Discussão da aplicação do critério (ou métrica) dito "Fenton's Impurity" para avaliação da Dependencia entre os Símbolos Não-terminais.
Conclusão da resolução de um problema concreto de Modelação de Sistemas de Informação com Gramáticas: Especificação de um Sistema para Apoio à construção e publicação de Horários (para Alunos, Docentes e Salas) e Sumários das Aulas. Continuação da especificação das Classes/conceitos (Sala, Aula, Turno, Disciplina, Aluno, Docente) com a introdução de Invariantes (via Condições Contextuais) e especificação de algumas Operações -- criação de um _Sistema de Gramáticas de 2-Níveis_.
Simulação e teste das Classes do SI criando uma Parser para reconhecer frases da Linguagem, recorrendo ao AnTLR.
26 de Novembro de 2007
Resolução de um segundo problema concreto de Modelação de Sistemas de Informação com Gramáticas: Sistema de Gestão para apoio ao Atendimento e Triagem de Paciêntes num urgência hospitalar. Especificação das Classes/conceitos (Doentes, Doente, Historial-Clinico, Episódio, Triagem, Lista-Espera) com a introdução de Invariantes (via Condições Contextuais) e especificação de algumas Operações -- criação de um _Sistema de Gramáticas de 2-Níveis_.
Simulação e teste das Classes do SI criando uma Parser para reconhecer frases da Linguagem, recorrendo ao AnTLR; construção e análise do Grafo de Sucessores (SG) para apreciar a qualidade da especificação.
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 1: Noção de Acção Semântica e de Gramática Tradutora.
Criação de uma mailing-list; Discussão e Publicação dos critérios de avaliação da UCE30-EL.
03 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Resolução do exercício 1.2 da Folha de exercícios 1 para consolidação da matéria sobre GT e AS.
Início da Resolução do exercício 1.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
10 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício 1.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
Início da Resolução do exercício 2.3 da Folha de exercícios 1 para consolidação da matéria sobre GA.
17 de Dezembro de 2007
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Início da Resolução de um novo exercício (Indice Remissivo) para consolidação da matéria sobre GA -- derivação da GIC Concreta+Abstracta a partir de um exemplo de Txt-Fnt:
Construção da Lista de Páginas;
Cálculo do Número de Páginas registadas (entradas);
Verificação da Ordem Crescente das Páginas;
Verificação da Inexistência de Palavras Repetidas.
Construção da tabela (N u T)*(AH u AS)
Introdução às métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
07 de Janeiro de 2008
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício (Indice Remissivo) para consolidação da matéria sobre GA:
Construção da Lista alfabética de Palavras associadas à lista de Páginas.
mostra-se e discute-se abaixo a solução final completa deste exercício:
p1: Index : INDICE Entradas FINDICE
p2: Entradas : Entrada
p3: | Entradas Entrada
p4: Entrada : TWiki.IdPag ":" TWiki.LstPals
p5: TWiki.LstPals : pal
p6: : TWiki.LstaPals "," pal
p7: TWiki.IdPag : num
a) criar uma lista de números de páginas
Rp2: Es0.lp = ins(E1.pg, nil)
Rp3: Es0.lp = ins(E2.pg, Es1.lp)
Rp4: E0.pg = TWiki.IdPag1.pg
Rp7: TWiki.IdPag0.pg = num1.val
b) contar as Entradas
Rp2: Es0.cnt = 1
Rp3: Es0.cnt = 1 + Es1.cnt
c) garantir que as Páginas aparecem por ordem crescente
Cp3: ( E2.pg > Es1.ult )
Rp2: Es0.ult = E1.pg
Rp3: Es0.ult = E2.pg
d) Garanta que não ha nenhuma Palavra repetida
Sol d1)
Cp3: ( testaRepete(Es1.lpal,E2.lpal) ) //operação mt pesada e desnecessaria
Rp3: Es0.lpal = concat(Es1.lpal,E2.lpal) //operação mt pesada
Rp4: E0.lpal = TWiki.LstPals2.lpal
Pp5/Rp6: TWiki.LstPals0.lpal = ins(...)
Sol d2)
Cp5: ( !existe(pal1.val,LstPals0.inlpal) ) //operação mt simples
Cp6: ( !existe(pal2.val,LstPals1.pal) )
Pp5: TWiki.LstPals0.lpal = ins(pal1.val,LstPals0.inlpal) //operação igual/ simples
Rp6: TWiki.LstPals0.lpal = ins(pal2.val,LstPals1.lpal); TWiki.LstPals1.inlpal = TWiki.LstPals0.inlpal
Rp4: TWiki.LstPals2.inlpal = Entrada0.inlpal; Entrada0.lpal = TWiki.LstPals2.lpal
Rp2: Entrada1.inlpal = nil; Entradas0.lpal = Entrada1.lpal
Rp3: Entrada2.inlpal = Entradas1.lpal; Entradas0.lpal = Entrada2.lpal
e) (ignorar restrição da alínea e)criar uma Lista de Pals com uma Lista de Pags
//de novo se coloca a mm situação da Sol d1)
//então vamos avançar logo para a Sol do tipo d2) com AHerdados
Rp4: TWiki.LstPals2.inpg = TWiki.IdPag1.pg;
TWiki.LstPals2.inlpal = Entrada0.inlpal; Entrada0.lpal = TWiki.LstPals2.lpal
Rp5: TWiki.LstPals0.lpal = update( mkpair(pal1.val,LstPals0.inpg), TWiki.LstPals0.inlpal)
//insere o par se Pal não existe, acrescenta Pag a TWiki.ListaPags se Pal ja existe
Rp6: TWiki.LstPals0.lpal = update( mkpair(pal2.val,LstPals0.inpg), TWiki.LstPals1.lpal)
TWiki.LstPals1.inlpal = TWiki.LstPals0.inlpal
Rp2: Entradas0.lpal = Entrada1.lpal; Entrada1.inlpal = nil;
Rp3: Entradas0.lpal = Entrada2.lpal; Entrada2.inlpal = Entradas1.lpal
Início da Resolução de um novo exercício (Descrição de Candidaturas; Dados gerais, Entidades proponentes, Projecto e Fases) para consolidação da matéria sobre GA:
p1: Candidatura : Dados Entidades Proj
p2: Dados : TWiki.IdCand data Eixo Prog
p3: Entidades : Entid
p4: | Entidades Entid
p5: Entid : TWiki.CodE
p6: Entid : NOVA TWiki.CodE Nome Morad Resp
p7: Proj : Desc Inic Fim Fases
p8: Fases : Fase
p9: : Fases Fase
p10: Fase : TWiki.CodE Desc Inic Fim Custo
p..: Eixo : e1 | e2 | ... en
p..: Prog : p1 | p2 | ... pk
Verificação do Programa seleccionado em função do Eixo escolhido (nos Dados);
Tratamento das Entidades -- proponente ja registado (existente na lista das Entidades), ou novo (não existente nessa lista)); identificação das Entidades que participam na Candidatura.
Sistematização dos esquemas para escolha dos atributos S e H dos simbolos e localização/escrita das regras de cálculo, condições de contexto e regras de tradução (comparação de alternativas).
Discussão/avaliação das métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
14 de Janeiro de 2008
Revisão das noções base associadas à especificação da semântica estática (restrições) e dinâmica (tradução) de Linguagens -- estádio 2: Noção e Definição formal de Gramática de Atributos.
Conclusão da Resolução do exercício sobre "Descrição de Candidaturas; Dados gerais, Entidades proponentes, Projecto e Fases" para consolidação da matéria sobre GA:
Cálculo do custo total de um Projecto em função do custo de cada Fase;
Validação da Entidade Responsável por cada Fase de um Projecto (tem de ser membro da lista de Entidades que integram essa Candidatura).
Validação do período de duração de cada Fase (tem de estar contido no período total do Projecto).
Sistematização dos esquemas para escolha dos atributos S e H dos simbolos e localização/escrita das regras de cálculo, condições de contexto e regras de tradução (comparação de alternativas).
Discussão/avaliação das métricas para Avaliação da Qualidade de uma GA:
Número de atributos, absoluto, por tipo e em relação ao total de (N u T)
Complexidade do Tipo dos atributos (atómicos ou estruturados)
Comprimento dos caminhos dos Grafos de Dependências.
Apresentação da UCE, e dos módulos intervenientes;
Apresentação do Horário e da Equipa Docente;
1 de Outubro de 2007 - 2
Exercícios Práticos na criação de DTDs;
Definição de listas de atributos em DTDs;
Exercícios no uso do XMLSpy para a criação de DTDs e documentos XML baseados em DTD;
Aula 2
9 de Outubro de 2007 - 1
Apresentação sucinta do projecto integrado: Arquivo Digital de Trabalhos Práticos (ADTPs);
Noção de Pacote de Submissão e discussão do seu Conteúdo no caso concreto do arquivo de TPs (de ficheiros TeX ou PDF, a código fonte ou executável, passando por imagens e HTMLs);
Demonstração de um Arquivo Digital de Artigos Científicos: eprints. Análise do Fluxo associado ao processo de aruivo no caso do eprints e verificação das facilidades de pesquisa e funcionalidades de um sistema deste genéro;
Discussão da estrutura de um Arquivo Digital;
Classificação de Documentos: taxonomias (CDU), evolução para ISO Thesaurus, e generalização natural para Ontologias;
Apresentação do conceito de Manifesto que acompanha o Pacote de Submissão;
9 de Outubro de 2007 - 2
Elaboração de um DTD para manifestos de pacotes de ficheiros (Submission Information Package, SIP);
Discussão do DTD obtido, e comparações com o formato METS;
Aula 3
15 de Outubro de 2007 - 1
Modelo de referência OAIS: Open Archive Information System;
Conceitos de Ingestão, Administração e Disseminação num arquivo digital;
Tipos de pacotes SIP, AIP e DIP: Submission Information Package, Archive Information Package e Dissemination Information Package;
Análise do Projecto;
15 de Outubro de 2007 - 2
Exercícios de XPath;
Aula 4
22 de Outubro de 2007 - 1
Revisões de conceitos de bases de dados: tabelas, normalização, chaves primárias e estrangeiras. (databases.pdf)
22 de Outubro de 2007 - 2
Exercícios de XSL;
Aula 5
29 de Outubro de 2007 - 1
Resolução do segundo exercício da ficha de revisões de bases de dados.
Discussão sobre a implementação em modelo relacional de taxonomias e ontologias.
29 de Outubro de 2007 - 2
Exercícios de XSL com geração de índices e travessias multiplas.
Aula 6
5 de Novembro de 2007 - 1
Discussão do enunciado do projecto integrado e das tarefas a realizar;
Discussão da arquitectura do Arquivo Digital de Trabalhos Práticos;
Brainstorming sobre várias abordagens para a representação do AIP em sistema relacional;
5 de Novembro de 2007 - 2
Exercícios de construção de Schemas, e processamento de documentos XML com base em XSL;
Aula 7
12 de Novembro de 2007 - 1
Aula usada para trabalho em grupo no projecto integrado;
Criação de um ambiente de trabalho em servidor partilhado;
12 de Novembro de 2007 - 2
Descrição em Schema de um tipo de documento para relatórios;
Criação de grupos e elementos como aliases em documentos recorrentes;
Aula 8
19 de Novembro de 2007 - 1
Brainstorming sobre a interface Web para submissão de trabalhos práticos;
Brainstorming sobre a estrutura da base de dados e repositório de trabalhos;
Início da criação de uma base de dados;
19 de Novembro de 2007 - 2
Análise do Schema 'report' para relatórios de trabalhos práticos;
Início do desenvolvimento de uma XSL para a transformação do formato report em HTML;
Algumas noções sobre HashTables e Contadores;
Aula 9
26 de Novembro de 2007 - 1
Discussão sobre a metodologia de avaliação da UCE e Projecto Integrado;
Definição de metas/milestones para etapas do Projecto Integrado;
Desenvolvimento da base de dados do Projecto Integrado;
26 de Novembro de 2007 - 2
Continuação do desenvolvimento de uma XSL para a transformação do formato report para HTML;
Uso de xsl:document-result para a geração de mais do que uma página;
Algumas experiências com eixos.
Aula 10
3 de Dezembro de 2007 - 1
Dada a participação do docente no Simpósio Doutoral do 13º Encontro Português de Inteligência Artificial (EPIA), foi sugerido aos alunos o uso da aula para o desenvolvimento do Projecto Integrado;
3 de Dezembro de 2007 - 2
...
Aula 11
10 de Dezembro de 2007 - 1
Discussão do trabalho prático, com ênfase em algumas dúvidas sobre a estrutura da base de dados.
10 de Dezembro de 2007 - 2
Exercícios de construção de um Topic Map a partir de um XML de uma árvore genealógica.
Aula 12
17 de Dezembro de 2007 - 1
Análise por grupos das estruturas de base de dados propostas por outros grupos.
17 de Dezembro de 2007 - 2
Exercícios de geração de XSL-FO a partir de um relatório em XML (Report2007).
Aula 13
7 de Janeiro de 2008 - 1
Discussão sobre a evolução dos trabalhos práticos: definição da interface para upload de trabalhos práticos.
7 de Janeiro de 2008 - 2
Exercícios de geração de website a partir de vários documentos XML usando XSL.
Aula 14
14 de Janeiro de 2008 - 1
Discussão sobre a evolução dos trabalhos práticos. Análise de alguns trabalhos.
14 de Janeiro de 2008 - 2
Exercícios de revisão
Aula 15
21 de Janeiro de 2008 - 1
Revisões de Processamento estruturado de documentos
21 de Janeiro de 2008 - 2
Revisões de Processamento estruturado de documentos
Aula 16 (Início do 2ºSemestre)
03 de Março de 2008 - 1
Tendo por base as deficiências e dificuldades identificadas aquando da avaliação intermédia (fim do 1ºSem.) do Projecto Integrado, esta parte da aula foi totalmente dedicada à
Resolução de um exercício de modelação em UML de um sistema de informação -- Gestão de Contas Bancárias, Clientes, Cartões e Movimentos -- para sedimentar esta componente essencial do projecto (a modelação do sistema).
03 de Março de 2008 - 2
A 2ªparte desta aula de recomeço foi essencialmente dedicada a analisar as conclusões retiradas da 1ª avaliação intermédia e a replanear a actividade de cada grupo, face ao que já fizeram e ao que tem agora de fazer para:
(a) cumprir integralmente os objectivos de um Arquivo Digital, estabelecidos para o 1ºSem.;
(b) incluir agora uma nova funcionalidade para Recuperção de Informação (vulgo, Information Retrieval) que misture os conceitos de pesquisa estrutural em XML com a noção de similaridade textual.
Nesse sentido foi solicitado aos Grupos que troussessem na próxima aula um planeamento rigoroso de todo o projecto (incluindo as fases já percorridas).
Aula 17
10 de Março de 2008 - 1 e 2
Análise da situação concreta do estado de desenvolvimento do projecto de cada grupo; discussão do relatório e replaneamento.
Aula 18
31 de Março de 2008 - 1 e 2
Apresentação detalhada (discussão) dos 5 novos requisitos funcionais (4 obrigatórios e 1 alternativo) a acrescentar ao sistema.
Aula 19
07 de Abril de 2008 - 1 e 2
Apresentação detalhada do conceito de DIP: informação e funcionalidade associadas.
Aula 20
14 de Abril de 2008 - 1 e 2
Implementação do DIP;
Discussão com cada grupo das alternativas estudadas e das decisões tomadas.
TWiki's Education/EL0708 webThe Education/EL0708 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708Copyright 2020 by contributing authors2009-09-26T08:32:08ZWebHomehttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/WebHome2009-09-26T08:32:08ZUnidade Curricular de Especialização Engenharia de Linguagens Engenharia de Linguagens Trabalhos Finais 2 Apresentação Relatório ... (last changed by PedroRangelHenriques)PedroRangelHenriquesEngenhariaGramaticalhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/EngenhariaGramatical2008-10-05T10:52:18ZEngenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ... (last changed by PedroRangelHenriques)PedroRangelHenriquesSumariosATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosATS2008-10-05T10:35:54ZEngenharia 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 ... (last changed by PedroRangelHenriques)PedroRangelHenriquesAlunoshttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Alunos2008-10-05T09:35:45ZEngenharia de Linguagens Alunos/Grupos Grupo 1 António Sérgio Matos da Silva Sandra Teixeira Grupo 2 Nuno Ernesto Salgado Oliveira ... (last changed by PedroRangelHenriques)PedroRangelHenriquesFichasEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasEG2008-10-05T09:34:35ZEngenharia de Linguagens Engenharia Gramatical Fichas Práticas Ficha I: Exercícios para Análise Gramatical Ficha II: Pesquise na Internet o que há ... (last changed by PedroRangelHenriques)PedroRangelHenriquesResultadosAvaliaçãohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/ResultadosAvaliação2008-07-31T09:07:01ZEngenharia de Linguagens Resultados da Avaliação NT NT NT NT NAC NAC NAC NAC PI PI Nome ... (last changed by AlbertoSimoes)AlbertoSimoesFichasATShttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasATS2008-07-03T23:20:59ZEngenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ... (last changed by DanielaCruz)DanielaCruzSumariosPIhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosPI2008-06-16T10:20:07ZEngenharia de Linguagens Projecto Integrado Sumários Aula 1 1 de Outubro de 2007 1 Apresentação da UCE, e dos módulos intervenientes; Apresenta ... (last changed by AlbertoSimoes)AlbertoSimoesProjectohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Projecto2008-06-02T11:37:08ZEngenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ... (last changed by AlbertoSimoes)AlbertoSimoesStringTemplatehttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/StringTemplate2008-04-20T23:13:01ZDanielaCruz 20 Apr 2008 (last changed by DanielaCruz)DanielaCruzAvalEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalEG2008-03-09T10:51:05ZEngenharia de Linguagens Engenharia Gramatical Avaliação Final 2007/2008 NOME G TP1 TP2 TP3 TP4 TPF AvDez AvSem ... (last changed by PedroRangelHenriques)PedroRangelHenriquesHorario2http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario22008-02-25T22:00:07ZEngenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)AlbertoSimoesHorario1http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario12008-02-25T18:15:24ZEngenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)AlbertoSimoesAvalPEDhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalPED2008-02-19T16:21:12ZEngenharia de Linguagens Programação Estruturada de Documentos Avaliação Final 2007/2008 Número Nome Tipo aval. Título Nota 41008 ... (last changed by JoseCarlosRamalho)JoseCarlosRamalhoAvaliaçãohttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Avaliação2008-02-10T16:55:56ZEngenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ... (last changed by AlbertoSimoes)AlbertoSimoesSumariosEGhttp://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosEG2008-01-20T07:50:55ZEngenharia de Linguagens Engenharia Gramatical Sumários 1 de Outubro de 2007 Revisão de alguns conceitos na construção de parsers: análise léxica ... (last changed by PedroRangelHenriques)PedroRangelHenriques
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ...
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 ...
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ...
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ...
Engenharia de Linguagens Notas Pedagógicas Relatórios Schema oficial para os relatórios (solicitação de alterações para jcr #64;di.uminho.pt) report ...
Projecto de PED2007 Este projecto destina se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado ...
Education/EL0708 Web Preferences The following settings are web preferences of the Education/EL0708 web. These preferences overwrite the site level preferences ...
Engenharia de Linguagens Projecto Integrado 1 Objectivos Com este projecto integrado pretende se sedimentar os conhecimentos introduzidos nas aulas teóricas dos ...
Engenharia de Linguagens Scripting no Processamento de Linguagem Natural Programa resumido Linguagens de scripting: características, objectivos e conceitos ...
Engenharia de Linguagens Análise e Transformação de Software Programa resumido Parsing generalizado e Regras de Desambiguidade: Parsing LL ou LR Generalizado ...
Engenharia de Linguagens Processamento Estruturado de Documentos Programa resumido Introdução e um pouco de história: SGML, HTML, XML, SML. Documentaç ...
Engenharia de Linguagens Análise e Transformação de Software Programa resumido Parsing generalizado e Regras de Desambiguidade: Parsing LL ou LR Generalizado ...
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ...
Engenharia de Linguagens Notas Pedagógicas Relatórios Schema oficial para os relatórios (solicitação de alterações para jcr #64;di.uminho.pt) report ...
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ...
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ...
Engenharia de Linguagens Projecto Integrado 1 Objectivos Com este projecto integrado pretende se sedimentar os conhecimentos introduzidos nas aulas teóricas dos ...
Projecto de PED2007 Este projecto destina se a quem quiser aprofundar os seus conhecimentos de uma forma mais prática e desta maneira conseguir também ser avaliado ...
Engenharia de Linguagens Processamento Estruturado de Documentos Programa resumido Introdução e um pouco de história: SGML, HTML, XML, SML. Documentaç ...
Engenharia de Linguagens Scripting no Processamento de Linguagem Natural Programa resumido Linguagens de scripting: características, objectivos e conceitos ...
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ...
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 ...
Education/EL0708 Web Preferences The following settings are web preferences of the Education/EL0708 web. These preferences overwrite the site level preferences ...
This is a subscription service to be automatically notified by e-mail when topics change in this Education/EL0708 web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
These settings override the defaults for this web only. See full list of defaults with explanation. Many of the settings below are commented out. Remove the # sign to enable a local customisation.
Web-specific background color: (Pick a lighter one of the StandardColors).
Set WEBBGCOLOR = #D0D0D0
Note: This setting is automatically configured when you create a web
Image, URL and alternate tooltip text of web's logo. Note: Don't add your own local logos to the TWikiLogos topic; create your own logos topic instead.
List this web in the SiteMap. If you want the web listed, then set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Use links that include the name of the web, i.e. Education/EL0708.Topic links. Note: Unlike other variables, the setting of SITEMAPLIST is not inherited from parent webs. It has to be set in every web that is to be listed in the SiteMap
Set SITEMAPLIST = on
Set SITEMAPWHAT = Engenharia Linguagens
Set SITEMAPUSETO = Engenharia Linguagens
Note: Above settings are automatically configured when you create a web
Exclude web from a web="all" search: (Set to on for hidden webs).
Set NOSEARCHALL =
Note: This setting is automatically configured when you create a web
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
#Set NOAUTOLINK =
Note: You can still use the [[...][...]] syntax to link topics if you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
Comma separated list of forms that can be attached to topics in this web. See TWikiForms for more information.
Set WEBFORMS =
Users or groups who are not / are allowed to view / change / rename topics in the Education/EL0708 web: (See TWikiAccessControl). Remove the # to enable any of these settings. Remember that an empty setting is a valid setting; setting DENYWEBVIEW to nothing means that anyone can view the web.
Set DENYWEBVIEW =
Set ALLOWWEBVIEW =
Set DENYWEBCHANGE =
Set ALLOWWEBCHANGE = JoseCarlosRamalho,Main.AlbertoSimoes,Main.PedroRangelHenriques,Main.DanielaCruz
Set DENYWEBRENAME =
Set ALLOWWEBRENAME = JoseCarlosRamalho,Main.AlbertoSimoes,Main.PedroRangelHenriques,Main.DanielaCruz
Users or groups allowed to change or rename this WebPreferences topic: (e.g., TWikiAdminGroup)
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #D0D0D0
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce your own preferences variables and use them in your topics and templates.
TWiki search results for \.*
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708
The Education/EL0708 web of TWiki. TWiki is a Web-Based Collaboration Platform for the Enterprise.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Education/EL0708
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708
/twiki/pub/Main/LocalLogos/um_eengP.jpgWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/WebHome
Unidade Curricular de Especialização Engenharia de Linguagens Engenharia de Linguagens Trabalhos Finais 2 Apresentação Relatório ... (last changed by PedroRangelHenriques)2009-09-26T08:32:08ZPedroRangelHenriquesEngenhariaGramatical
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/EngenhariaGramatical
Engenharia de Linguagens Engenharia Gramatical Programa Resumido O paradigma da Programação baseada em Gramáticas (PG). Conceitos sobre Gramáticas de Atributos ... (last changed by PedroRangelHenriques)2008-10-05T10:52:18ZPedroRangelHenriquesSumariosATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosATS
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 ... (last changed by PedroRangelHenriques)2008-10-05T10:35:54ZPedroRangelHenriquesAlunos
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Alunos
Engenharia de Linguagens Alunos/Grupos Grupo 1 António Sérgio Matos da Silva Sandra Teixeira Grupo 2 Nuno Ernesto Salgado Oliveira ... (last changed by PedroRangelHenriques)2008-10-05T09:35:45ZPedroRangelHenriquesFichasEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasEG
Engenharia de Linguagens Engenharia Gramatical Fichas Práticas Ficha I: Exercícios para Análise Gramatical Ficha II: Pesquise na Internet o que há ... (last changed by PedroRangelHenriques)2008-10-05T09:34:35ZPedroRangelHenriquesResultadosAvaliação
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/ResultadosAvaliação
Engenharia de Linguagens Resultados da Avaliação NT NT NT NT NAC NAC NAC NAC PI PI Nome ... (last changed by AlbertoSimoes)2008-07-31T09:07:01ZAlbertoSimoesFichasATS
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/FichasATS
Engenharia de Linguagens Análise e Transformação de Software Fichas Práticas Ficha I Com a intenção de levar os alunos a fazer um exercício de transformação ... (last changed by DanielaCruz)2008-07-03T23:20:59ZDanielaCruzSumariosPI
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosPI
Engenharia de Linguagens Projecto Integrado Sumários Aula 1 1 de Outubro de 2007 1 Apresentação da UCE, e dos módulos intervenientes; Apresenta ... (last changed by AlbertoSimoes)2008-06-16T10:20:07ZAlbertoSimoesProjecto
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Projecto
Engenharia de Linguagens Projecto Integrado Arquivo Digital de Trabalhos Práticos de Alunos O que se pretende neste projecto é desenvolver um Arquivo Digital de ... (last changed by AlbertoSimoes)2008-06-02T11:37:08ZAlbertoSimoesStringTemplate
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/StringTemplate
DanielaCruz 20 Apr 2008 (last changed by DanielaCruz)2008-04-20T23:13:01ZDanielaCruzAvalEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalEG
Engenharia de Linguagens Engenharia Gramatical Avaliação Final 2007/2008 NOME G TP1 TP2 TP3 TP4 TPF AvDez AvSem ... (last changed by PedroRangelHenriques)2008-03-09T10:51:05ZPedroRangelHenriquesHorario2
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario2
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no segundo semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)2008-02-25T22:00:07ZAlbertoSimoesHorario1
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Horario1
Engenharia de Linguagens Horário A Unidade Curricular de Especialização de Engenharia de Linguagens funcionará no primeiro semestre de 2007/2008 às Segundas Feiras ... (last changed by AlbertoSimoes)2008-02-25T18:15:24ZAlbertoSimoesAvalPED
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/AvalPED
Engenharia de Linguagens Programação Estruturada de Documentos Avaliação Final 2007/2008 Número Nome Tipo aval. Título Nota 41008 ... (last changed by JoseCarlosRamalho)2008-02-19T16:21:12ZJoseCarlosRamalhoAvaliação
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/Avaliação
Engenharia de Linguagens Avaliação A avaliação da UCE de Engenharia de Linguagens é calculada pela seguinte fórmula: NF 50% NP 25% NT 25% NAC Requisitos: ... (last changed by AlbertoSimoes)2008-02-10T16:55:56ZAlbertoSimoesSumariosEG
http://wiki.di.uminho.pt/twiki/bin/view/Education/EL0708/SumariosEG
Engenharia de Linguagens Engenharia Gramatical Sumários 1 de Outubro de 2007 Revisão de alguns conceitos na construção de parsers: análise léxica ... (last changed by PedroRangelHenriques)2008-01-20T07:50:55ZPedroRangelHenriques