0 Daumen
60 Aufrufe

Frage:

L = {a^(n) b^(n+1) | n >= 1}


Für die Sprache L einen Stackautomaten (= Kellerautomaten) erstellen.

Code:

Wort w = aabbb wist z.B. in der Sprache

Startsymbol im Stack s0 = 0

(q0, a, 0)  = (q0, 10)

(q0, a, 1)  = (q0, 11)

(q0, b, 1)  = (q1, Epsilon)

(q1, b, 1)  = (q1, Epsilon)  

(q1, b, 0)  = (q2, Epsilon)


das geht ja leider aber nicht im letzten Schritt lese ich "b" und  das letzte Symbol "0" im Stack aber das stimmt ja so nicht. Wenn ich ein "a" einlese schreibe ich im Stack eine "1" und wenn ich ein "b" einlese lösche ich eine "1" aus dem Stack aber mit b^(n+1) geht die Rechnung nicht aus.


kann ich dann beim einlesen des ersten b´s eine 1 in den Stack schreiben und bei den weiteren b´s  die 1en löschen.

Bitte um Hilfe.

LG  

von

Ein anderes Problem?

Stell deine Frage

Ähnliche Fragen

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community