Übersetzerbau

WS 98/99
Heckmann
Pape

2. Übungsblatt

 

Aufgabe 1: Statische Felder (3 Punkte)

  1. Definieren Sie, was die spaltenweise Ablage von Feldern bedeutet.

  2. Geben Sie ein Übersetzungsschema für die Indizierung von statischen Feldern bei spaltenweiser Ablage an.

 

Aufgabe 2: Dynamische Felder (9 Punkte)

  1. Definieren Sie, analog zum chk-Befehl im statischen Fall, einen geeigneten Befehl, der bei dynamischen Feldern die Bereichsüberprüfung vornimmt. Fügen Sie den Befehl in das Codeschema dynamischer Felder bei zeilenweiser Ablage ein. Ändern Sie dazu das Codeschema wenn nötig.

  2. Im Deklarationsteileiner Prozedur werde ein dynamisches Feld deklariert:
    procedure p;
    var b   : array [u1..o1,u2..o2] of integer;
        i,j : integer;
    begin
        b[i,j] := b[i-1,j+1] + 1;
    end;


    Bei Eintritt in die Prozedur haben die globalen Variablen u1, o1, u2 und o2 die folgenden Werte: u1=-4, o1=5, u2=1 und o2=10. Die Relativadresse von b sei (b)=15.

    1. Geben Sie den Felddescriptor für b an.

    2. Übersetzen Sie die Zuweisung im Anweisungsteil der Prozedur.