1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Community
  3. Smalltalk

Reguläre Sprache

  • Stefan_Sch
  • 24. Januar 2009 um 02:25
  • Unerledigt
  • Stefan_Sch
    2
    Stefan_Sch
    Mitglied
    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
    26
    mdk
    Emeritus
    Reaktionen
    130
    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
    2
    Stefan_Sch
    Mitglied
    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
    26
    mdk
    Emeritus
    Reaktionen
    130
    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
    2
    Stefan_Sch
    Mitglied
    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
    26
    mdk
    Emeritus
    Reaktionen
    130
    Punkte
    7.120
    Beiträge
    1.390
    • 24. Januar 2009 um 03:50
    • #6
    Zitat von Stefan_Sch


    Ist das korrekt? :)

    Ja.

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

    Ja.

    Sehr schön!

    Eine letzte Frage noch. :winking_face:

    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
    26
    mdk
    Emeritus
    Reaktionen
    130
    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
    2
    Stefan_Sch
    Mitglied
    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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung