Übersetzerbau

WS 98/99
Heckmann
Pape

13. Übungsblatt

 

Aufgabe 1 (4 + 4 Punkte)

Gegeben sei folgendes Programmstück:

while d > 0 do
   a := b + c;
   d := d - b;
   e := a + f;
   if e <> 0
   then
      f := a - d
   else
      b := d + f;
      e := a - c
   end if;
   b := a + c
end while
 
  1. Berechnen Sie den Registerkollisionsgraph für das Programmstück.
  2. 3-färben Sie den Registerkollisionsgraph aus (a).

Aufgabe 2 (4 Punkte)

Sie haben die Aufgabe, einen Java™-Übersetzer zu entwickeln, der auf einer SGI-Station läuft und Code für den Nintendo Gameboy™ erzeugt. Ihr Auftraggeber verlangt, daß der Übersetzer selbst in Java™ geschrieben ist. Auf der SGI steht Ihnen ein C-Übersetzer zur Verfügung, der Code für die SGI-Station oder für die Maschinensprache des Gameboys™ (Crosscompiler) erzeugt.

Auf welche Weise gehen Sie vor?