Reflective programmingIn computer science, reflective programming or 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 languages, which were inherently reflective, as these original architectures could be programmed by defining instructions as data and using self-modifying code. 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.
Public library advocacyPublic library advocacy is support given to a public library for its financial and philosophical goals or needs. Most often this takes the form of monetary or material donations or campaigning to the institutions which oversee the library. Originally, library advocacy was centered on the library itself, but current trends show libraries positioning themselves to demonstrate they provide "economic value to the community.