EPL
O grupo de Especificação e Processamento de Linguagens (gEPL) é responsável pelo ensino e investigação (teórica e aplicada) na área do processamento de linguagens. A preocupação central dessa área (em torno da qual se concentra toda a actividade do gEPL) é a definição rigorosa de linguagens e o desenvolvimento sistemático dos respectivos processadores. O rigor da especificação sintáctica e semântica das linguagens é obtido através do uso de Gramáticas (gramáticas e expressões regulares, gramáticas independentes de contexto, gramáticas tradutoras e de atributos, etc.); a construção sistemática de aplicações para editar, reconhecer e transformar as frases dessas linguagens é conseguida pelo recurso a Geradores de Programas que tomam como entrada as referidas gramáticas e produzem, como saída, os processadores pretendidos. Tendo esta área começado com o objectivo de sistematizar e facilitar a construção de compiladores (para traduzir linguagens de programação de alto-nível para assembly, ou código-máquina), hoje em dia abarca um leque muito maior de situações, desde a produção de processadores para as mais variadas linguagens de domínio específico, passando pelo tratamento de linguagem natural, até ao processamento estruturado de documentos anotados. O tratamento de linguagens visuais é, obviamente, outro tópico abrangido pela área em causa. A aproximação baseada em gramáticas, seguida para lidar com linguagens, levou-nos a criar aquilo que mantém actualmente a coesão do grupo e que designamos por "abordagem gramatical à resolução de problemas por computador". Este estilo de programação pode ser caracterizado pela separação do problema em duas componentes--a forma (estrutura), ou sintaxe; e o conteúdo, ou semântica--e a construção do programa centrado na representação interna (em árvore, ou não) do conhecimento a ser manipulado. Esta abordagem é do tipo "transformacional" (o resultado final obtém-se por transformação do significado extraído dos dados de entrada) e "generativo" (o transformador será, sempre que possível, construído automaticamente e não codificado caso a caso). Formado por 5 docentes do staff permanente do DI, conta todos os anos com um número elevado de colaboradores que gravitam à sua volta (chegam a ultrapassar os 15, ou 20 membros, em simultâneo). Esses membros variam desde alunos de pós-graduação (a fazer pós-doutoramento, doutoramento ou mestrado) a colaboradores (que desenvolvem software para determinados projectos de apoio ao exterior), passando por alunos de licenciatura (em estágio, ou a fazer projectos de fim de curso) e bolseiros associados a projectos de investigação. Algumas das sub-áreas e projectos que ilustram a actividade predominante dos membros do gEPL são: - compilação tradicional (definição de linguagens de programação e desenvolvimento de compiladores com base em gramáticas de atributos, estudo e desenvolvimento de geradores de compiladores suportados por gramáticas de atributos, criação de frameworks para construção de compiladores, geração de geradores de código gerais e específicos); - visualização, animação e compreensão de programas; - processamento de linguagem natural (análise léxica e morfológica, reconhecimento de linguagens com ambiguidades, thesaurus e dicionários, processamento linguístico de corpora e mineração de texto, tradução automática e alinhamento de textos, classificação de documentos e ontologias); - processamento estruturado de documentos (anotação e transformação baseada em XML/XLS/TopicMaps); - gestão documental (arquivos, bibliotecas digitais e museus virtuais); - web semântica, serviços web e serviços baseados em localização geográfica. O grupo tem também desenvolvido algum trabalho na área dos sistemas de informação e tratamento de dados (análise e mineração), defendendo actualmente o desenvolvimento deste tipo de aplicações com base em tecnologia Web.
http://wiki.di.uminho.pt/twiki/bin/view/EPL/WebHome