Analisi Statica

Esercizio 3

Si consideri il linguaggio formato da sequenze di simboli sull'alfabeto {&,A,B,C}. Il carattere '&' e' usato anche come carattere di controllo indicante che il successivo simbolo,  allorche' diverso da '&', deve essere interpretato come un comando. In tal modo, la sequenza && e' utilizzata per introdurre il solo simbolo &.

Si risponda alle seguenti domande:

  1. Si dia una grammatica per il linguaggio.
  2. Si dia uno schema deterministico discendente che calcoli come attributo del simbolo distinto la sequenza che si ottiene risolvendo comandi e quoting. Ad esempio, per la sequenza di input
    1. &&&A&&B        l'attributo calcolato vale:  &Cmd(A)&B
    dove Cmd sia l'operatore introdotto per incapsulare i comandi.
  3. Si dia uno schema deterministico ascendente che calcoli l'attributo della parte (2) esercizio.
  4. Si osservi che le sequenze del linguaggio non dovrebbero terminare con un simbolo & che non sia preceduto da altro &: Si discuta la soluzione al punto 3 nell'ipotesi che di dover soddisfare questa richiesta.
Allo scopo si utilizzi l'operazione "_", di introduzione di stringa (o costante), e l'operazione  _ + _ , di concatenazione di due stringhe.
 
  
Ultimo aggiornamento 26 Aprile 2001