In der Programmierung bedeutet Reflexion (englisch reflection) oder Introspektion, dass ein Programm seine eigene Struktur kennt und diese modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Frameworks oder Sprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise .NET, Java oder Smalltalk und viele interpretierende Sprachen.

Property Value
dbo:abstract
  • In der Programmierung bedeutet Reflexion (englisch reflection) oder Introspektion, dass ein Programm seine eigene Struktur kennt und diese modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Frameworks oder Sprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise .NET, Java oder Smalltalk und viele interpretierende Sprachen. Eine wichtige Rolle spielt Reflexion im Zusammenhang mit typensicherer Programmierung, aber auch in Fragen der Persistenz (persistente Datenhaltung von Objekten und deren Beziehungen). Reflexion ermöglicht es bei objektorientierter Programmierung beispielsweise, zur Laufzeit Informationen über Klassen oder deren Instanzen abzufragen, beispielsweise in Objective-C (dort typischerweise Introspektion genannt). Bei einer Methode sind das unter anderem deren Sichtbarkeit, der Datentyp des Rückgabewertes oder der Typ der Übergabeparameter. Die Umsetzung der Abfragemöglichkeiten ist sprachspezifisch. Für die Realisierung der Reflexion ist das Speichern von Metainformation im Binärcode des Programms notwendig. Bei interpretierenden Programmiersprachen liegt zur Ausführungszeit der ursprüngliche Programmcode vor, was neben dem Zugriff auf die Strukturinformation (Methodendeklaration) auch den Zugriff auf die Implementierung ermöglicht. Beispiele dafür sind PHP, Lisp, Python, Smalltalk und Tcl. Aber auch Java und alle Sprachen für Verwendung mit dem .NET-Framework, wie z. B. C#, Object Pascal, VB.NET oder IronPython unterstützen die Reflexion, die das .NET Framework von sich aus zur Verfügung stellt. Alle Sprachen, die das .NET-Framework verwenden, müssen laut CLS (Common Language Specification) die entsprechenden Informationen als Metadaten speichern. Die Ausführungsgeschwindigkeit von Code per Reflexion ist für gewöhnlich langsamer als die von statischem Code. Dies liegt unter anderem an den Stringvergleichen der entsprechenden Namen der gewünschten Methoden, Eigenschaften usw. mit den Einträgen in den Metadaten. Jedoch bietet Reflexion eine sehr hohe Laufzeitflexibilität, da Code dynamisch aufgerufen werden kann, neue Instanzen erstellt oder sogar Typen und Objekte dynamisch neu strukturiert werden können. (de)
  • In der Programmierung bedeutet Reflexion (englisch reflection) oder Introspektion, dass ein Programm seine eigene Struktur kennt und diese modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Frameworks oder Sprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise .NET, Java oder Smalltalk und viele interpretierende Sprachen. Eine wichtige Rolle spielt Reflexion im Zusammenhang mit typensicherer Programmierung, aber auch in Fragen der Persistenz (persistente Datenhaltung von Objekten und deren Beziehungen). Reflexion ermöglicht es bei objektorientierter Programmierung beispielsweise, zur Laufzeit Informationen über Klassen oder deren Instanzen abzufragen, beispielsweise in Objective-C (dort typischerweise Introspektion genannt). Bei einer Methode sind das unter anderem deren Sichtbarkeit, der Datentyp des Rückgabewertes oder der Typ der Übergabeparameter. Die Umsetzung der Abfragemöglichkeiten ist sprachspezifisch. Für die Realisierung der Reflexion ist das Speichern von Metainformation im Binärcode des Programms notwendig. Bei interpretierenden Programmiersprachen liegt zur Ausführungszeit der ursprüngliche Programmcode vor, was neben dem Zugriff auf die Strukturinformation (Methodendeklaration) auch den Zugriff auf die Implementierung ermöglicht. Beispiele dafür sind PHP, Lisp, Python, Smalltalk und Tcl. Aber auch Java und alle Sprachen für Verwendung mit dem .NET-Framework, wie z. B. C#, Object Pascal, VB.NET oder IronPython unterstützen die Reflexion, die das .NET Framework von sich aus zur Verfügung stellt. Alle Sprachen, die das .NET-Framework verwenden, müssen laut CLS (Common Language Specification) die entsprechenden Informationen als Metadaten speichern. Die Ausführungsgeschwindigkeit von Code per Reflexion ist für gewöhnlich langsamer als die von statischem Code. Dies liegt unter anderem an den Stringvergleichen der entsprechenden Namen der gewünschten Methoden, Eigenschaften usw. mit den Einträgen in den Metadaten. Jedoch bietet Reflexion eine sehr hohe Laufzeitflexibilität, da Code dynamisch aufgerufen werden kann, neue Instanzen erstellt oder sogar Typen und Objekte dynamisch neu strukturiert werden können. (de)
dbo:wikiPageExternalLink
dbo:wikiPageID
  • 397787 (xsd:integer)
dbo:wikiPageRevisionID
  • 157279571 (xsd:integer)
dct:subject
rdfs:comment
  • In der Programmierung bedeutet Reflexion (englisch reflection) oder Introspektion, dass ein Programm seine eigene Struktur kennt und diese modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Frameworks oder Sprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise .NET, Java oder Smalltalk und viele interpretierende Sprachen. (de)
  • In der Programmierung bedeutet Reflexion (englisch reflection) oder Introspektion, dass ein Programm seine eigene Struktur kennt und diese modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Frameworks oder Sprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise .NET, Java oder Smalltalk und viele interpretierende Sprachen. (de)
rdfs:label
  • Reflexion (Programmierung) (de)
  • Reflexion (Programmierung) (de)
owl:sameAs
prov:wasDerivedFrom
foaf:isPrimaryTopicOf
is dbo:wikiPageDisambiguates of
is dbo:wikiPageRedirects of
is prop-de:paradigma of
is foaf:primaryTopic of