Einige der Papers sind aus urheberrechtlichen Gründen nur innerhalb des TUnets (bzw. über TUvpn) erreichbar.
Einige Papers sind im Postscript-Format. Dafür brauchen Sie u.U. einen eigenen Viewer wie gv (Ghostview), gsview, oder Evince.
Leider bin ich nicht dazu gekommen, vollständige bibliographische Angaben zu machen, solange Sie nur Lesen wollen, reichen die Links auch aus.
Sie müssen nicht alles lesen, aber wenn Sie über ein in der Vorlesung besprochenes Thema mehr Informationen wollen, sind die verlinkten Informationen hoffentlich hilfreich.
Java VM kurz und übersichtlicher: 1.0 beta oder aktueller und mit Links in der Inhaltsangabe, aber länger
Smalltalk byte code: Smalltalk 80: Bits of History, Words of Advice enthält eine Reihe von Kapiteln über verschiedene Implementierungen.
Virtuelle Maschinen im Betriebssystembereich (nicht Thema dieser LVA): Hardware Virtualization
Implementierung
Dispatch
Threaded code: Gut geschrieben, aber nicht Open Access: An Architectural Trail to Threaded-Code Systems; Threaded code (Varianten und ihre Implementierung); Implementierung mit tail-call optimierung: Copy-and-Patch Compilation
Code copying: Code-Copying Compilation in Production
IP-update-Optimierung: The Performance Effects of Virtual-Machine Instruction Pointer Updates
Copy-and-Patch Compilation: Copy-and-Patch Compilation; Retargeting JIT compilers by using C-compiler generated executable code
Operandenzugriff
Stack caching: Stack Caching in Forth
Register VM: Virtual machine showdown: Stack versus registers; The Implementation of Lua 5.0 (gibt auch sonst einen Überblick über Implementierungstechniken)
Statische Superinstructions: Optimizing Interpreters with Superinstructions; Super-combinators: a new implementation method for applicative languages; Optimizing an ANSI C interpreter with superoperators
Datendarstellung und Typen
Objekte: Implementing statically typed object-oriented programming languages
Tagging: Abschnitt 1.1 von Float Self-Tagging
NaN-Boxing: Abschnitt 1.2 von Float Self-Tagging
Just-in-time Compilation
Methodenbasiert vs. Trace-basiert: A trace-based Java JIT compiler retrofitted from a method-based compiler
Trace-basiert: HotpathVM: An Effective JIT Compiler for Resource-constrained Devices
WebAssembly: Bringing the Web Up to Speed with WebAssembly
Prolog
VMgen: vmgen: A Generator of Efficient Virtual Machine Interpreters