2009-04-05 11 views
1

Geben Sie die EBNF-Spezifikation für die Sprache L die a aus den Zeichen besteht, b und c so dass Sätze in der Sprache haben die FormDefinieren einer Sprache in EBNF

L : sqsR 

-s is a string of any combination of the characters a and b 
-sR is that same string s reversed 
-q is an odd number of c's followed by either an odd number of b's 
    or an even number of a’s. 

Was ich habe, so weit:

L -> S 
S -> {a}{b}Q 
Q -> 

Wenn dies richtig ist, ich bin immer noch nicht wirklich sicher, wie von Q zu produzieren und auch, wie S in umgekehrter Richtung zu vertreten.

+0

Machen Sie bitte Ihre eigenen Hausaufgaben. –

+0

Warum? Sie mögen es nicht, Studenten zu helfen? –

+1

Wir machen keine Hausaufgaben für sie hier, aber wir sind bereit zu helfen. John hat uns eine Idee von * wo * er steckt fest, so gibt es einen Griff auf, welche Art von Ratschlag hilft, ohne ihm die Lösungen geben ... – dmckee

Antwort

1
  • Versuchen Sie, die ersten beiden Teile aus der Mitte Gebäude aus
  • Sie können eine ungerade Anzahl von Wiederholungen erzwingen, indem Sie mit genau einem Punkt beginnen und N * 2 weitere Elemente hinzufügen (für ganzzahlige N). Dies sollte vorschlagen, wie eine gerade Anzahl als auch zu zwingen
+0

Danke, das hilft ein bisschen –

2

Dies ist eine Zeichenfolge, die mit dem gleichen String beginnt und endet, sondern umgekehrt:

X -> aXa 
    -> bXb 

Dies ist eine Zeichenfolge mit einer ungeraden Anzahl von c der ist :

Y -> cY2 
Y2 -> ccY2 

Ich habe einige entscheidende Bits weggelassen, aber hoffentlich kann das Ihnen den Anfang machen.

+0

Danke, ich sehe wie die ungerade Anzahl von c funktioniert, aber ich bin etwas verwirrt darüber, wie diese X-Produktion funktioniert, um eine Zeichenkette umzukehren. –

+0

Es könnte hilfreich sein, wenn Sie versuchen, die X-Regel zu verwenden, um ein paar Strings zu erzeugen - beginnen Sie mit einer Kombination von a oder b und sehen Sie, was Sie am Ende –

+0

Die Syntax verwirrt mich einfach Ich denke; X -> aXa scheint links-rekursiv zu sein, wie kommst du dazu -> bXb? –