Next: Exercício do Exame de Up:
Exercícios Previous: Exercício do Exame Final
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