Id: trampolin.tex,v 1.1 2004/11/16 12:32:07 waldmann Exp
Entwurfs-Ziele:
- korrekte Lösung, aber kompatibel und ohne Overhead
- nicht aus allen Zeigern closures machen.
- nicht zwei Versionen von
twice
.
Falls Funktion g innerhalb von f definiert,
und Closure (Zeiger auf) g benötigt, dann:
- erzeuge Programmstück (Trampolin),
das FP von f in Register schreibt,
und dann zu g springt.
- Am Anfang von g dieses Register in Static Link Field
des aktuellen Frames schreiben.
- Zeiger auf Trampolin als Closure benutzen.
- nicht-lokale Zugriffe in g verfolgen statische Kette.
Johannes Waldmann
2005-01-28