![]() |
Show 150 posts per page |
.dsy:it. (http://www.dsy.it/forum/)
- Linguaggi formali e automi (http://www.dsy.it/forum/forumdisplay.php?forumid=132)
-- Esercizio su CFG (Context Free Grammar) (http://www.dsy.it/forum/showthread.php?threadid=32715)
Esercizio su CFG (Context Free Grammar)
Salve!
Sto studiando le CFG (context free grammar) spero di essere nella sezione giusta.
Allora ... riferendomi all'esercizio seguente:
code:
- Costruire una CFG che generi l’insieme di tutte le stringhe di parentesi correttamente annidate.
code:
S ->(SB | $ /*$ = parola vuota*/ B -> )
code:
S -> $ | (S)S
__________________
_/\/\/\Bemipefe/\/\/\_
Veniva richiesta una grammatica che generasse TUTTE le stringhe di parentesi ben annidate, la seconda grammatica è giusta, infatti genera anche (()()):
S => (S)S => (S) => ((S)S) => (()S) => (()(S)S) => (()()S) => (()())
Il problema della prima grammatica è che non ti permette di affiancare parentesi, ma solo di annidarle, infatti visto che B può generare solo ")", è analoga a
S -> (S) | $
aggiungendo una S in fondo invece hai la possibilità di generare un'altra coppia di parentesi dopo quella chiusa.
Grazie!
Tutto chiaro....ma mi rende perplesso il fatto che quando si applica la regola S -> $ la si possa applicare solo per alcune variabili. Io pensavo che applicando quella regola, tutte le variabili venissere automaticamente sostituite da $.
__________________
_/\/\/\Bemipefe/\/\/\_
All times are GMT. The time now is 08:20. | Show all 3 posts from this thread on one page |
Powered by: vBulletin Version 2.3.1
Copyright © Jelsoft Enterprises Limited 2000 - 2002.