<?xml version="1.0" ?>

<documento html="default" latex="article">

<titulo> Projects Description
</titulo>

<autor>
João Saraiva <br/>
<link href="mailto:jas@di.uminho.pt"> jas@di.uminho.pt </link>
</autor>

<instituicao>

<tabela htmlview="html">

<linha>
<elem>Departamento de Informática  </elem>
</linha>


<linha>
<elem>Universidade do Minho</elem>
</linha>


</tabela>

</instituicao>

<par/>


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 <link href="http://www.di.uminho.pt/~jas/">página
pessoal</link>), nomeadamente:

<itemize>

<item> Programação Funcional </item>

<item> Ambientes de Programação/Processadores de Linguagens (usando o
sistema Lrc ou não)
</item>

<item> Gramáticas de Atributos </item>

<item> Tecnologias XML </item>

</itemize>


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):

<itemize>

<item> 
<link href="http://www.research.philips.com/">
Philips Research - Eindhoven
</link>
</item>

<item> <link href="http://www.ordina.nl"> Ordina Institute - Amsterdam
</link>
</item>

<item> 
<link href="http://www.software-improvers.com/">
SIG - CWI, Amsterdam
</link>
</item>

</itemize>



<capitulo nome="Alguns Projectos">

<itemize>

<item> <cor cor="green"><bold>Animação de Documentos XML</bold></cor>:

<par/>

Recentemente foi incluído no <link
href="http://www.di.uminho.pt/~jas/Research/LRC/lrc.html">
<it>Lrc</it></link> 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.

<par/>

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.

<par/>

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.

<par/>
<par/>

<bold>Area:</bold> <it>Processamento de Linguagens, Gramática de Atributos, Visualização de Algoritmos, Tecnologias XML</it> 

<par/>
</item>


<item> <cor cor="green"><bold>Vistas Múltiplas para Gramáticas
Abstractas/Tipos de Dados</bold></cor>:

<par/>

Nas cadeiras de <link href="http://www.di.uminho.pt/~jas/mpiii.html">
Métodos de Programação III </link> e
<link href="http://www.di.uminho.pt/~jas/pli.html">
Processamento de Linguagens I </link> (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:

<par/>

<itemize>
<item>
João Saraiva, <it>From Context-Free Grammars into recursive Data Types
in the C Language</it>, Relatório Técnico, Departamento de
Informática, Universidade do Minho, Maio de 2001. 
<link
href="http://www.di.uminho.pt/~jas/Teaching/LectureNotes/CFGinC.ps.gz">
postscript
</link>.
</item>
</itemize>


<par/>

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 
<link href="http://www.di.uminho.pt/~jas/Research/LRC/lrc.html">
<it>Lrc</it></link> para visualização de árvores, como entrada da
ferramenta, de modo a produzir os constructores (Haskell, C e Java)
para esta gramática.

<par/>

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.


<par/>
<bold>Area:</bold> <it>Processamento de Linguagens, Gramática de Atributos, Visualização de Algoritmos</it> 

<par/>
<par/>

</item>


<item>  <cor cor="green"><bold>Embebendo XQuery em Gramáticas de Atributos</bold></cor>:

<par/>

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.

<par/>

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 
<link href="http://www.di.uminho.pt/~jas/pli.html">
Processamento de Linguagens I </link> (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.

<par/>

Uma das características do sistema <link
href="http://www.di.uminho.pt/~jas/Research/LRC/lrc.html">
<it>Lrc</it></link> é 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.

<par/>
<par/>

<bold>Area:</bold> <it>Linguagens de Interrogação de Bases de Dados,
Gramática de Atributos, Tecnologias XML</it>

<par/>

</item>




<item>  <cor cor="green"><bold>Decoração de DAGs:</bold></cor>(master thesis)

<par/>

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). <link
href="ftp://ftp.cs.uu.nl/pub/RUU/CS/phdtheses/Saraiva/"> Ver secção
6.6 da tese.
</link>

</item>


</itemize>

</capitulo>

</documento>



