Universidade do Minho
Departamento de Informática

Tópicos

Avisos

2 Jul Já está disponível o formulário para candidatura online.

9 Mai Já está disponível o programa das JOIN'07, onde será feita a apresentação pública do Mestrado de Informática.

5 Mai A apresentação pública do Mestrado de Informática será feita nos próximos dias 10 e 11 de Maio no Anfiteatro A1 do Campus de Gualtar.

9 Mar As candidaturas decorrerão entre 11 de Junho e 3 de Setembro.

Engenharia de Linguagens

A necessidade de processar com eficácia linguagens (formais ou naturais) levou à criação de formalismos para especificação das linguagens e respectivo tratamento e introduziu na programação alguns conceitos que se revelaram relevantes e poderosos no sentido de permitir um desenvolvimento rápido e seguro dos programas responsáveis pelo reconhecimento e transformação das frases dessas linguagens (os textos-fonte). Desses conceitos destacamos: a abordagem sintáctico-semântica aos problemas (que também costumamos designar por abordagem gramatical); o uso de _árvores de sintaxe abstractas decoradas com atributos_ para representação interna do conhecimento; e a geração automática, ou síntese, de programas.

Nesta UCE pretende-se ensinar essas bases e transportar os métodos, técnicas e ferramentas para três campos de aplicação prática mais vastos: engenharia documental e engenharia Web, para anotar e processar estruturalmente documentos e distribuí-los, de modo a permitir construir, gerir e usar bibliotecas, arquivos e museus virtuais; engenharia de software, fornecendo meios de compreender e transformar programas, tarefas essas que estão na base da manutenção de software; engenharia do conhecimento, fornecendo meios de explorar documentos (textos em língua natural e documentos anotados) e extrair deles informação necessária para a sua classificação, sumarização, tradução, etc.

Coordenação Científica

Módulos

  • Engenharia Gramatical?
  • Scripting no Processamento de Linguagem Natural?
  • Análise e Transformação de Software?
  • Processamento Estruturado de Documentos?

Resultados de Aprendizagem

Depois da breve introdução dos vários módulos é fácil concluir o aluno frequentador desta UCE terá um leque bastante alargado de competências o que lhe permitirá actuar num série de contextos diversos.

As competências a adquirir ao longo da UCE podem dividir-se em três grupos: tecnológicas, específicas e genéricas.

Competências Tecnológicas

Toda a aprendizagem da Engenharia de Linguagens requer o domínio de um conjunto alargado de tecnologias. Estas competências devem ser adquiridas numa fase inicial pois tudo o resto dependerá delas.

Assim, as competências tecnológicas que um aluno deverá adquirir são as seguintes:

  1. Modelação de dados estruturados e semiestruturados baseada em gramáticas: Gramáticas Independentes de Contexto, Gramáticas de Atributos, XML Schema e RelaxNG.
  2. Programação baseada em regras: autómatos reactivos, programação por eventos, programação estratégica (uso do Strafunski).
  3. Especificação e Processamento de Linguagens de Anotação: XML, XPath e XQuery.
  4. Utilização de ferramentas de geração de compiladores, dos casos mais simples como o lex/yacc, ou o Halex/Happy, aos mais evoluídos como o SGen ou o LRC, passando pelos intermédios e clássicos como o LISA, CoCO/R, AntLR, PCCTS, Eli.
  5. Programação funcional com XML/XSLT.
  6. Programação Web com HTML, JavaScript, CGI Script, PHP, Perl, ou similares.
  7. Utilização de ferramentas para extracção automática, manipulação e navegação em ontologias, como o Metamorphosis, ou o Omnigator.
  8. Criação de serviços Web a partir de aplicações locais: SOAP, WSDL, ...
  9. Utilização de ferramentas para compreensão de programas, como o !CodeSurfer, SHriMP, WARE/WANDA, PBS.
  10. Utilização de ferramentas de edição especializada como editores estruturados: XMLSpy, Oxygen, Eclipse.

Competências Específicas

No fim da UCE, um aluno deverá ter adquirido as competências específicas que lhe permitem desempenhar as tarefas chave no processo de desenvolvimento dentro das áreas científicas características desta unidade:

  1. Ver a Engenharia de Linguagens como uma área multidisciplinar que junta factores de engenharia, tecnológicos e pedagógicos.
  2. Compreender a filosofia de desenvolvimento baseada na separação sintáctico-semântica, ou seja, da estrutura/conteúdo do problema, e no uso de uma representação interna do significado para travessia sucessiva a fim de a transformar na solução desejada.
  3. Compreender o contexto das aplicações e sistemas baseados em regras.
  4. Modelar um sistema: levantamento dos requisitos, especificação dos requisitos do utilizador usando casos de uso e cenários; especificação dos requisitos da informação; especificação dos atributos de apresentação.
  5. Especificar a interface.
  6. Prototipar incrementalmente e iterativamente: programação; integração e teste de módulos; testes de consistência.
  7. Reflectir, avaliar, explicar e justificar soluções de Engenharia de Linguagens.

Competências Genéricas

Independentemente das áreas científicas específicas de cada UCE, um futuro mestre em engenharia terá de adquirir competências relacionadas com a capacidade genérica de projectar e desenvolver em equipa sistemas complexos, nomeadamente:

  1. Planeamento e Gestão de Projectos.
  2. Trabalho em equipa.
  3. Reutilização de materiais.
  4. Pesquisa, relato e apresentação, escrita ou oral, do
processo de desenvolvimento e dos resultados obtidos.

Parcerias

  • Instituto Politécnico de Bragança

Áreas Científicas (classificação ACM)

A distribuição dos 30 ECTS da UCE pelas áreas científicas classificadas no ACM Computing Curricula (1998), é apresentada a seguir:

  • Grammars and Other Rewriting Systems (5 ECTS)

ACMCCS98/Theory of Computation/Mathematical logic and formal languages/ Grammars and Other Rewriting Systems/

  • Processors (5 ECTS)

ACMCCS98/Software/Programming languages/Processors/

  • Natural Language Processing (5 ECTS)

ACMCCS98/Computing Methodologies/Artificial intelligence/ Natural Language Processing

  • Program transformation (5 ECTS)

ACMCCS98/Computing Methodologies/Artificial intelligence/ Automatic Programming/Program transformation/

  • Information interfaces and presentation (5 ECTS)

ACMCCS98/Information Systems/Information interfaces and presentation/

  • Document and text processing (5 ECTS)

ACMCCS98/Computing Methodologies/Document and text processing/

Requisitos

Para frequentar esta UCE o aluno deverá ter conhecimentos de programação (algoritmia e estruturas de dados). As restantes competências irá adquiri-las ao longo da frequência da UCE.

r8 - 08 May 2007 - 16:23:24 - JoseCarlosRamalho
This site is powered by the TWiki collaboration platform Copyright © by the contributing authors. Ideas, requests, problems? Send feedback.
Syndicate this site RSSATOM