Engenharia de Linguagens

Engenharia de Linguagens (2011/12)

Engenharia Gramatical

Fichas teórico-práticas para avaliação contínua

Ficha 1 (2011.11.21):

Considere novamente o processador da Lista de Elementos Mistos (palavras e inteiros), apresentada como Exemplo 5.

Pretende-se que altera a sua GA de modo a calcular o somatório de cada sub-sequência de inteiros que surja a seguir a uma sub-sequência de palavras com 3 ou mais palavras. Por exemplo, dada a frase "a b 1 1 1 1 c d e f 2 2 g h 3 3 3 i j k l m 4 4 4 4" daria como resultado: 4 e 16.

Cada grupo deve: elaborar uma sucinto relatório de desenvolvimento (em LaTeX) descrevendo a forma como resolveu o exercício (em papel e em VisualLisa). Um dos grupos será escolhido para apresentação para a Turma. Dispõe de 1 semana para fazer este TPC.

Ficha 2 (2011.12.04):

Para efeitos de avaliação prática, devem terminar o exercício iniciado nas aulas (Exemplo 4, Genea) e entregar individualmente todo o problema proposto resolvido e implementado em AnTLR.

Ficha 3 (2012.01.23):

Consideremos um pequeno robot usado para aspirar uma área de forma retangular. Esta área é conhecida pelo robot de modo limitar o seu raio de ação (Nota: o robot é colocado inicialmente nas coordenadas (0,0), i.e. no centro, mas pode prever a sua colocação noutra posição no interior da área de ação). O robot pode movimentar-se nas quatro direções (NORTE, SUL, ESTE e OESTE) deslocando-se zero (virar para a direção) ou mais (virar e mover-se na dada direção) unidades de distância (assuma-se, e.g., 1u = 25cm) de cada vez. Para além dos movimentos, o robot aceita as ações LIGAR e DESLIGAR para ativar e desativar, respetivamente, o sistema de aspiração.

Com base nesta descrição para o robot:

  1. crie uma linguagem capaz de descrever uma rotina de limpeza para este robot. Essa linguagem deve prever também que no início se declarem as dimensões do retângulo que define a área de ação. Nota: na linguagem que criar, pode prever a indicação do posicionamento inicial do robot.
  2. crie um processador para as frases desta linguagem que ofereça as seguintes funcionalidades:
    • a. Verificar que a especificação não leva o robot para fora da área de limpeza (mostrando erro caso isso aconteça);
    • b. Calcular a distância, em cm, que o robot percorre durante toda a sua atividade;
    • c. Determinar quantas vezes o robot altera a sua direcao;
    • d. Determinar quantas unidades em média o robot se desloca de cada vez numa dada direção.

Ficha 4 (2011.12.04):

Dada uma GA gerada em formato textual XAGRA pelo VisualLISA escreva um processador que a traduza para AnTLR.

Fases:

  1. Considere só os Terminais, e Gere apenas o Analisador Léxico.
  2. Considere agora toda a GIC, e Gere apenas o Parser.
  3. Considere toda a GA, e Gere um Processador completo.

Ficha 5 (2012.05.21):

Resolva um problema com GA e AST, semelhante ao que se fez no Exercício 8 para C--, agora para definir uma linguagem para descrição de Mapas de Conceitos (parecida com a CMC já apresentada nas aulas) que permita validar as ligações face aos conceitos e relações declarados e que permitam fazer links (em pagina Web) para as ocorrências ou instâncias dos conceitos extraidos de uma BD.

Ficha 6 (2012.02.13):

As duas ferramentas abaixo listadas são plugins para o Eclipse e servem ambas para definição/geração de DSLs e dos respetivos ambientes de desenvolvimento (os editores são gerados também como uma aplicação Eclipse):

  1. EMFText -- http://www.emftext.org/index.php/EMFText
  2. XText -- http://www.eclipse.org/Xtext/

O que se pretende é que cada grupo analise as duas ferramentas e escolha uma delas para estudar com mais detalhe, devendo criar um editor/processador para a linguagem Genea, a DSL que será considerada como caso de estudo.

Notem que os grupos que explorarem o Xtext devem explorar em complemento os módulos afins Xtend + Xbase.

Cada grupo deve: elaborar uma pequena monografia (em LaTeX) descrevendo a ferramenta e a experimentação; e preparar uma breve apresentação para a Turma. Dispõe de 3 semanas para fazer este TPC.

Questões colocadas nas aulas, para reflexão e avaliação contínua

Q1 (2011.12.04): Discorra sobre a afirmação "o recurso a geradores de compiladores, ou de uma forma geral a geradores de programas, é uma importante forma de re-utilização".


r12 - 21 May 2012 - 16:07:27 - PedroRangelHenriques
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback
Syndicate this site RSSATOM