language-icon Old Web
English
Sign In

Reflection (computer programming)

In computer science, reflection is the ability of a process to examine, introspect, and modify its own structure and behavior. In computer science, reflection is the ability of a process to examine, introspect, and modify its own structure and behavior. The earliest computers were programmed in their native assembly language, which were inherently reflective, as these original architectures could be programmed by defining instructions as data and using self-modifying code. As programming moved to compiled higher-level languages such as Algol, Cobol, and Fortran (but also Pascal and C and many other languages), this reflective ability largely disappeared until programming languages with reflection built into their type systems appeared. Brian Cantwell Smith's 1982 doctoral dissertation introduced the notion of computational reflection in procedural programming languages and the notion of the meta-circular interpreter as a component of 3-Lisp. Reflection helps programmers make generic software libraries to display data, process different formats of data, perform serialization or deserialization of data for communication, or do bundling and unbundling of data for containers or bursts of communication.

[ "Java annotation", "strictfp", "Java concurrency", "Programming language", "computational reflection", "meta object protocol" ]
Parent Topic
Child Topic
    No Parent Topic