Unter den verschiedenen Implementierungen des Paradigmas der aspektorientierten Programmierung haben sich einige Ansätze entwickelt, in welchen das Weben nicht notwendig zur Übersetzungszeit, sondern zur Laufzeit einer Anwendung geschieht. Ein Weben zur Laufzeit bietet den Vorteil, dass, beispielsweise im Kontext von J2EE-Anwendungen, Objekte dynamisch und transparent mit bestimmten Diensten ausgestattet werden können, die im Rahmen einer J2EE-Umgebung von großer Wichtigkeit sind. Weiterhin trägt dynamisches Weben der inhärent dynamischen Natur von pointcuts - sie quantifizieren über die Ausführung einer Anwendung - eher Rechnung als ein statischer Ansatz. Die unterschiedlichen bestehenden Ansätze zum dynamischen Weben lassen jedoch die Art von Unterstützung for AOP-Sprachmechanismen vermissen, die für Sprachmechanismen anderer Paradigmen gang und gäbe ist: eine direkte Unterstützung durch die Laufzeitumgebung. Beispielsweise bieten virtuelle Maschinen für objektorientierte Programmiersprachen direkte Unterstützung für die Auflösung virtueller Methoden mittels Methodentabellen. Eine solche Unterstützung ist für aspektorientierte Mechanismen derzeit nicht verfügbar. Statt dessen wird auf Anwendungsebene die Implementierung einer Laufzeitumgebung für AOP-Sprachen simuliert. An dieser Stelle setzt die vorliegende Arbeit an. Im Rahmen der Arbeit wurde Steamloom implementiert, eine virtuelle Maschine mit expliziter Unterstützung für AOP-Mechanismen. Steamloom ist eine Erweiterung einer bestehenden virtuellen Maschine für die Programmiersprache Java. Steamloom bietet eine einheitliche Darstellungsschicht von Java-Bytecodes, auf die sowohl die virtuelle Maschine selbst als auch die AOP-Funktionalität zugreifen. Letztere nutzt die Möglichkeiten der Bytecode-Darstellung sowohl zur Auswertung von pointcuts als auch zum Weben. Desweiteren unterstützt Steamloom dynamisches Weben, indem die in der virtuellen Maschine vorhandenen Laufzeitübersetzer für Java-Bytecodes dazu benutzt werden, von Webevorgängen betroffene Methoden dynamisch neu zu übersetzen. Darüber hinaus bietet Steamloom integrierte Unterstützung für einige andere Mechanismen von AOP-Sprachen an, von denen eine effiziente Auswertung bestimmter kontrollflussabhängiger residues besonders hervorzuheben ist. Steamloom ist als Plattform konzipiert, auf deren Basis AOP-Sprachen experimentell implementiert werden können. Sowohl das pointcut-Modell als auch der Weber sind erweiterbar, was die Implementierung neuer Elemente erlaubt. Diese Erweiterbarkeit wurde im Rahmen dieser Arbeit genutzt, um drei verschiedene Ansätze für kontrollflussabhängige pointcuts zu implementieren und experimentell zu evaluieren. Um den Wert von Steamloom zu ermessen, wurde eine umfassende Analyse verschiedenster Aspekte der Geschwindigkeit und Effizienz einer repräsentativen Menge bestehender AOP-Implementierungen durchgeführt. Sie basiert auf einer Beschreibung von Implementierungsdetails dieser Implementierungen, die auf der Basis eines einheitlichen Rahmens durchgeführt wurde. | German |