Bnf Syntax Problem...
#1
geschrieben 13. Dezember 2006 - 15:32
ich hab ein große Problem. Ich schreib Freitag Informatikklausur und zieh mir grade die Übungsklausur rein. Jetzt bin ich an der Stelle mit der BNF Syntax (Backus-Naur-Form) und hab keine Ahnung, was cih machen soll.
Ich muss dazu sagen, ich hab nicht nicht aufgepasst, wegen einer Überschneidung im Plan kann ich nur 1 mal die Woche in die Vorlesung, und das kam shceinbar genau in der, wo ich in Mathe saß.
Ich hab hier gegeben:
Terminale: {0,1,2,3,4,5,6,7,8,9,.,e,-}
Nonterminale: { <s>,<gz>,<z>,<e>,<z-0>}
Startsymbol: <s>
Regeln:
<s> ::= <gz> [ . { <z> } ] [ <e>]
<gz> :: [ - ] <z-0> [ { <z> } ]
| <z>
<e> ::= e <gz>
<z> :: 0 | <z-0>
<z-0> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
ärm, ja. aus dem tollen script unseres kompetenten professor (nein, da ist kein sarkasmus versteckt) geht leider nicht hervor, was mir diese regeln sollen wollen o.O
kann mir da bitte jemand helfen? wäre nett, weil ich morgen noch übung in der uni hab, aber ich lieber jetzt schon wüsste wie es geht, weil wenn sich fragen daraus entwickeln, könnte ich da morgen nochmal direkt bei meinem übungsleiter nachhaken.
vielen dank!
Anzeige
#2
geschrieben 13. Dezember 2006 - 16:19
Vielleicht hilft dieser dir weiter: http://de.wikipedia....ackus-Naur-Form
#3
geschrieben 13. Dezember 2006 - 16:37
meiomei, ich glaub, damit versteh ich so langsam nen teil der definitionen
<gz> :: [ - ] <z-0> [ { <z> } ] müsste dann wohl für die ganzen zahlen stehen, einschließlich Null und den negativen zahlen
<z> :: 0 | <z-0> scheint die natürlichen zahlen zu reperentieren, einschließlich Null
<z-0> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 und heir ohne Null
<e> ::= e <gz> bin net sicher, hätte fast gesagt, dass e eine variable aus den ganzen zahlen darstellen soll, aber das ist nurn bauchgefühl.
und <s> ist weiterhin
#4
geschrieben 13. Dezember 2006 - 16:42
LoD14 sagte:
Nonterminale: { <s>,<gz>,<z>,<e>,<z-0>}
Startsymbol: <s>
Regeln:
<s> ::= <gz> [ . { <z> } ] [ <e>]
<gz> :: [ - ] <z-0> [ { <z> } ]
| <z>
<e> ::= e <gz>
<z> :: 0 | <z-0>
<z-0> ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Ganz kurz: "|" ist "OR", eckige Klammern definieren optionale Sequenzen, geschwungene Klammern Sequenzen, die mehrmals vorkommen können, "::=" dient der Definition.
<gz> :: [ - ] <z-0> [ { <z> } ] bedeutet also bspw., dass die Sequenz mit einem optionalen "-" beginnt, von einer Zahl von 1 bis 9 gefolgt wird und anschließend optional ein- oder mehrmals eine 0 oder eine Zahl von 1 bis 9 folgt.
LoD14 sagte:
Genauer gesagt für alle ganzen Zahlen außer 0. 0 selbst ist erst optional ab der zweiten Stelle möglich.
LoD14 sagte:
Ja.
LoD14 sagte:
Das bedeutet einfach dass die Sequenz aus einem "e" und anschließend einer ganzen Zahl besteht.
LoD14 sagte:
"<s>" ist eine Terminale, also eine Variable.
Dieser Beitrag wurde von Graumagier bearbeitet: 13. Dezember 2006 - 16:46
For Emails always use OpenPGP. My KeyID: 0xA1E011A4
#5
geschrieben 13. Dezember 2006 - 16:44
dann müsste doch <s> ::= <gz> [ . { <z> } ] [ <e>] bedeuten:
ein Satz in der gramatik dieser Sprache beginnt mit einer <gz>, dann kann ein Punkt folgen, dann eine beliebige Menge von zeichen aus <z>, dann optionales <e>, was per definition von <e> wiederum von beliegbig vielen <gz> gefolgt werden kann?
Dieser Beitrag wurde von LoD14 bearbeitet: 13. Dezember 2006 - 16:47
#6
geschrieben 13. Dezember 2006 - 16:47
LoD14 sagte:
So sieht's aus. Ist aber nicht wirklich schwer, wer sich mal mit RegExp o.Ä. beschäftigt hat sollte es verstehen.
LoD14 sagte:
ein Satz in der gramatik dieser Sprache beginnt mit einer <gz>, dann kann ein Punkt folgen, dann eine beliebige Menge von zeichen aus <z>, dann optionales <e>, was per definition von <e> wiederum von beliegbig vielen <gz> gefolgt werden kann?
Nein. Eine ganze Zahl kann von einem Punkt und beliebig vielen ganzen Zahlen außer 0 gefolgt werden kann von einem e und einer ganzen Zahl gefolgt werden, wobei das Vorhandensein der ersten Option natürlich keine Voraussetzung für das Vorhandensein der zweiten Option ist.
Dieser Beitrag wurde von Graumagier bearbeitet: 13. Dezember 2006 - 16:50
For Emails always use OpenPGP. My KeyID: 0xA1E011A4
#7
geschrieben 13. Dezember 2006 - 16:53
Zitat
okay, das heißt dann, die null darf das erste mal überhaupt nach dem <e> auftreten!?
*edit* nein, stimmt nicht. sie dürfte nach dem . shcon auftreten.
Dieser Beitrag wurde von LoD14 bearbeitet: 13. Dezember 2006 - 16:55
#8
geschrieben 13. Dezember 2006 - 16:57
Grml, merke gerade dass ich bei meiner ersten Erklärung die zweite Zeile der "<gz>"-Definition abgeschnitten hab', hat mich schon gewundert warum eine 0 keine ganze Zahl sein soll
EDIT: Deswegen verwendet man bei mehrzeiligen Definitionen auch Punkte am Zeilenende...
Dieser Beitrag wurde von Graumagier bearbeitet: 13. Dezember 2006 - 17:00
For Emails always use OpenPGP. My KeyID: 0xA1E011A4
#9
geschrieben 13. Dezember 2006 - 16:59
#10
geschrieben 13. Dezember 2006 - 17:01
For Emails always use OpenPGP. My KeyID: 0xA1E011A4