Sie sind auf Seite 1von 5

Blatt 1

Seite 1

¨

Softwareparadigmen SS 2012, Ubungsblatt 1

Verwenden Sie bei der Definition von Grammatiken immer eine innerhalb der Chomsky Sprachhierar- chie m¨oglichst eingeschr ¨ankte Sprache. Begr unden¨ Sie, wenn es Ihnen notwendig erscheint, eine weniger eingeschr ¨ankte Stufe zu w ¨ahlen.

Beispiel 1

(3 P.)

Definieren Sie regul ¨are Grammatiken fur¨ folgende Sprachen:

a) L = { a n b cc | n > 0 }

b) L = { a n (b | c ) 2m | n, m > 0 }

c) L = { a n (b | c 2m )| n, m 0 }

Beispiel 2

(2 P.)

Definieren Sie eine Grammatik fur¨ folgende Sprache:

Beispiel 3

(2 P.)

L = { a n b 2n c n | n > 0 }

Definieren Sie eine Grammatik fur¨ folgende Sprache:

Beispiel 4

(2 P.)

L = { a n b m c n+m | m 0 , n > 0 }

Gegeben ist die folgende Grammatik:

S

A B

S

B B

A

C S

A

A C

A

W ege

A

Rom

B

B A

B

A C

B

fuehren

B

nach

C

C A

C

Alle

C

!

Zeigen sie anhand eines Parse Trees, dass das Sprichwort Alle Wege fuhren¨ nach Rom!“ in der durch diese Grammatik definierten Sprache liegt. Zeigen sie außerdem, das s durch unterschiedliche Abfolge der Regeln ein weiterer Parse Tree entsteht, der diesen Satz ergibt.

Blatt 1

Seite 2

Beispiel 5

(2 P.)

¨

Schreiben sie einen regul ¨aren Ausdruck, der die Syntax von vereinfachten logischen Aquivalenzen be-

schreibt.

¨

Diese Syntax beginnt mit einem logischen Ausdruck, gefolgt von dem Aquivalenzsymbol () und ei- nem zweiten logischen Ausdruck. Ein logischer Ausdruck besteht aus mindestens einer Aussagenvariable, welche durch Kleinbuchstaben dargestellt wird und Junktoren (, , ), die die Aussagenvariablen mit- einander verknupfen.¨ Einer Aussagenvariable k ¨onnen (mussen¨ aber nicht) Negationen (¬) vorangestellt werden. Im logischen Ausdruck kommen keine Klammern vor.

Beispiel: p q q p

Beispiel: ¬¬q q

Beispiel: ¬p q p q

Wandeln sie anschließend Ihren regul ¨aren Ausdruck in eine regul ¨are Grammatik um.

Beispiel 6

(2 P.)

Definieren Sie eine Grammatik, die die Syntax von eingeschr ¨ankten regul ¨aren Ausdr ucken¨

Fur¨ die Grammatik gelten folgende Eigenschaften:

Alphabet: { a,b}

Operatoren: { .,?,+ ,* , | }

Klammern sind m¨oglich

Beispiel 7

(2 P.)

beschreibt.

Schreiben Sie einen Recursive Descent Parser fur¨ die von Ihnen definierte Grammatik aus Beispiel 5 in Pseudocode.

Beispiel 8

(2 P.)

Schreiben Sie einen Recursive Descent Parser fur¨ folgende Grammatik:

S

S

A

A

B

a

a A b b B b c A c

c

Blatt 1

Seite 3

Beispiel 9

(2 P.)

Welcher Ebene der Chomsky-Sprachhierarchie geh¨oren die durch folgende Grammatiken definierten Spra- chen an? Begr unden¨ Sie!

a)

 

S

char A

 

A

: B

A

. C

 

B

num C

C

char

b)

 

S

A char

A

B num

A

C num

B

num

num char

c)

 

S

A char

 

A

B num

A

C num

 

B

num C

C

B

C

char

d)

 

S

( A )

A

A : A

A

A . A

A

num

A

id

e)

 

S

A B C

C

num

 

B num

C :

 

A num char

f)

 

S

A B A

B

A C

A

B

C

num

num

num char

Blatt 1

Seite 4

Beispiel 10

(2 P.)

Gegeben sei folgende Grammatik G:

S

S

S

a

a S c b S cc

Welche einfache Eigenschaft besteht zwischen der Anzahl der Ter minale ,,a ”, ,,b” und ,,c ” in allen W¨ortern der Sprache L(G)? Beweisen Sie den von Ihnen aufgestellte n Zusammenhang mit vollst¨andiger Induktion anhand der Produktionsregeln.

Beispiel 11

(2 P.)

Die folgende Grammatik beschreibt einfache Programme, bestehend aus Zuweisungen, mathematischen Operationen und Funktionsaufrufen. Berechnen Sie die FIRST- und FOLLOW-Mengen fur¨ alle Non- Terminale (Startsymbol S):

S

A ; S

S

ǫ

A

E

 

A

F

E

id = O

F

fun ( P )

F

fun ()

 

P

P , P

P

O

 

O

T

O

num op O

O

( T op O )

T

id

 

T

num

T

F

Blatt 1

Seite 5

Beispiel 12

(2 P.)

Berechnen Sie die FIRST- und FOLLOW-Mengen fur¨ alle Non-Terminale der folgenden Grammatik (Startsymbol S):

Beispiel 13

(2 P.)

S

a A

A

B c

A

ǫ

B

AC

B

d

C

D d

D

a

D

ǫ

Berechnen Sie die FIRST- und FOLLOW-Mengen fur¨ alle Non-Terminale der folgenden Grammatik (Startsymbol S):

Beispiel 14

(3 P.)

S

a A

A

B A c

A

d

B

ǫ

B

a C a

C

d

C

ǫ

Berechnen Sie die FIRST- und FOLLOW-Mengen fur¨ alle Non-Terminale der folgenden Grammatik (Startsymbol S):

S

A C D a

S

B b

A

A B

A

A C

A

d

A

ǫ

B

C A

C

ǫ

C

c D

C

b

D

a

D

ǫ