1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Community
  3. Smalltalk

Reguläre Sprache

  • Stefan_Sch
  • 24. Januar 2009 um 02:25
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Stefan_Sch
    Punkte
    30
    Beiträge
    5
    • 24. Januar 2009 um 02:25
    • #1

    Hi,

    ich habe ein kleines Verständnisproblem mit regulären Sprachen. Warum erzeugt das folgende Beispiel eine reguläre Sprache und keine kontextfreie?

    Code
    S -> Sab
    S -> ab

    :confused:

    Auch bei dem folgenden Beispiel hätte ich auf eine kontextfreie Sprache getippt, sie ist aber auch regulär.

    Code
    S -> aA
    A -> aAA
    A -> a

    Ich dachte bei Typ 3 Sprachen gilt folgender Leitsatz:

    Zitat

    Auf der linken Seite jeder Regel der Grammatik steht genau ein nicht-terminales Symbol. Auf der rechten Seite steht bei den sogenannten rechtsregulären Grammatiken genau ein Terminal, optional gefolgt von einem Nicht-Terminal. Bei den sogenannten linksregulären Grammatiken steht auf der rechten Seite jeder Regel ein Terminal, dem optional ein Nicht-Terminal vorangeht.

    Oben im ersten Beispiel ist aber ein Nicht-Terminal gefolgt von zwei Terminalen.

    Im zweiten Beispiel ein Terminal gefolgt von zwei Nicht-Terminalen.

    :confused:

    Das erste Beispiel könnte nach eigener Überlegung natürlich durchaus linkslinear sein, das zweite rechtslinear. Dummerweise bringt das die obige Definition durcheinander.

    2 Mal editiert, zuletzt von Stefan_Sch (24. Januar 2009 um 04:17)

  • mdk
    Punkte
    7.120
    Beiträge
    1.390
    • 24. Januar 2009 um 02:53
    • #2

    Ich denke, du verwechselst hier die Eigenschaften von Sprachen und Grammatiken. Die von dir beschriebenen Grammatiken sind tatsächlich kontextfrei, aber nicht regulär, erzeugen jedoch reguläre Sprachen ( [tex='\{ab\}^+'][/tex]

    bzw. [tex='\{aa\}^+'][/tex]

    ).

  • Stefan_Sch
    Punkte
    30
    Beiträge
    5
    • 24. Januar 2009 um 03:20
    • #3

    Hallo,

    danke für diese interessante Antwort! :o

    Das wirft ein paar Fragen auf. Kann eine reguläre Sprache prinzipiell von allen Grammatiken erzeugt werden?

    Ich dachte eine kontextfreie Grammatik erzeugt automatisch eine kontextfreie Sprache?

    :confused:

  • mdk
    Punkte
    7.120
    Beiträge
    1.390
    • 24. Januar 2009 um 03:28
    • #4
    Zitat von Stefan_Sch


    Das wirft ein paar Fragen auf. Kann eine reguläre Sprache prinzipiell von allen Grammatiken erzeugt werden?

    Wie meinst du das?

    Zitat

    Ich dachte eine kontextfreie Grammatik erzeugt automatisch eine kontextfreie Sprache?

    Tut sie auch. Nur sind die regulären Sprachen eine Teilmenge der kontextfreien.

  • Stefan_Sch
    Punkte
    30
    Beiträge
    5
    • 24. Januar 2009 um 03:35
    • #5
    Zitat von mdk

    Tut sie auch. Nur sind die regulären Sprachen eine Teilmenge der kontextfreien.

    Ok. Prinzipiell bedeutet das dann, dass ich selbst mit einer kontextsensitiven Grammatik eine reguläre Sprache erzeugen kann. Umgekehrt kann ich aber keine Typ 1 Sprache mit einer links- oder rechtslinearen Grammatik erzeugen?

    Ist das korrekt? :)

  • mdk
    Punkte
    7.120
    Beiträge
    1.390
    • 24. Januar 2009 um 03:50
    • #6
    Zitat von Stefan_Sch


    Ist das korrekt? :)

    Ja.

  • Stefan_Sch
    Punkte
    30
    Beiträge
    5
    • 24. Januar 2009 um 03:57
    • #7
    Zitat von mdk

    Ja.

    Sehr schön!

    Eine letzte Frage noch. ;)

    Dann müsste das erste Beispiel durch die von mir kurz gefasste folgende linkslineare Grammatik ersetzt werden können, oder? :o

    Code
    S -> Sab
    S -> ab

    also durch

    Code
    S -> Ab
    A -> Ba
    B -> Ab
    A -> a

    Hier mal der Ableitungsbaum:

    Code
    S
             | \
             A  b
           / |  |
          B  a  b
        / |  |  |
       A  b  a  b
       |  |  |  |
       a  b  a  b

    5 Mal editiert, zuletzt von Stefan_Sch (24. Januar 2009 um 04:07)

  • mdk
    Punkte
    7.120
    Beiträge
    1.390
    • 24. Januar 2009 um 04:12
    • #8
    Zitat von Stefan_Sch


    Dann müsste das erste Beispiel durch die von mir kurz gefasste folgende linkslineare Grammatik ersetzt werden können, oder? :o

    Ja, sollte so stimmen.

  • Stefan_Sch
    Punkte
    30
    Beiträge
    5
    • 24. Januar 2009 um 04:16
    • #9
    Zitat von mdk

    Ja, sollte so stimmen.

    Danke! Du hast mir geholfen ein paar Unklarheiten zu beseitigen. :)

    Viele Grüße,
    Stefan

  • Maximilian Rupp 27. Dezember 2024 um 00:20

    Hat das Thema aus dem Forum Off-Topic nach Off-Topic verschoben.

  1. Datenschutzerklärung
  2. Impressum