更普遍情形，从而更大程度地避免硬编码（即把代码的细节“写死”，缺乏灵活性）的代码风格。反射也是元编程的一个关键策略。
历史背景.早期计算机的原生汇编语言本质上就具有反射特性。因为这些最初架构可以通过定义指令作为数据及使用自修改代码来编程，实现反射功能是很平常的。编程发展到使用编译型高级语言如Algol、Cobol、Fortran和包括Pascal和C在内的很多其他语言时，自修改代码等实践很大程度上消失了，直到将反射特性内建入类型系统的高级编程语言出现后才再次提供了反射功能。Li