![]() Reflection can be used for observing and modifying program execution at runtime. Languages without reflection such as C are required to use auxiliary compilers for tasks like Abstract Syntax Notation to produce code for serialization and bundling. For example, it assists languages such as Java to operate well in networks by enabling libraries for serialization, bundling and varying data formats. Reflection makes a language more suited to network-oriented code. 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.Įffective use of reflection almost always requires a plan: A design framework, encoding description, object library, a map of a database or entity relations. īrian 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. As the bulk of programming moved to higher-level compiled languages such as Algol, Cobol, Fortran, Pascal, and C, this reflective ability largely disappeared until new programming languages with reflection built into their type systems appeared. The earliest computers were programmed in their native assembly languages, which were inherently reflective, as these original architectures could be programmed by defining instructions as data and using self-modifying code. In computer science, reflective programming or reflection is the ability of a process to examine, introspect, and modify its own structure and behavior. Not to be confused with Reflection (computer graphics).
0 Comments
Leave a Reply. |