CB-I im WS99/00

Blatt 10

Aufgabe 1

Attributieren Sie dei Grammatik aus Bl9/Auf2 so, das das Attribut s.n nach Auswertung der Attribute die normalisierte Darstellung der Ausdrücke enthält, und testen Sie die Attributierung am Ausdruck
( rx - rm ) / rs * 2.0 * rpi
Gehen Sie dabei davon aus, das die Lexer-Funktion StringVal(VAR) die Zeichenreihe liefert, die zum Token VAR geparsed wurde (für REAL, INT entsprechend).

Aufgabe 2

Gegeben sei folgendes Programm:
 programm Test = 
  begin
   var res : integer;
   var i: integer;
   var a : real:
   proc fak (x : integer) = 
    begin
     var a : boolean;
     res = res * x;
     x := x - 1;
     if ( x <> 0 )
     then
      fak(x);
     fi
    end;
   res := 1;
   i := 2;
   f(i);
  end.
      
  1. Geben Sie den Identifikatorenkeller für das Programm an.
  2. Geben Sie den erzeugten Code für das Programm an.
  3. Geben Sie den Laufzeitkeller dazu an.

Dietmar Lammers
Last modified: Wed Nov 17 15:58:58 MET 1999