Описание тега introspection
Способность некоторых объектно-ориентированных языков программирования определять тип объекта во время выполнения.
Некоторые языки ООП, обеспечивающие способность к самоанализу типов: Ruby, Objective-C, C++, Java, PHP, Perl, Python, Object Pascal, Actionscript (as3)
Самоанализ выполняется по-разному, в зависимости от формы программы: проверка исходного кода или скомпилированного байт-кода называется интроспекцией во время компиляции, а проверка свойств выполняемого кода - интроспекцией во время выполнения.
Например, Java поддерживает оба типа интроспекции: пользователи интроспекции во время выполнения обычно выполняют ее посредством отражения, тогда как интроспекция во время компиляции может быть реализована с помощью инструментов манипулирования байт-кодом или обработки аннотаций.