next up previous contents
Next: Glossar Up: Implementierungen virtueller Maschinen Previous: Tycoon-2   Inhalt

SELF 4.1.2

Das Self-System ist der ``Pionier'' der dynamisch optimierenden virtuellen Maschinen. Viele Techniken der dynamischen Compiler wie beispielsweise PIC und OSR wurden im Rahmen des Self-Projektes entwickelt. Die Sun HotSpot-VM ist stark vom Self-Projekt beeinflußt, da sie in großen Teilen von ``Self-Veteranen'' entwickelt wurde.

Die Programmierung des Self-Systems erfolgt in der objektbasierten Sprache Self. Im Unterschied zu klassenbasierten Sprachen existieren in Self keine Klassen -- hingegen werden neue Objekte als clone eines anderen Objektes erzeugt. Dieser gegenüber herkömmlichen klassenbasierten Sprachen leicht veränderte Ansatz hat aber nur geringe Auswirkungen auf die Optimierungen, die eine virtuelle Maschine vornehmen kann. Prinzipiell können in objekt- und klassenbasierten Systemen die gleichen Techniken angewendet werden.

Das Self-System verwendet einen generationalen Garbage Collector mit zwei Generationen und einem ``Eden-Space'' für die Allokation. Zur Protokollierung von Referenzen zwischen Generationen wird ,,Card-Marking`` mit einer Kartengröße von 128 Bytes verwendet.

Das Self-System verfügt über keinen Interpreter -- hingegen werden ein nicht-optimierender und ein optimierender Compiler verwendet. Letzterer führt Optimierungen wie inlining, customization, splitting, copy propagation und dead code elimination durch. Die Registerallokation findet mit Hilfe eines einfachen Verwendungszählers anstatt eines graphen-basierten Algorithmus verwendet. Zur Beschleunigung des dynamischen Methodenaufrufs werden polymorphic inline caches verwendet, die gleichzeitig zur Profilerstellung herangezogen werden.


next up previous contents
Next: Glossar Up: Implementierungen virtueller Maschinen Previous: Tycoon-2   Inhalt

2001-02-28