[language-agnostic] 성찰이 아니라 성찰을 성찰이라고 부르는 이유는 무엇입니까?

성찰이라는 용어의 기원은 무엇입니까? 자기 성찰처럼 보입니다. 왜 그렇게 부르지 않습니까?

자기 성찰 : 내부를 바라 보는 것; 구체적으로, 자기 검토의 행위 또는 과정.

반사 :

  1. 반영하는 행위 또는 반영된 상태.
  2. 이미지; 대표; 짝
  3. 무언가에 대한 생각의 고정; 신중한 고려
  4. 고려 또는 명상에서 발생하는 생각.



답변

Reflection에 대한 프랑스어 wikipedia 기사에 흥미로운 답변이 있습니다 ( 여기 )

반사는 두 부분으로 분해 될 수 있습니다.

  • introspection : 프로그램은 자신을 검사 할 수 있습니다.
  • 중보기도 : 프로그램은 상태 / 의미를 수정할 수 있습니다.

따라서 성찰은 성찰보다 ‘강한’속성입니다. 그렇기 때문에 런타임에 유형을 알 수있는 능력에 대해 유형 검사 라고 말한 것입니다 (그리고이를 변경하는 것은 변환 / 캐스팅이라는 또 다른 작업입니다).

편집 : 실제로 나는 첫 번째 대답이 정확히 말하고 있다는 것을 깨달았습니다 ^^. 나 자신을 뽑을 시간 …


답변

성찰은 변화의 목적을 위해 자기 자신을 성찰하는 “자기 검토, 자기 수정 및 자기 복제”의 아이디어에서 비롯됩니다. 프로그래밍에서 리플렉션을 사용하여 프로그램을 검사하는 대신 사용하는 맥락에서 프로그램 자체의 구조를 검사합니다. 돌아 오는 것은 작동하는 데이터가 아니라 수정하는 데 사용할 수있는 프로그램의 표현입니다.

더 많은 정보는 wikipedia 기사에서 찾을 수 있습니다 . .


답변

런타임에 객체의 유형을 결정하는 기능을 나타내는 유형 검사라는 또 다른 개념이 있습니다.

편집 : 귀하의 질문은 언어에 구애받지 않지만 Java에서는 리플렉션을 사용하여 객체가 어떤 멤버를 보유하고 있는지 식별하는 반면, 인트로 스펙 션을 사용하면 객체가 가진 JavaBeans 속성을 식별 할 수 있습니다. 이것이 인트로 스펙 션 클래스가있는 이유입니다. java.beans 패키지. 다른 언어에서는 용어의 정확한 차이가 뭔지는 모르겠지만


답변

리플렉션이라는 용어는 http://publications.csail.mit.edu/lcs/pubs/pdf/MIT-LCS-TR-272.pdf 에서 찾을 수있는 Brian Cantwell Smith의 1982 년 PHD 논문에서 유래되었습니다 .

리플렉션이라고 불리는 것은 종종 단순히 자기 성찰, 즉 메타 데이터에 대한 접근입니다. 반영에 대한 Smith의 요구 사항에는 메타 데이터 의 인과 관계가 포함되어 있으며 이는 일반적으로 누락 된 구성 요소입니다. 반영을 상상하는 한 가지 방법은 구현에 대한 액세스이며, 단순히 계산의 일부 새 인스턴스의 구현이 아니라 자체 구현에 대한 계산의 액세스 입니다. 확실히 Java의 원래 리플렉션 API는 이러한 의미에서 리플렉션이 아니기 때문에 이름이 잘못되었습니다.


답변

.Net에서 Reflection이라는 용어는 검사되는 유형 자체가 아니라 설명 일 뿐인 코드의 매니페스트이기 때문에 매우 적절하다고 생각합니다.


답변

정의 3과 4의 의미에서 성찰은 내성적 일 수 있습니다. 즉, 성찰은 자기 자신에 대한 성찰이다. 자기 성찰은 그 단어가 더 구체적이기 때문에 코드 자체를 분석하는 행위에 사용하기에 더 좋은 단어라고 생각하지만, 성찰이 완전히 부적절하다고 생각하지는 않습니다.


답변