|
De seguida apresento alguns projectos para opção III/Estágio/Mestrado (dependendo do grau de aprofundamento do tema) que gostava de ver realizados. No entanto, estarei muito interessado em orientar qualquer grupo/aluno nas áreas em que tenho recentemente trabalhado (ver a minha
página pessoal
), nomeadamente:
- Programação Funcional
- Ambientes de Programação/Processadores de Linguagens (usando o sistema Lrc ou não)
- Gramáticas de Atributos
- Tecnologias XML
Desde 1998 que o DI mantém contactos com alguns institutos de investigação/empresas estrangeiras, o que tem permitido aos alunos do DI realizar projectos de estágio no estrangeiro ao abrigo de uma bolsa Da Vinci da UE. Os alunos que estiverem interessados em realizar estágios/teses de mestrado nas seguintes empresas devem contactar-me (de preferência via email):
1 Alguns Projectos
- Animação de Documentos XML
:
Recentemente foi incluído no
Lrc
a possibilidade de gerar ferramentas que permitem visualizar graficamente o texto de entrada e animar a tarefa de processar esse mesmo texto. Para tal usou-se um sistema de visualização de grafos GraphViz, desenvolvido na AT & T, e integraram-se os dois sistemas.
Desenvolveu-se também um visualizador para os combinadores de XML (ou mais genericamente, combinadores de documentos) existentes no Lrc (por exemplo, esta página foi produzida por tais combinadores). Deste modo é possível ver já um texto XML como uma árvore (na notação) XML.
Neste projecto pretende-se combinar as animações com os combinadores de XML/documentos do Lrc de modo a definir a semântica de documentos elegante e concisamente via gramáticas de atributos e obter automaticamente um animador de documentos.
Area:
Processamento de Linguagens, Gramática de Atributos, Visualização de Algoritmos, Tecnologias XML
- Vistas Múltiplas para Gramáticas Abstractas/Tipos de Dados
:
Nas cadeiras de
Métodos de Programação III
e
Processamento de Linguagens I
(anos lectivos 00/01) foram apresentadas regras para converter gramáticas em tipos de dados Haskell e C, respectivamente. Tal como descrito no relatório técnico:
- João Saraiva,
From Context-Free Grammars into recursive Data Types in the C Language
, Relatório Técnico, Departamento de Informática, Universidade do Minho, Maio de 2001.
postscript
.
Neste projecto pretende-se desenvolver uma ferramenta para automatizar esse processo e permitir ainda vizualizar graficamente instâncias dessas gramáticas (ie, árvores abstractas). A ferramenta a desenvolver, dada uma gramática abstracta (escrita numa notação a definir), produzirá, numa primeria fase, uma representação em Haskell, C e Java desta gramática. Posteriormente, pretende-se utilizar a gramática abstracta incluída no sistema
Lrc
para visualização de árvores, como entrada da ferramenta, de modo a produzir os constructores (Haskell, C e Java) para esta gramática.
Tendo produzido os constructores para visualizar árvores nestas linguagens (ou por outras palavras, um módulo que permite visualizar gráficamente árvores), pretende-se que a ferramente inclua chamadas a estas funções quando produz as representações Haskell, C e Java a partir da gramática abstracta. Assim, a ferramenta desenvolvida produzirá automaticamente uma representação gráfica de instâncias da gramática.
Area:
Processamento de Linguagens, Gramática de Atributos, Visualização de Algoritmos
- Embebendo XQuery em Gramáticas de Atributos
:
Este projecto é a continuação de um projecto de opção III em que se estenderam os combinadores Haskell para XML, HaXmL, com uma linguagem de interrogações (similar à XQuery) de modo a permitir interrogar documentos XML processados com o HaXmL.
Neste projecto pretende-se embeber o XQuery nas gramáticas de atributos de modo a permitir ao utilizador interrogar qualquer linguagem/texto definido via gramáticas de atributos. Por exemplo, no trabalho prático de
Processamento de Linguagens I
(ano lectivo 00/01), foi construída uma folha de cálculo para gerir/manipular as notas dos alunos. Com os resultados deste projecto, será possível, por exemplo, "perguntar" quais os alunos que passaram à cadeira. Isto sem termos de alterar a gramática de atributos escrita nesse trabalho.
Uma das características do sistema
Lrc
é a de permitir várias vistas sobre o mesmo input (ou melhor, sobre a mesma árvore sintáctica). Usando o sistema Lrc neste projecto, será possível termos diferentes vistas para a nossa linguagem de interrogação: uma mais orientada à notação XML (e mais "verbosa") e uma mais concreta/concisa. Ao utilizador será dada a possibilidade de escolher em que notação prefere fazer as suas interrogações.
Area:
Linguagens de Interrogação de Bases de Dados, Gramática de Atributos, Tecnologias XML
- Decoração de DAGs:
(master thesis)
Este projecto vem no seguimento da minha tese de doutoramento. Pretende-se implementar o conceito de decoração de DAGs (em vez da decoração de árvores tradicional).
Ver secção 6.6 da tese.
|