Seite 1 von 1

was soll ich machen?

Verfasst: 28. Jan 2010 18:04
von rhaban
Hallo,

kann mir jemand erklären was genau ich machen soll?! :D

Danke



p.s. Sätze wie "Die Repräsentation soll durch Grammatiken darstellen werden, die in einer für Ihren Kunden angepassten Erweiterten Backus-Naur Form (EBNF) angegeben werden." sind auch nciht besonders hilfreich :?

Re: was soll ich machen?

Verfasst: 28. Jan 2010 18:11
von moritz
Also wir trinken jetzt erstmal einen Absinth, vielleicht hilft das weiter! :!:

Re: was soll ich machen?

Verfasst: 28. Jan 2010 18:14
von rhaban
freut mich, mir hilfts momentan nicht. :roll:

Re: was soll ich machen?

Verfasst: 28. Jan 2010 18:22
von mitschke
Hallo,

mal davon abgesehen, dass der Satz korrekterweise "Die Repräsentation soll Grammatiken darstellen, die in einer für Ihren Kunden angepassten Erweiterten Backus-Naur Form (EBNF) spezifiziert werden." heißen muß (habe ich geupdated) ...
Ihre Aufgabe ist es eine objektorientierte Repräsentation zu entwickeln, die Grammatiken dieser EBNF Form darstellen kann

Sprich, überlegen aus welchen Teilen eine solche Grammatik besteht und wie man diese in ein objektorientiertes Design, also Klassen, "gießen" kann.

Hilft das weiter?

Re: was soll ich machen?

Verfasst: 28. Jan 2010 20:45
von rhaban
Ich denke das habe ich, wenn auch noch nicht richtig bzw. komplett. Aber was fang ich damit an?!

Re: was soll ich machen?

Verfasst: 28. Jan 2010 21:36
von Sebastian Hartte
rhaban hat geschrieben:Ich denke das habe ich, wenn auch noch nicht richtig bzw. komplett. Aber was fang ich damit an?!
Hallo

kannst Du Deine Frage auf eine bestimmte Aufgabe beziehen? Ich weiß nicht genau was ich darauf antworten soll.

Gruß,
Sebastian

Re: was soll ich machen?

Verfasst: 29. Jan 2010 14:04
von glowhand
sofern es meiner Person gestattet ist, die nicht an jene gestellte Frage zu beantworten:
zum Beispiel gleich die erste, 1a)

edit:
also, das composite pattern haben wir verstanden, aber was soll nun für eigentlich genau dargestellt werden? die beispiel-produktionen wie digit, number, integer.... dafür je eine klasse? oder weitaus allgemeiner? wir haben uns den text jetzt schon 3 mal durchgelesen, aber irgendwie ist und das viel zu schwammig.

Re: was soll ich machen?

Verfasst: 29. Jan 2010 14:34
von ice-breaker
in der 1a soll generell das Klassendiagramm für die objektorientierte Umsetzung der (E)BNF gemacht werden und dann in einer der späteren Aufgaben (gerade nicht das Blatt in der Hand) ist eine Dummy-Klasse (GrammarList glaube ich) vorhanden, in der man das implementierte Klassendiagramm nutzen soll und die Boolean- sowie Metagrammatik ausimplementieren soll, also Objekte erzeugen, die diese EBNF darstellen, dafür sind auch Testfälle da.

so als kleiner Überblick was ich getan habe

Re: was soll ich machen?

Verfasst: 29. Jan 2010 15:51
von naibaF
Der Thread hätte von mir kommen können und ich weiss immer noch nicht was ich machen soll.
Konkrete Fragen zu stellen wird schwer - ich verstehe einfach nur Bahnhof.
Nun mal der Versuch Fragen zu stellen:

1) was ist mit "objektorientierte Präsentation von Grammatiken" eigentlich gemeint?
2) was ist ein erwartetes Terminal?
2.1) Was ist der Unterschied mit '...' und "..." ?
3) Beispiel Produktionen in der EiSE-Grammatik Notation:
Ich verstehe nicht was genau in dem Beispiel eigentlich gemacht wird.
4) "Ihre Aufgabe ist es eine objektorientierte Repräsentation zu entwickeln, die
Grammatiken dieser EBNF Form darstellen kann. ... Als Anforderung sollen Laut Ihrem Auftraggeber drei Operationen für eine
gegebene objektorientierte Repräsentation einer Grammatik ausgeführt werden."
Ist diese objektorientierte Präsentation nun gegeben oder muss man die selbst implementieren?
5) Ein BlackBox Beispiel würde mir sehr weiterhelfen. Was gibt der Auftraggeber ins Programm ein und was soll rauskommen?
6) EiSE-Grammatik Definition - Von Booleschen Ausdrücken. Da ich nicht verstehe um was es geht verstehe ich nicht was dieses Beispiel soll oder tut.
7) EiSE-Grammatik Definition – Meta-Grammatik. Ebenso.

Das macht Frust.

Re: was soll ich machen?

Verfasst: 29. Jan 2010 16:23
von Sebastian Hartte
naibaF hat geschrieben:1) was ist mit "objektorientierte Präsentation von Grammatiken" eigentlich gemeint?
Dass ihr eine Klassenstruktur entwerfen sollt, mit der sich beliebige EBNF Grammatiken darstellen lassen. (Beliebig ist in soweit eingeschränkt, dass die zu repräsentierende EBNF Variante auf dem Übungsblatt steht).
2) was ist ein erwartetes Terminal?
Das sind nicht-optionale Terminal-Symbole in euren Regeln.
2.1) Was ist der Unterschied mit '...' und "..." ?
Beide Formen sind prinzipiell äquivalent. Allerdings solltest du die single quotes benutzen wenn deine Terminal-Symbole double-quotes enthalten und umgekehrt ( ' " ' bzw. " ' ").
3) Beispiel Produktionen in der EiSE-Grammatik Notation:
Ich verstehe nicht was genau in dem Beispiel eigentlich gemacht wird.
Das Beispiel gibt eine EBNF Grammatik an. Der Text der Grammatik entspricht dabei wiederum der Meta-Grammatik für EBNF (Im Übungsblatt EiSE Grammatik genannt).
4) "Ihre Aufgabe ist es eine objektorientierte Repräsentation zu entwickeln, die
Grammatiken dieser EBNF Form darstellen kann. ... Als Anforderung sollen Laut Ihrem Auftraggeber drei Operationen für eine
gegebene objektorientierte Repräsentation einer Grammatik ausgeführt werden."
Ist diese objektorientierte Präsentation nun gegeben oder muss man die selbst implementieren?
Gemeint ist, dass ihr diese drei Operationen in eurer Klassenstruktur irgendwie zur Verfügung stellen müsst. Die Details werden in Teilaufgabe c) näher erläutert. Die dritte Operation ist außerdem nur Teil der Bonusaufgabe.
5) Ein BlackBox Beispiel würde mir sehr weiterhelfen. Was gibt der Auftraggeber ins Programm ein und was soll rauskommen?
Er gibt nichts direkt ein, außer bei der Bonusaufgabe. Im Prinzip geht es darum einen Satz Klassen zu entwerfen mit dem man Grammatiken darstellen kann. Die konkreten Grammatiken werden dann "von Hand" mit Instanzen dieser Klassen zusammengestöpselt. Was herauskommen soll, könnt ihr im bereitgestellten Testfall eigentlich ganz gut sehen.
6) EiSE-Grammatik Definition - Von Booleschen Ausdrücken. Da ich nicht verstehe um was es geht verstehe ich nicht was dieses Beispiel soll oder tut.
Es handelt sich um eine Grammatik die eine Sprache für boolsche Ausdrücke definiert.
7) EiSE-Grammatik Definition – Meta-Grammatik. Ebenso.
Hierbei handelt es sich um die Grammatik für die Grammatik-Sprache (Daher Meta-Grammatik). Sie beschreibt, wie Grammatikdefinitionen aussehen müssen.
Das macht Frust.
Das tut mir sehr leid, allerdings ist die Aufgabe deutlich einfacher als sie auf den ersten Blick erscheint.

Gruß,
Sebastian

Re: was soll ich machen?

Verfasst: 29. Jan 2010 16:33
von rhaban
Hallo,

also ich war heute in 2 Sprechstunde und glaube habe ein wenig was rausgefunden um was es gehen soll ;)
Aber bedenkt, dass ich eigentlich die Frage gestellt habe, also keine Gewähr :wink:

naibaF hat geschrieben: 1) was ist mit "objektorientierte Präsentation von Grammatiken" eigentlich gemeint?
Für jede "Sache" die eine "Grammatik" enthalten kann muss eine repräsentative Klasse vorhanden sein, so dass aus diesen Teilen, z.b. die in den Beispielen gegebenen Definitionen, erstellt werden können.
naibaF hat geschrieben: 2) was ist ein erwartetes Terminal?
Ich denke ein Terminal ist einfach eine Zeichenkette ohne syntaktische Bedeutung für die Grammatik.
naibaF hat geschrieben: 2.1) Was ist der Unterschied mit '...' und "..." ?
Ich schätze es gibt '...' um Doppelte Anführungszeichen (") in einem Terminal verwenden zu können und ebenso andersrum.
naibaF hat geschrieben: 3) Beispiel Produktionen in der EiSE-Grammatik Notation:
Ich verstehe nicht was genau in dem Beispiel eigentlich gemacht wird.
So sollen "Produktionen" aussehen. Beispiel Option in der EiSE-Grammatik Notation wäre dann z.b.: "peter" | "pan"
naibaF hat geschrieben:4) "Ihre Aufgabe ist es eine objektorientierte Repräsentation zu entwickeln, die
Grammatiken dieser EBNF Form darstellen kann. ... Als Anforderung sollen Laut Ihrem Auftraggeber drei Operationen für eine
gegebene objektorientierte Repräsentation einer Grammatik ausgeführt werden."
Ist diese objektorientierte Präsentation nun gegeben oder muss man die selbst implementieren?
Gegeben bekommst du im Programm nichts. Du kennst aber die 2 "Grammatiken" die auf den Blättern stehen. Diese zwei musst du selber erstellen mithilfe deiner Klassen (um zu Testen).
naibaF hat geschrieben:5) Ein BlackBox Beispiel würde mir sehr weiterhelfen. Was gibt der Auftraggeber ins Programm ein und was soll rauskommen?
Wenn du z.B. eine "Produktion" hinterlegt hast, kannst du sie mittels ihrem Namen identifizieren und in einer der beiden Notationen ausgeben können.
naibaF hat geschrieben:6) EiSE-Grammatik Definition - Von Booleschen Ausdrücken. Da ich nicht verstehe um was es geht verstehe ich nicht was dieses Beispiel soll oder tut.
Es handelt es sich um eine "vollständige Grammatik" (glaube ich), welche aus 6 Produktionen besteht. Diese Grammatik musst du, nachdem du eigentlich fertig bist, per Hand mithilfe deiner Klassenstruktur erstellen. (Ebenso mit der Meta-Grammatik)
naibaF hat geschrieben:7) EiSE-Grammatik Definition – Meta-Grammatik. Ebenso.
[/quote]

s.o.



Ich hoffe ich hab nicht zu viel "verraten" aber ich denke eigentlich eher im Gegenteil... Die Aufgabenstellung erschien mir eher wie ein Geheimnis :|
Hoffentlich konnte ich ein wenig helfen ..

Grüße

Re: was soll ich machen?

Verfasst: 29. Jan 2010 16:35
von rhaban
Jetzt haben wirs doppelt :P
Meins könnte falsch sein, lies seins und verbessert mich.

Re: was soll ich machen?

Verfasst: 29. Jan 2010 16:54
von LucasR
Wenn die Fragestellung einmal erklärt worden wäre, würde die Implementation etwa 1/4 Stunden dauern. Im Moment sind wir beim Kehrwert davon, 4h. Grr :evil:

Re: was soll ich machen?

Verfasst: 29. Jan 2010 16:57
von naibaF
Vielen Dank für eure Antworten, ich werde mir das morgen nochmal von neuem ansehen :)

Re: was soll ich machen?

Verfasst: 29. Jan 2010 18:11
von rhaban
Ich habe noch eine weitere Frage:

Mir ist nicht ganz klar, wo bei BNF überall < bzw. > sein soll.

Wäre das Beispiel so richtig?

Code: Alles auswählen

<BooleanExpr> ::= <AndExpr> | <OrExpr> | <Term>
<AndExpr> ::= <Term> SPACE 'and' SPACE <BooleanExpr>
<OrExpr> ::= <Term> SPACE 'or' SPACE <BooleanExpr>
<Term> ::= <Constant> | <VariableExpr>
<Constant> ::= 'true' | 'false'
<VariableExpr> ::= WORD
So, das also konstante Terminale (wie WORD) KEINE < > bekommen (wie jedes Terminal)?

Außerdem; wie soll man diese Konstanten handhaben? Wenn es wirklich Terminale sein sollen ist es wirklich unschön nur von diesen in den Notationen die " und ' -Zeichen weg zu lassen.

Zuletzt: Wenn weder ' noch " in einem Terminal vorkommen ist es egal ob wir es mit "xyz" oder 'xyz' umschließen, oder? In den Beispielen sind ja verschieden Notationen (ich denke willkürlich) benutzt.

Danke :oops: