• Keine Ergebnisse gefunden

Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Karlsruher Institut f¨ur Technologie Lehrstuhl f¨ur Programmierparadigmen"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Karlsruher Institut f¨ ur Technologie

Lehrstuhl f¨ ur Programmierparadigmen

Sprachtechnologie und Compiler WS 2010/2011 Dozent: Prof. Dr.-Ing. G. Snelting

Ubungsleiter: Matthias Braun¨ matthias.braun@kit.edu Ubungsblatt 5¨ Ausgabe: 14.5.2012 Besprechung: 24.5.2012

Aufgabe 1:LR(0),SLR(1),LALR(1) undLR(1) 1.1SLR(1),¬LR(0)

Geben Sie eine SLR(1)-Grammatik an, die nicht LR(0) ist.

1.2LALR(1),¬SLR(1)

Geben Sie eine LALR(1)-Grammatik an, die nicht SLR(1) ist.

1.3LR(1),¬LALR(1)

Geben Sie eine LR(1)-Grammatik an, die nicht LALR(1) ist.

1.4¬LR(k)

Geben Sie eine eindeutige kontextfreie Grammatik an, die nicht LR(k) ist (f¨ur allek).

1.5LR(k),¬LL(k)

Geben Sie eine LR(k)-Grammatik an, die nicht LL(k) ist (f¨ur allek).

Aufgabe 2:LALR-Parser 2.1Situationsmengen

Legen sie die LALR(1)-Situationsmengen f¨ur folgende Grammatik an:

S→S S+|S S*|a

2.2LALR(1)-Parser, Shift-Reduce- ¨Uberg¨ange Gegeben sei die Grammatik

S→L=R (1) L→a (4)

S→R (2) R→L (5)

L→ ∗R (3)

Zeigen Sie, daß die Grammatik LALR(1) ist durch Bestimmung der Parsertabelle/ ¨Ubergangsmatrix. Ist sie auch SLR(1)? Wie kann man dies anhand der Parsertabelle begr¨unden?

1

(2)

Aufgabe 3:LALR-Generatoren

%%

e : "id" | /* eine Variable */

m /* ein Methodenaufruf */

;

m : "id" | /* Methode ohne Parameter */

m "(" a ")" /* mit Parameter und Deprozedurierung */

;

a : "id" | /* Argumentliste */

a "," "id"

;

Wenn man obige Grammatik mit ’bison’ oder ’yacc’ verarbeiten will, bekommt man die Meldung:

rrc.y contains 1 reduce/reduce conflict.

3.1Konflikte in der LALR-Tabelle

Wie erkl¨aren sie das?

3.2LALR Eigenschaft herstellen

Wie kann man das beheben, ohne die Sprache zu ver¨andern?

3.3shift/reduce conflict

Geben Sie eine Grammatik an die einen ’shift/reduce conflict’ enth¨alt!

2

Referenzen

ÄHNLICHE DOKUMENTE

(5) Alle Strings aus a und b mit einer geraden Anzahl von a und einer ungeraden Anzahl von b (Denksport- aufgabe). Aufgabe 4: Regul¨ are

Enth¨ alt die Zahl einen Punkt, so darf der Buchstabe e oder E angeh¨ angt werden, gefolgt von einem optionalen + oder - und weiteren Ziffern.. Zus¨ atzlich soll bei T NUMBER Tokens

Wenn wir versuchen, eine LR- Parsertabelle daf¨ ur zu erstellen, ergeben sich Konflikte zwischen einigen Aktionen.. Welche

Ubersetzen Sie den Ausdruck ¨ this.x = 32 - this.foo()[2] in Java Bytecode, geben Sie auch einen passenden Konstantenpool an?. (foo ist eine

Idee: durchlaufe Programm r¨ uckw¨ arts, ab einer Benutzung ist eine Variable lebendig, ab einer Definition tot?. gen enth¨ alt Variablen die Benutzt werden, kill Variablen

Erweitern Sie ihren Verband und die dazugeh¨ origen Transferfunktionen, um das gefundene Problem zu beheben.. F¨ uhren Sie eine Fixpunktiteration mit den erweiterten

Sprachtechnologie und Compiler, Sommersemester 2014 Dozent: Prof.. Was f¨ allt

Schreiben Sie mehrere kleine Testprogramme und vergleichen Sie den generierten x86-64-Assemblers f¨ ur zwei optimierende Compiler.. K¨ onnen Sie