Übersetzerbau

WS 98/99
Heckmann
Pape

10. Übungsblatt

 

Aufgabe 1 (2 + 2 Punkte)

Gegeben seien die folgenden rekursiven Typdefinitionen:

R = [a: S, b: T -> int]
S = [a: int, b: R -> int]
T = [a: S, b: R -> int]
 

Prüfen Sie R = T und S = T mit Hilfe des Algorithmus aus der Vorlesung.

Aufgabe 3 (2 + 2 + 2 Punkte)

Gegeben seien die folgenden Operatoren bzw. Funktionen:

+: int x int -> int
+: real x real -> real
 
/: int x int -> int
/: real x real -> real
/: int x int -> real
 
sqrt: int -> real
sqrt: real -> real
 

Sei A eine Variable vom Typ real. Die Konstanten 1, 2, 3 und 4 seien sämtlich vom Typ integer.

Benutzen Sie den Algorithmus aus der Vorlesung, um die Überladung in den Zuweisungen

A := 1/2 + 3/4
A := A + sqrt(1/2)
A := 1 / sqrt(2)
 

(wenn möglich) aufzulösen.