Extending a Java Virtual Machine to Dynamic Object-oriented Languages von Tobias Pape | ISBN 9783869562667

Extending a Java Virtual Machine to Dynamic Object-oriented Languages

von Tobias Pape, Arian Treffer, Robert Hirschfeld und Michael Haupt
Mitwirkende
Autor / AutorinTobias Pape
Autor / AutorinArian Treffer
Autor / AutorinRobert Hirschfeld
Autor / AutorinMichael Haupt
Buchcover Extending a Java Virtual Machine to Dynamic Object-oriented Languages | Tobias Pape | EAN 9783869562667 | ISBN 3-86956-266-8 | ISBN 978-3-86956-266-7
Inhaltsverzeichnis

Extending a Java Virtual Machine to Dynamic Object-oriented Languages

von Tobias Pape, Arian Treffer, Robert Hirschfeld und Michael Haupt
Mitwirkende
Autor / AutorinTobias Pape
Autor / AutorinArian Treffer
Autor / AutorinRobert Hirschfeld
Autor / AutorinMichael Haupt
Es gibt zwei übliche Wege, um eine virtuelle Maschine (VM) für eine dynamische objektorientierte Programmiersprache zu implementieren. Einerseits kann sie in einer C-ähnlichen Programmiersprache geschrieben werden, um bestmögliche Leistung zu erzielen und größtmöglichen Einfluss auf das sich ergebende ausführbare Programm zu haben. Andererseits kann sie in einer Sprache wie Java geschrieben werden, die weitreichendere Abstraktionen als die C-ähnlichen Sprachen erlaubt. Diese Abstraktionen, beispielsweise echte objektorientierte Modularisierung, automatische Speicherverwaltung oder explizite Schnittstellen, erlauben eine vereinfachtes Implementieren von VM-typischen, aber komplexen Konzepten, wie Speicherbereinigung (garbage collector, GCs) oder just-in-time-Compilern (JITs). Wird eine dynamische objektorientierte Programmiersprache in Java geschrieben, ist jedoch mit Leistungseinbußen zu rechen, da effektiv zwei aufeinander aufbauende virtuelle Maschinen entstehen. Die Maxine VM löst diese Problem für statisch getypte Programmiersprachen; sie ist in Java geschrieben, kann aber ohne jegliche Java VM (JVM) laufen. Es ist jedoch momentan nicht möglich, dynamische objektorientierte Programmiersprachen in Maxine auszuführen. Diese Arbeit stellt einen Ansatz zur Umsetzung von Objekt- und Ausführungsmodellen dynamischer objektorientierter Programmiersprachen innerhalb der Maxine VM vor, sowie dessen Anwendung auf Squeak/Smalltalk. Dabei stellt die Representation von Objekten und die Ausführung dynamischer objektorientierter Programmiersprachen bestimmte Heraus- und Anforderungen an die Maxine VM, die trotz des Fokus auf Modularität und Konfigurierbarkeit einige Variationspunkte vermissen lässt, welche wiederum für eine einfache Implementierung von besagten Ausführungsmodellen jedoch unerlässlich sind. Daher sollen durch eine testweise Implementierung von Squeak/Smalltalk in Maxine eben jene Variationspunkte identifiziert werden.