Compilerbau WiSe 2002/03

Übungsblatt 9

Aufgabe 1

  1. Geben Sie für den Unterbereich ausdruck der Grammatik von Blatt 8 Attributregeln an, die komplexe Ausdrücke mit Hilfe von Hilfsvariablen in einfache Ausdrücke zerlegen. Gehen Sie dabei davon aus, das die Funktion neue_hilfsvar() Ihnen den Namen einer neuen Hilfsvariable liefert.
  2. Zerlegen Sie mit Ihrem Verfahren und mit der Kellermethode den Ausdruck
     a * 1.5 * ((y/3 + b + (7)) + (12 / ( pi / 4)))
    	  
  3. Ist das Verfahren optimal? Vergleichen Sie das Verfahren mit der Kellermethode.

Aufgabe 2

Wie würde das MMS-Array
 var a array [-5:17,12:14,0:1] of integer;
      
im Speicher abgelegt? Wieviele Speicherzellen belegt es? Wie wird im erzeugten Code auf das Element a[-3,12,1] zugegriffen?

Aufgabe 3

Erklären Sie den Begriff "reduce-reduce-Konflikt".

Dietmar Lammers
Last modified: Mon Dec 8 09:25:22 CET 2003