FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Formale Informatik

F2 Aufgabenzettel 9

F2 Aufgabenzettel 9 2003-08-13 15:52
Anonymer User
Hallo!!
Ich hab da mal ne Frage zu Aufgabe 9.1
Zu 1.verstehe ich nicht genau, wie das Wort 00101 die Produktionen durchläuft. Die Linksableitung wird zu 0A1B( da v. S->A1B, A->0A)Ist die 2. Null und die nächste 1 abhängig v. B->0B|1B| und geht dann über zu lambda von B und eliminiert A aus d. Ableitung?

http://www.informatik.uni-hamburg.de/TGI/lehre/vl/SS03/F2/F2aufg09.pdf.gz

Re: F2 Aufgabenzettel 9 2003-08-13 16:17
Slater
ja das ist die einzige linksableitige möglichkeit

edit
also vielleicht doch nicht genau so wie du sagts

S -> A1B -> 0A1B -> 00A1B -> 001B -> 0010B -> 00101B -> 00101

immer das linkeste nonterminal wird ersetzt

Re: F2 Aufgabenzettel 9 2003-08-13 17:18
Anonymer User
Aber das linkeste Nonterminal wird ersetzt wegen lambda,oder?

Re: F2 Aufgabenzettel 9 2003-08-13 17:43
Anonymer User
Und bei der Bestimmung der produktiven Symbole heisst es ja einmal für 1 :
U= Vereinigung

Mo={0,1} S->A1B|CD
M1=Mo U {A,B} A->0A|D|lambda
M2=M1 U{S,A,B} B->0B|1B|lambda
M3=M2 U{S,A,B} C->0D
D->1C
und für 2.
Mo=Vt E->E+F|T
M1=Mo U {F} T->T*F|F
M2=M1 U{T,F} F->(E)|i
M3=M2 U {E,T,F}

Verstehe ich das jetzt richtig, dass ich für Mo einmal die Terminalsymbole benenne und dann gucke woraus sich diese Symbole ableiten lassen. Also für Aufgabe1 A und B von der linken Seite, danach woraus A und B von der linken Seite abgelitten sind. Hier dann von S.

Bei 2. komme ich jetzt ins schleudern. M1=MoU{F} ist damit das F aus T->T*F oder T->F gemeint? Ich tippe auf T->F. Wenn ja, warum? Ich hätte nämlich intuitiv auf T->T*F getippt wegen * aus Mo. Wo ist mein Denkfehler?

Re: F2 Aufgabenzettel 9 2003-08-13 19:09
Slater
Aber das linkeste Nonterminal wird ersetzt wegen lambda,oder?
nach 2 nullen wird das A auf lambda abgebildet

Und bei der Bestimmung der produktiven Symbole heisst es ja einmal für 1 :
U= Vereinigung

Mo={0,1} S->A1B|CD
M1=Mo U {A,B} A->0A|D|lambda
M2=M1 U{S,A,B} B->0B|1B|lambda
M3=M2 U{S,A,B} C->0D
D->1C

Verstehe ich das jetzt richtig, dass ich für Mo einmal die Terminalsymbole benenne und dann gucke woraus sich diese Symbole ableiten lassen. Also für Aufgabe1 A und B von der linken Seite, danach woraus A und B von der linken Seite abgelitten sind. Hier dann von S.
klingt gut
und für 2.
Mo=Vt E->E+F|T
M1=Mo U {F} T->T*F|F
M2=M1 U{T,F} F->(E)|i
M3=M2 U {E,T,F}

Bei 2. komme ich jetzt ins schleudern. M1=MoU{F} ist damit das F aus T->T*F oder T->F gemeint? Ich tippe auf T->F. Wenn ja, warum? Ich hätte nämlich intuitiv auf T->T*F getippt wegen * aus Mo. Wo ist mein Denkfehler?

M1=Mo U {F} doch wegen F -> i mit i aus Mo

im nächsten schritt kommt T dazu, wegen T -> F
dann E

Re: F2 Aufgabenzettel 9 2003-08-14 19:44
Anonymer User
Hallo ich hab noch Probleme bei dieser Aufgabe:
S-> aAbBCc | AS
A-> aAb | lambda
B-> bBc | cCDd
C-> cc | cEc
D-> AabB | BbS
E-> ab | ba

Die folgende Grammatik soll reduziert werden.

Also bestimmen wir erstmals die Produktiven Symbole.
Mo ={a,b,c,d}
M1 = Mo U {A,C,E}

wie komme ich auf ACE? ich verstehe die Definition nicht richtig, kann mir da jemand helfen?

Def lautet:
Mo:= Vt , Mi+1 := Mi U {A element Vn | Es gibt w element Mi* : A-> w element P}

Re: F2 Aufgabenzettel 9 2003-08-14 20:14
Slater
Mo:= Vt , Mi+1 := Mi U {A element Vn | Es gibt w element Mi* : A-> w element P}
also M1 = Mo U {A element Vn | Es gibt w element Mo* : A-> w element P}
= {a,b,c,d} U {A element Vn | Es gibt w element {a,b,c,d}* : A-> w element P}

auf deutsch: es kommen alle nonterminale dazu, die auf terminalwörter abbilden,

also A wegen A -> lambda, C wegen C -> cc und E wegen E -> ab

denn diese 3 nonterminale sind produktiv,

in der nächsten runde zur bestimmung von M2
kommen alle nonterminale hinzu, die auf wörter bestehend aus
terminalsymbolen und A,C,E abbilden,
also ganz nach definiton

Re: F2 Aufgabenzettel 9 2003-08-14 20:27
Anonymer User
Ahhh danke