| dbpprop:abstract
|
- In computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior. The programming paradigm driven by reflection is called reflective programming. It is a particular kind of metaprogramming. In many computer architectures, program instructions are stored as data - hence the distinction between instruction and data is merely a matter of how the information is treated by the computer and programming language. Normally, 'instructions' are 'executed' and 'data' is 'processed'; however, in some languages, programs can also treat instructions as data and therefore make reflective modifications. Reflection is most commonly used in high-level virtual machine programming languages like Smalltalk and scripting languages, and less commonly used in manifestly typed and/or statically typed programming languages such as Java and C.
- In der Programmierung bedeutet Reflexion (engl. reflection) bzw. Introspektion, dass ein Programm seine eigene Struktur kennt und diese, wenn nötig, modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist dazu in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern. Reflexion wird häufig von Hochsprachen unterstützt, die in einer virtuellen Maschine ausgeführt werden, beispielsweise Java oder Smalltalk. 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. 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 und Python. Aber auch Java und alle Sprachen für Verwendung mit dem . NET-Framework, wie z. B. C#, 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 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.
- En informàtica, la reflexió (també anomenada pel seu mot anglès, reflection) és la capacitat d'un programa d'examinar, i eventualment modificar, les seves estructures internes d'alt nivell (per exemple els seus objectes) durant la seva execució.
- En informática, reflexión (o reflexión computacional) es la capacidad que tiene un programa de ordenador para observar y opcionalmente modificar su estructura de alto nivel. Normalmente, la reflexión es dinámica o en tiempo de ejecución, aunque algunos lenguajes de programación permiten reflexión estática o en tiempo de compilación. Es más común en lenguajes de programación de alto nivel ejecutándose sobre una máquina virtual, como Smalltalk ó Java, y menos común en lenguajes de programación de bajo nivel como C. En un sentido más amplio, la reflexión es una actividad computacional que razona sobre su propia computación. Cuando el código fuente de un programa se compila, normalmente se pierde la información sobre la estructura del programa conforme se genera el código de bajo nivel. Si un sistema permite reflexión, se preserva la estructura como metadatos en el código generado. Dependiendo de la implementación, el código con reflexión tiende a ser más lento que el que no lo tiene. En los lenguajes que no distiguen entre tiempo de ejecución y tiempo de compilación (como las distintas variantes de Lisp), no hay diferencia entre compilación o interpretación de código y reflexión.
- En programmation informatique, la réflexion est la capacité d'un programme à examiner, et éventuellement à modifier, ses structures internes de haut niveau (par exemple ses objets) lors de son exécution. On appelle réflexivité le fait pour un langage de programmation de permettre l'écriture de tels programmes. Un tel langage de programmation est dit réflexif.
- In informatica, la riflessione o reflection è la capacità di un programma di eseguire elaborazioni che hanno per oggetto il programma stesso, e in particolare la struttura del suo codice sorgente. Un programma Java in esecuzione, per esempio, può esaminare le classi da cui è costituito, i nomi e le signature dei loro metodi, e così via. Il supporto per la reflection costituisce una delle più notevoli innovazioni di Java, che deriva da una tradizione di linguaggi in cui tutte le informazioni di tipo vengono consumate dal compilatore, al punto che il programma in esecuzione non ha neppure nozione di come la propria memoria sia suddivisa in variabili. La riflessione in generale può anche consentire a un programma di modificare dinamicamente la propria struttura. Se il package Java "java. lang. reflect" è principalmente dedicato agli strumenti che consentono a un programma di estrarre informazioni sulla propria struttura, altri meccanismi del linguaggio (in particolare il classloading) consentono anche di esercitare un certo controllo su tale struttura. Per esempio, in Java è tecnicamente possibile costruire applicazioni che sono in grado di applicare a sé stesse pacchetti di aggiornamento durante l'esecuzione, sostituendo dinamicamente parti del proprio codice.
- 情報工学においてリフレクション (reflection) とは、プログラムの実行過程でプログラム自身の構造を読み取ったり書き換えたりする技術のことである。通常リフレクションというと動的(実行時)リフレクションのことを指すが、静的(コンパイル時)リフレクションをサポートするプログラミング言語もある。リフレクションはSmalltalk、Java、. NET Frameworkのような仮想機械やインタプリタ上で実行されることを想定した言語でサポートされることが多く、C言語のような機械語として出力されることを想定した言語でサポートされることは少ない。 一般に、リフレクションとはオブジェクトがそれ自身の構造や計算上の意味を取得することを可能にするものである。リフレクションによるプログラミングパラダイムをリフレクティブプログラミング (reflective programming) という。 通常、プログラムのソースコードがコンパイルされると、プログラムの構造などの情報は低レベルコード(アセンブリ言語など)に変換される過程で失われてしまう。リフレクションをサポートする場合、そのような情報は生成されるコードの中にメタデータとして保存される。 LISPやForthなど実行時とコンパイル時の区別のない言語では、コードの解釈とリフレクションとの間に違いはない。
- In de informatica is reflectie het proces waarbij een computerprogramma zijn eigen structuur en gedrag kan observeren en aanpassen. Programmeren via reflectie wordt reflectief programmeren genoemd. Op het laagste niveau kun je machinecode op een reflectieve manier behandelen omdat het onderscheid tussen instructies en data een kwestie is van hoe de computer deze gebruikt. Normaal worden instructies uitgevoerd en wordt data bewerkt, maar een programma kan instructies ook als data beschouwen en zo reflectieve aanpassingen maken. Reflectie komt het meeste voor in hogere programmeertalen zoals Smalltalk en in mindere mate in lagere programmeertalen.
- W informatyce mechanizm refleksji to proces, dzięki któremu program komputerowy może być modyfikowany w trakcie działania w sposób zależny od własnego kodu oraz od zachowania w trakcie wykonania. Paradygmat programowania ściśle związany z mechanizmem refleksji to programowanie refleksyjne. Refleksja pozwala w łatwy sposób zarządzać kodem tak, jakby był on danymi. Używa się jej najczęściej do zmieniania standardowego zachowania już zdefiniowanych metod lub funkcji, a także do tworzenia własnych konstrukcji semantycznych modyfikujących język. Z drugiej strony kod wykorzystujący refleksję jest mniej czytelny i nie pozwala na sprawdzenie poprawności składniowej i semantycznej w trakcie kompilacji (niewygodne śledzenie błędów). Mechanizm ten jest częściej spotykany w językach wysokiego poziomu, zwykle opartych o maszynę wirtualną.
- Em ciência da computação, reflexão computacional (ou somente reflexão) é a capacidade de um programa observar ou até mesmo modificar sua estrutura ou comportamento. Tipicamente, o termo se refere à reflexão dinâmica, embora muitas linguagens suportem reflexão estática. A reflexão é mais comum em linguagens alto nível, como SmallTalk e menos comum em linguagens de mais baixo nível como o C. Geralmente, reflexão é a atividade numa computação que permite que um objeto obtenha informações sobre sua estrutura e sobre os motivos de sua computação. O paradigma de programação por trás dessa capacidade é chamado programação reflexiva. Quando o código fonte de um programa é compilado, a informação sobre sua estrutura normalmente se perde quando o código de baixo nível é produzido. Já num sistema que suporta reflexão, essa informação é preservada como metadados, anexados ao código gerado.
- В информатике, отражение или рефлексия означает процесс, во время которого программа может отслеживать и модифицировать собственную структуру и поведение. Парадигма программирования, положенная в основу отражения, называется рефлексивным программированием. Это один из видов метапрограммирования. В большинстве современных компьютерных архитектур программные инструкции хранятся как данные, отсюда и разница между инструкциями и данными, заключающаяся лишь в том, как информация обрабатывается компьютером и языками программирования. Обычно, 'инструкции' 'выполняются', а 'данные' 'обрабатываются'. Однако, в некоторых языках программы могут обрабатывать и инструкции как данные и, таким образом, производить соответствующие (рефлексивные) модификации. Рефлексия в основном используется в высокоуровневых языках программирования, использующих виртуальные машины, как например, Smalltalk и скриптовые языки, и гораздо менее используются в языках программирования с объявляемыми типами и/или статическими типами, таких как Java и Си.
- 在计算机科学中,反射是指一种特定类型的计算机程序能够在运行时以一种依赖于它的代码的抽象特性和它的运行时行为的方式被更改的特性。用比喻來說,那種程式能夠“觀察”並且修改自己的行為。
|
| rdfs:comment
|
- In computer science, reflection is the process by which a computer program can observe and modify its own structure and behavior. The programming paradigm driven by reflection is called reflective programming. It is a particular kind of metaprogramming. In many computer architectures, program instructions are stored as data - hence the distinction between instruction and data is merely a matter of how the information is treated by the computer and programming language.
- In der Programmierung bedeutet Reflexion (engl. reflection) bzw. Introspektion, dass ein Programm seine eigene Struktur kennt und diese, wenn nötig, modifizieren kann. Auf unterster Ebene kann Maschinencode im RAM, der von einem Mikroprozessor ausgeführt wird, als reflexiv bezeichnet werden. Ein solches Programm ist dazu in der Lage, seine Anweisungen wie Daten zu behandeln und kann deshalb seine Struktur analysieren und verändern.
- En informàtica, la reflexió (també anomenada pel seu mot anglès, reflection) és la capacitat d'un programa d'examinar, i eventualment modificar, les seves estructures internes d'alt nivell (per exemple els seus objectes) durant la seva execució.
- En informática, reflexión (o reflexión computacional) es la capacidad que tiene un programa de ordenador para observar y opcionalmente modificar su estructura de alto nivel. Normalmente, la reflexión es dinámica o en tiempo de ejecución, aunque algunos lenguajes de programación permiten reflexión estática o en tiempo de compilación.
- En programmation informatique, la réflexion est la capacité d'un programme à examiner, et éventuellement à modifier, ses structures internes de haut niveau (par exemple ses objets) lors de son exécution. On appelle réflexivité le fait pour un langage de programmation de permettre l'écriture de tels programmes. Un tel langage de programmation est dit réflexif.
- In informatica, la riflessione o reflection è la capacità di un programma di eseguire elaborazioni che hanno per oggetto il programma stesso, e in particolare la struttura del suo codice sorgente. Un programma Java in esecuzione, per esempio, può esaminare le classi da cui è costituito, i nomi e le signature dei loro metodi, e così via.
- 情報工学においてリフレクション (reflection) とは、プログラムの実行過程でプログラム自身の構造を読み取ったり書き換えたりする技術のことである。通常リフレクションというと動的(実行時)リフレクションのことを指すが、静的(コンパイル時)リフレクションをサポートするプログラミング言語もある。リフレクションはSmalltalk、Java、.
- In de informatica is reflectie het proces waarbij een computerprogramma zijn eigen structuur en gedrag kan observeren en aanpassen. Programmeren via reflectie wordt reflectief programmeren genoemd. Op het laagste niveau kun je machinecode op een reflectieve manier behandelen omdat het onderscheid tussen instructies en data een kwestie is van hoe de computer deze gebruikt.
- W informatyce mechanizm refleksji to proces, dzięki któremu program komputerowy może być modyfikowany w trakcie działania w sposób zależny od własnego kodu oraz od zachowania w trakcie wykonania. Paradygmat programowania ściśle związany z mechanizmem refleksji to programowanie refleksyjne. Refleksja pozwala w łatwy sposób zarządzać kodem tak, jakby był on danymi.
- Em ciência da computação, reflexão computacional (ou somente reflexão) é a capacidade de um programa observar ou até mesmo modificar sua estrutura ou comportamento. Tipicamente, o termo se refere à reflexão dinâmica, embora muitas linguagens suportem reflexão estática. A reflexão é mais comum em linguagens alto nível, como SmallTalk e menos comum em linguagens de mais baixo nível como o C.
- В информатике, отражение или рефлексия означает процесс, во время которого программа может отслеживать и модифицировать собственную структуру и поведение. Парадигма программирования, положенная в основу отражения, называется рефлексивным программированием.
- 在计算机科学中,反射是指一种特定类型的计算机程序能够在运行时以一种依赖于它的代码的抽象特性和它的运行时行为的方式被更改的特性。用比喻來說,那種程式能夠“觀察”並且修改自己的行為。
|