Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 06. 02. 2011 17:31

jamsoft
Příspěvky: 36
Reputace:   
 

Množina FIRST jendoduché gramatiky

Ahoj všem, prosím o vysvětlení následujícího problému...

Mám následující gramatiku:

S --> a A b | B A c B | epsilon;
A --> f a B d | a S | epsilon;
B --> b c B | d;

Množiny FIRST, by pak (podle mě) vypadaly takto:

Pro S:
FIRST(a A b) = {a}
FIRST(B A c B) = {b, d}
FIRST( epsilon) = epsilon

Pro A:
FIRST(f a B d) = {f}
FIRST(a S) = {a}

Pro B:
FIRST(b c B) = {b}
FIRST(d) = {d}


Až potud je mi to jasné...
Ve skriptech je, ale ještě uvedeno

FIRST(S) = {a, b, d, epsilon}
FIRST(AS) = {f, a, b, d, epsilon).

Umíte mi, prosím, někdo vysvětlit PROČ tam jsou ještě tyto množiny a jak se přišlo např. na FIRST(S), když S není na začátku žádného pravidla ýádného neterminálu a jak a proč se přišlo na kombinaci neterminálů FIRST(AS)? Jsou opravdu nutné např. pro určování, zda je gramatika LL1?


Díky moc za odpovědi... Docela to spěchá... Ráno mám zkoušku... :-)

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson