matheraum.de
Raum für Mathematik
Offene Informations- und Nachhilfegemeinschaft

Für Schüler, Studenten, Lehrer, Mathematik-Interessierte.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Hochschulmathe
  Status Uni-Analysis
    Status Reelle Analysis
    Status UKomplx
    Status Uni-Kompl. Analysis
    Status Differentialgl.
    Status Maß/Integrat-Theorie
    Status Funktionalanalysis
    Status Transformationen
    Status UAnaSon
  Status Uni-Lin. Algebra
    Status Abbildungen
    Status ULinAGS
    Status Matrizen
    Status Determinanten
    Status Eigenwerte
    Status Skalarprodukte
    Status Moduln/Vektorraum
    Status Sonstiges
  Status Algebra+Zahlentheo.
    Status Algebra
    Status Zahlentheorie
  Status Diskrete Mathematik
    Status Diskrete Optimierung
    Status Graphentheorie
    Status Operations Research
    Status Relationen
  Status Fachdidaktik
  Status Finanz+Versicherung
    Status Uni-Finanzmathematik
    Status Uni-Versicherungsmat
  Status Logik+Mengenlehre
    Status Logik
    Status Mengenlehre
  Status Numerik
    Status Lin. Gleich.-systeme
    Status Nichtlineare Gleich.
    Status Interpol.+Approx.
    Status Integr.+Differenz.
    Status Eigenwertprobleme
    Status DGL
  Status Uni-Stochastik
    Status Kombinatorik
    Status math. Statistik
    Status Statistik (Anwend.)
    Status stoch. Analysis
    Status stoch. Prozesse
    Status Wahrscheinlichkeitstheorie
  Status Topologie+Geometrie
  Status Uni-Sonstiges

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
StartseiteMatheForenFormale SprachenSprache in Syntaxdiagramm
Foren für weitere Schulfächer findest Du auf www.vorhilfe.de z.B. Philosophie • Religion • Kunst • Musik • Sport • Pädagogik
Forum "Formale Sprachen" - Sprache in Syntaxdiagramm
Sprache in Syntaxdiagramm < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Sprache in Syntaxdiagramm: Frage2
Status: (Frage) reagiert/warte auf Reaktion Status 
Datum: 17:33 So 17.02.2008
Autor: svenchen

Einen schönen Sonntag zusammen,

ich habe mir eben auf
[]http://www.fsg-marbach.lb.bw.schule.de/projekte/info2000/kurs/sdiagramm.html
erarbeitet, was ein Syntaxdiagramm ist.

Jezt weiß ich allerdings nicht, wie ich folgende Aufgabe lösen könnte, mir fällt nicht ein, wie ich diese Aufgabe angehen kann:

Um Wegbeschreibungen anzugeben, sollen die Buchstaben {l,r,g} für links, rechts und geradeaus stehen. Die Buchstabenkette llgrr steht also für die Wegbeschreibung zweimal links, geradeaus, zweimal rechts.
Im folgenden sei die Sprache L definiert als die Menge aller Wegbeschreibungen, bei denen gleich oft  nach links und nach rechts abgebogen wird, z.B. lr [mm] \inL, [/mm] ll [mm] \not\in [/mm] L.

Zeichnen Sie ein Syntaxdiagramm, das die Sprache L beschreibt.


Es wäre nett, wenn ihr mir sagen könntet, wie man die Aufgabe löst.
Klar, man beginnt, indem man einen Weg wählen kann:

   |--->---L-----
--->            |-----
   |--->---R-----

Aber wie deckt man ab, dass man genau so oft liks, wie auch rechts geht?

Danke schön!

Grüße,
Sven

        
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 17:55 So 17.02.2008
Autor: bamm

Also meiner Meinung nach ist so etwas wie llrr nicht mit einem Syntaxdiagramm zu lösen. Aber vielleicht hat ja noch wer anders dazu eine Idee. Hingegen sowas wie lgr oder lrgrl sollte lösbar sein. Ich würde dabei so anfangen wie du, allerdings am Anfang erst noch eine Optionale Wiederholung von g einfügen (Wiederholung kann ja auch null mal sein), dann nach dem l bzw. r wieder eine Optionale Wiederholung von g und dann ein r bzw. l danach. Dann wieder eine Optionale Wiederholung des Ganzen, also ein Pfeil zurück zum Anfang (also vor g).

Bezug
                
Bezug
Sprache in Syntaxdiagramm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 17:58 So 17.02.2008
Autor: svenchen

Hi, es wäre echt schön, wenn jemand ein solches Diagramm mir zeigen könnte.
Ich würde es gerne selbst machen, habe aber keine Idee. Ich habse schon alles versucht, aber es funktioniert einfach nicht. Ich weiß nicht, wie man das machen könnte ;(
Danke ;)

Bezug
                        
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 18:27 So 17.02.2008
Autor: bamm

Schau dir mal das Bild unten an. Bei dem einen g musst du noch so einen Wiederholungspfeil machen wie unten drunter beim anderen g (ging irgendwie im Grafikprogramm nich mehr vernünftig). Wie gesagt, evtl. geht sowas wie llgrr auf anderem Wege. Mir fällt da gerade ein, evtl. könnte man eine rekursive Definition dazu nutzen, indem man ein Nichtterminalsymbol pfad o.ä. einführt und dieses Symbol dann in einem zweiten Syntaxdiagramm rekursiv definiert. Hattet ihr sowas schon?


[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: gif) [nicht öffentlich]
Bezug
        
Bezug
Sprache in Syntaxdiagramm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:30 So 17.02.2008
Autor: svenchen

Zunächst vielen vielen Dank für deine Skizze.

Aber ll kann man da ja nicht abgehen, wie du meinst, oder?
Was meinst du genau damit?
Könntest du mir   noch zeigen, wie du meinst, dass es alternativ geht?


Bezug
                
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 20:26 So 17.02.2008
Autor: bamm

Um ehrlich zu sein ist mir das jetzt zu blöd meine zweite Idee nochmal komplett zu zeichnen :). Aber die Idee ist folgende: Man nimmt das erste Diagramm von oben und ersetzt jeweils die l und r Knoten durch ein Nichtterminalsymbol pfadl bzw. pfadr. Nichtterminalsymbole werden als Rechteck gezeichnet. Jetzt zeichnest du noch zwei weitere Syntaxdiagramme für diese Nichtterminalsymbole, die dann ungefähr so aussehen (jetzt nur mal für pfadl):
  
|-[pfadl]--  -------
|         |  |     |
|         |  |     |
----(l)---------(g)----(r)--
              |     |
              |     |
              -------

Du definierst also pfadl rekursiv, d.h. das Nichtterminalsymbol pfadl enthält wieder pfadl für weitere Wiederholungen von l (falls nötig). Und damit sollte das dann funktionieren...

Bezug
                        
Bezug
Sprache in Syntaxdiagramm: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 20:58 So 17.02.2008
Autor: svenchen

bamm, herzlichen Dank. Ich hab das jetzt weitgehend verstanden.
Hast mir sehr viel geholfen :)
Danke !!

Bezug
        
Bezug
Sprache in Syntaxdiagramm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:25 Mo 18.02.2008
Autor: svenchen

Hallo, ich habe noch eine weitere Frage.
Und zwar bin ich nun dabei, das ganze in EBNF darzustellen.
Der Übersicht halber habe ich das ganze nochmal gemacht:

[Dateianhang nicht öffentlich]

Ich dachte ich fange mit dem rot markierten Teil an.
Jedoch tauchen da schon Probleme auf :/

Weg -> ('g' | ' ') { ' ' ('g' | ' ') }

wäre das so okay ?
'' steht für einen Weg, der nur einer Linie entspricht, wo kein Symbol drin ist.
das , was in der Klammer { } steht ist die Rückverbindung.
So wie ich das verstehe steht dann in der Klammer als erstes der leere Weg, der ja die Rückverbindung ist.
Als zweites dann alles, wo diese Wückverbindung draufzeigt, was ja der hinweg ist.
Ich habe mich jetzt nur auf den rot markierten Teil bezogen.
Stimmt das so, oder wie würdet ihr an diese Aufgabe rangehen?
Das ganze ist übrigens eine alte Klausuraufgabe mit 5 Punkten.

Es wäre schön, wenn ihr mir helfen würdet ;)
Danke!

Dateianhänge:
Anhang Nr. 1 (Typ: JPG) [nicht öffentlich]
Bezug
                
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 13:58 Di 19.02.2008
Autor: Demokrit

Hallo,

der gesamte rote Teil in deinem Syntaxdiagramm bedeutet, dass 'g' beliebig oft wiederholt werden darf, insbesondere auch keinmal - also kurz in EBNF: {'g'}. Alternativen via | musst du nur bei echten Verzweigungen des Diagramms (wie sie dann im nächsten Schritt auftreten werden) definieren.

Jedoch hast du dir die Aufgabe ein wenig erschwert, finde ich, indem du recht viele Nichtterminale definiert hast. In diesem Fall wäre es meiner Meinung nach übersichtlicher, es bei einem Nichtterminal weg zu belassen: Die Idee ist, dass nach jedem vorkommenden 'l' - nach einer beliebigen (auch beliebig langen) Folge von weiteren zulässigen Terminalen (oder auch keinem) - genau ein 'r' folgt, an das wieder eine beliebige Zeichenfolge anknüpft. In BNF-Notation z.B.: l { <weg> }* r { <weg> }* (Die übrigen Fälle sowie das Aufschreiben in EBNF überlasse ich dir, sofern du magst.)

Ich bin mir ehrlich gesagt auch nicht ganz sicher, ob die durch dein Syntaxdiagramm erklärte Grammatik völlig der geforderten Spezifikation genügt. Wenn ich es richtig lese, kannst du z.B. nicht llrr erzeugen, obwohl dieses Wort in der Sprache enthalten ist. (Wenn du im L-Diagramm den Pfad zur Rekursion einschlägst, hast du ja noch gar kein 'l' gesetzt, d.h. im Prinzip fährst du doch da im Leerlauf.) Auch das leere Wort fehlt.

Grundsätzlich würde ich auch raten, klare Bezeichnungen einzuführen und insbesondere Nicht-Terminalen stets anderen Namen zu geben als Terminalen (die du auch nicht umbenennen solltest, wenn sie bereits in der Aufgabenstellung benannt wurden). Dadurch wird es gerade bei komplexeren Diagrammen verständlicher.

Bezug
        
Bezug
Sprache in Syntaxdiagramm: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 17:43 Di 19.02.2008
Autor: svenchen

@Demokrit

Danke für deine Antwort.
Ich mache das gerne selber. Allerdings weiß ich im moment leider noch nicht genau, was ich machen soll ;(
Was meinst du mit dem * in deiner BNF Form?

Wie meinst du, sollte das Syntaxdiagramm aussehen?
Ich komm der Beschreinung leider nicht ganz nach.

Danke ...

Bezug
                
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 14:08 Mi 20.02.2008
Autor: Demokrit

Hallo,

der Kleene-Stern (*) besagt nur, dass das in den geschweiften Klammern beliebig oft (insbesondere auch keinmal) wiederholt werden darf - in der EBNF-Form lässt man ihn dann einfach weg. Ich zielte darauf ab, mit nur einem Nichtterminal weg zu operieren. Dies funktioniert z.B., indem man das Links-Abbiegen (diesmal in EBNF) so definiert: 'l' {weg} 'r' {weg}. Rechts-Abbiegen: 'r' {weg} 'l' {weg} Geradeaus: 'g' {weg}. Leeres Wort: [mm] \varepsilon [/mm]

Vielleicht kannst du daraus das Syntaxdiagramm schon selbst ableiten.

Der Weg mit zwei Nichtterminalen, den du jetzt in deinem neuen Syntaxdiagramm eingeschlagen hast, ist natürlich genau so richtig, deswegen solltest du am besten auch auf deiner Route weitermachen. Viel fehlt ja ohnehin nicht mehr. :)

Bezug
                
Bezug
Sprache in Syntaxdiagramm: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 18:25 Do 21.02.2008
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
        
Bezug
Sprache in Syntaxdiagramm: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 23:14 Di 19.02.2008
Autor: svenchen

Ich habe das ganze nochmal geändert, in Anlehnung an den letzten Beitrag.

Wäre das eine richtige Lösung? Ist aber immer noch ganz schön lang...


[Dateianhang nicht öffentlich]

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Bezug
                
Bezug
Sprache in Syntaxdiagramm: Antwort
Status: (Antwort) fertig Status 
Datum: 13:55 Mi 20.02.2008
Autor: Demokrit

Hallo,

ja, das sieht schon recht gut aus. Ein paar Kleinigkeiten noch:
(i) Derzeit kannst du vor jedem "Abbiegen" (li/re) stets nur einmal oder keinmal gerade aus gehen - es muss aber beliebig oft gehen, du brauchst also eine volle Schleife. Du musst also einfach noch eine Rückverbindung beim ersten 'g' einbauen und beim letzten dann genau so.

(ii) Das leere Wort ist weiterhin nicht erzeugbar. Du brauchst also auch einen Pfad, der ohne irgendwelche Terminale zu produzieren vom Anfang zum Ende geht. (Man kann ihn geschickt oder ungeschickt wählen.)

(iii) Die beiden inneren "Knoten" (innerhalb von li/re bzw. re/li) können vereinfacht werden (zudem ist auch hier noch das Problem, dass du z.B. nicht 'ggg' setzen kannst): Wenn du den "leeren Pfad" aus (ii) geschickt wählst, kannst du ausnutzen, dass 'g' durch weg erzeugt werden kann. Dann brauchst du bloß noch je eine weg-Schleife im Inneren einbauen und bist fertig.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.unimatheforum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]