Next: Exercício do Exame de Up: Exercícios Previous: Exercício do Exame Final

Exercício do Exame de Recorrência de 1998

Analise atentamente a seguinte gramática escrita na notação lógica DCG

         comando   -->  operSimp, args, [';'].
         comando   -->  operComp, [de], arg, [para], arg, [';'].
         args      -->  arg, resto.
         resto     -->  [].
         resto     -->  arg, resto.
         arg       -->  [NomeFich].
         operSimp  -->  [lista].
         operSimp  -->  [tamanho].
         operSimp  -->  [apaga].
         operSimp  -->  [renomeia].
         operComp  -->  [copia].
         operComp  -->  [move].

Responda, então, às alíneas seguintes:

a)
Dê exemplos de 2 frases válidas da linguagem definida pela DCG acima e de 2 frases incorrectas.
b)
Modifique a gramática supra de modo a permitir que cada frase da linguagem em causa possa ter mais do que um comando.
c)
Acrescente atributos aos símbolos não-terminais (i. é, argumentos aos predicados) da gramática de modo a que a DCG force que o comando tamanho e o comando apaga tenham precisamente 1 argumento e o comando renomeia tenha sempre 2 argumentos.
d)
Junte acções semânticas à DCG (e associe atributos aos símbolos, quando achar necessário) para que o programa gerado a partir da DCG acrescente à Base de Conhecimento (BC) o predicado comando/2 que tenha como argumentos o nome e a aridade do comando reconhecido.




1999-05-26