You are here

Engenharia de Linguagens

Edições: ≥2012/13, 2011/12, 2010/11, 2009/10, 2008/09, 2007/08

A necessidade de processar com eficácia linguagens (formais ou naturais) levou à criação de formalismos para especificação das linguagens e respetivo 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 UCE30 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.

Equipa Docente

Módulos

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

Resultados de Aprendizagem

É fácil concluir que o estudante que frequentar esta UCE30 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 UCE30 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 semi-estruturados 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 UCE30, 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 UCE30, 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 créditos ECTS pelas áreas científicas classificadas no ACM Computing Curricula (1998), é apresentada a seguir:

  • Grammars and Other Rewriting Systems (5 ECTS): Theory of Computation/Mathematical logic and formal languages/Grammars and Other Rewriting Systems/
  • Processors (5 ECTS): Software/Programming languages/Processors/
  • Natural Language Processing (5 ECTS): Computing Methodologies/Artificial intelligence/Natural Language Processing
  • Program transformation (5 ECTS): Computing Methodologies/Artificial intelligence/Automatic Programming/Program transformation/
  • Information interfaces and presentation (5 ECTS): Information Systems/Information interfaces and presentation/
  • Document and text processing (5 ECTS): Computing Methodologies/Document and text processing/

Pré-requisitos

Para frequentar esta UCE30, 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 UCE30.

início contactos RSS Feed última actualização: 30-Mai-2019 partilhar facebook
Drupal theme by pixeljets.com D7 ver.1.1