22 - Theorie der Programmierung [ID:5297]
50 von 530 angezeigt

Dieser Audiobeitrag wird von der Universität Erlangen-Nürnberg präsentiert.

So, wir haben letztes Mal nicht mehr geschafft. Eine Sache, die wollte ich jetzt noch ganz kurz

nachtragen und zwar haben wir den vollen Hindley-Mellner Typinferenz-Algorithmus angeschrieben,

aber kein Beispiel gerechnet und da das auch in den Übungen so direkt nicht vorkommt, sollten wir

vielleicht mal aufnehmen in Zukunft. Wollte ich jetzt gerne hier ein Beispiel

noch mal vorgerechnet haben. Das ist dieses hier.

Jawoll.

Also der Hindley-Müllner-Algorithmus oder eben Algorithmus W.

Ach ja, eine konkrete Sache die da stand war, dass ich zu viele Abkürzungen von

Wörtern verwende, wie zum Beispiel hier ALG für Algorithmus, das natürlich

dieselbe Abkürzung ist wie die, die ich gelegentlich für Algebra verwende. Wenn

Sie eine Abkürzung nicht verstehen, fragen Sie ruhig. So, algorithmus W.

Ich erinnere noch mal an diese beiden neuen Klauseln in der rekursiven

Definition dieser Constraintmenge, die wir ausrechnen im Laufe des Algorithmus.

Das war einmal dieses hier.

So, das ist also einmal der Fall für eine Variable. Also wir versuchen zu typisieren

eine Variable x im Kontext Gamma mit einem Typ, der auf einen Typ Kleingamma

matcht. Und x hat im Kontext, also in Gamma,

einen Typ Schema, all quantifiziert über Variablen a1 bis ak und mit Typ

drunter alpha. So, und das war so.

So, da kommt raus eine Gleichung und zwar nur eine, weil wir jetzt hier

praktisch am Ende der Herleitung angekommen sind. Und diese Gleichung sagt,

gut, wir müssen halt so substituieren, dass dieser Typ alpha den x hat,

all quantifiziert über a1 bis ak, dass der gleich Gamma wird. Und wir substituieren

jetzt aber für diese a1 bis ak, die da vorkommen, frische Variablen. Das ist

das eine, das habe ich noch nicht angeschrieben. Also, das stimmt nicht mit

deinen Notizen überein, weil hier vermutlich ein Tippfehler ist. Habe ich das

letztes Mal korrekt so angeschrieben? Oder habe ich den Tippfehler angeschrieben?

Also es fehlte konkret hier, also in meinen Notizen fehlt das gleiche Gamma.

Also ich meine, es ist unsinn, weil es dann keine Gleichung ist. Steht da? Okay, ja.

Ja, umso besser, wenn man nicht in seine Notizen guckt. So, das ist also das

eine, was wir machen müssen. Wir müssen also sehen, dass wir bei Variablen jetzt

den Typ hier noch, ja, hier praktisch die Polymorphie des Typschemas, den das x

im Kontext hat, ausnutzen. Und die Umbenennung in frische Variablen dient

eben dazu, uns alle Freiheit zu belassen bei weiteren Instanzierungen dieser

Polymorphenvariable x, wo wir dann also andere Dinge einsetzen können für die

a1 bis ak, weil wir eben nicht gezwungen sind, hier nachher diese a1 Strich alle

gleich zu belegen, weil die eben jedes Mal frisch belegt werden, also

jedes Mal frisch gewählt werden. So, und das andere war

in der Fall dieses neuen Let-Konstrukts, das ein Typ alpha bekommen soll in

Kontext Gamma nach geeigneter Substitution für die Typvariablen. So, und

dazu müssen wir erst mal rekursiv diese Constraintmenge für dieses Teilproblem

hier, also für das S ausrechnen und dann aber tatsächlich lösen, weil wir an die

Substitution ran müssen. Das heißt, wir rechnen wirklich jetzt mal aus, den MGU

von der Constraintmenge für Gamma S und B, jetzt für ein frisches B und unter

Zuhilfenahme dieses ausgerechneten MGU definieren wir das als die

Constraintmenge jetzt für diesen rechten Teil T, aber unter dieser schon

ausgerechneten Substitution Sigma.

Das braucht noch mehr Platz. So, und hier diesen Kontext, den müssen wir

selbstverständlich vergrößern, weil der Typ von dem T ja hier von dem X wiederum

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:20:17 Min

Aufnahmedatum

2015-07-06

Hochgeladen am

2015-07-07 07:16:22

Sprache

de-DE

Einbetten
Wordpress FAU Plugin
iFrame
Teilen