Подтвердить что ты не робот

Почему отражение, называемое отражением, вместо интроспекции?

Каково происхождение термина "отражение"? Это похоже на самоанализ. Почему это не называется?

Introspection: взгляд внутрь; в частности, акт или процесс самоанализа.

Reflection:

  • акт отражения или состояние отражения.
  • изображение; представление; копия
  • фиксация мыслей о чем-то; тщательное рассмотрение
  • мысль, возникающая при рассмотрении или медитации.
4b9b3361

Ответ 1

Есть интересный ответ на статью французского wikipedia для Reflection (здесь)

Отражение можно разложить на две части:

  • introspection: программа может проверить себя.
  • intercession: программа может изменять свое состояние/значение.

Таким образом, отражение - это "более сильное" свойство, чем самоанализ. Вот почему вы говорите тип introspection для возможности знать типы во время выполнения (и их изменение - другое действие: преобразование/литье).

EDIT: на самом деле я только понял, что первый ответ говорил именно о том, что ^^. Время, чтобы отключить себя...

Ответ 2

Отражение происходит от идеи "самоанализа, самомодификации и саморепликации", отражающего одно "я" с целью изменения. В программировании вы используете отражение, чтобы изучить структуру самой программы в контексте ее использования, а не просто изучать ее. То, что вы получаете, представляет собой представление программы, которое вы можете использовать для ее изменения, а не данные, на которых она работает.

Более подробную информацию можно найти в статье wikipedia..

Ответ 3

Существует еще одна концепция, называемая интроспекцией типа, которая ссылается на способность определять тип объекта во время выполнения.

edit: Я понимаю, что ваш вопрос должен был быть языковым агностиком, но в Java рефлексия используется для определения того, какие члены имеют объект, тогда как самоанализ позволяет определить, какие свойства JavaBeans есть у объекта, поэтому интроспекция class находится в пакете java.beans. Я не уверен, что точная разница между этими словами будет на других языках, но

Ответ 4

Термин "отражение" относится к диссертации Бриана Кантвелла Смита 1982 года, которая может быть найдена в http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf

То, что стало называться отражением, часто является просто интроспекцией, то есть доступом к метаданным. Смит для размышлений включал причинное соединение из метаданных назад, и это, как правило, недостающий компонент. Один из способов вообразить отражение - это доступ к реализации, а не просто реализация какого-либо нового экземпляра вычисления, а вычисление доступа к его собственной реализации. Конечно, оригинальное отражение api в Java было неправильно названо, поскольку в этом смысле оно не отражалось.

Ответ 5

В .Net Я думаю, что термин Reflection очень уместен, потому что он не является самим типом, который рассматривается, это манифест кода, который является лишь описанием.

Ответ 6

Отражение, в смысле определений 3 и 4, может быть интроспективным. То есть, самоанализ - это отражение одного "я". Я считаю, что самоанализ - лучшее слово, которое нужно использовать для анализа кода, потому что слово более конкретное, но я не думаю, что отражение совершенно неуместно.