개발 참조 투명성은 무엇입니까? -techopedia에서 정의

참조 투명성은 무엇입니까? -techopedia에서 정의

차례:

Anonim

정의-참조 투명도 란 무엇입니까?

참조 투명성은 프로그램 또는 프로그래밍 언어, 특히 Haskell 및 R과 같은 기능적 프로그래밍 언어의 특정 부분의 속성입니다. 프로그램의 표현식은 해당 값으로 대체 될 수있는 경우 참조 적으로 투명하다고하며 결과 동작은 다음과 같습니다. 변경 전과 동일합니다. 이는 사용 된 입력이 참조인지 또는 참조가 가리키는 실제 값인지에 관계없이 프로그램의 동작이 변경되지 않음을 의미합니다.

Techopedia는 참조 투명성을 설명합니다

참조 투명성은 분석 철학에 뿌리를두고 있습니다. 분석 철학은 수학과 논리의 방법을 기반으로 자연 언어 구성, 논증 및 진술을 연구하고 컴퓨터 과학자들에 의해 채택되었지만 프로그래밍과는 거의 관련이없는 철학의 한 부분입니다.

개념은 간단합니다. "참조"라는 표현은 표현의 의미를 변경하지 않고 "참조 자"를 대체하는 데 사용할 수 있습니다. 예를 들어, "루크의 아버지는 악한 사람이다"라는 표현은 "루크의 아버지"는 스타 워즈의 "Darth Vader"를 언급합니다. 따라서 "Luke의 아버지"는 언제든지 "Darth Vader"로 대체 될 수 있고 그 의미는 변경되지 않기 때문에이 설명은 참조 적으로 투명합니다. 그러나 "루크의 아버지"가 "Darth Vader"로 바뀌면 "루크의 아버지"가 "Darth Vader"로 바뀌기 때문에 "청중은 누가 '아버지가 다스 베이더라는'제국의 역습 '까지 알지 못했다" 관객들은 다스 베이더가 실제로 다스 베이더라는 '제국의 역습'까지 몰랐습니다.

프로그래밍과 관련하여이 개념은 언뜻보기에 동일하지만 많은 철학자들은이 개념이 프로그래밍 언어로 구현되거나 잘 적용되지 않는다는 데 동의하지 않습니다. 그러나 일반적인 프로그래밍에서 이는 단순히 프로그램의 동작에 영향을주지 않고 표현식을 결과 값으로 대체 할 수 있음을 의미합니다. 예를 들어, plusOne (x) 함수는 단순히 x의 값에 1을 더하기 때문에 x = 5라는 것을 알면 plusOne을 사용할 때 동일한 동작을 생성하는 표현식에서 함수를 값 6으로 안전하게 바꿀 수 있습니다. (엑스). 그러나 표현식 내에 외부에서 제어되는 외부 변수가있는 경우 (예 : 함수 내의 Y가 외부에서 제어되는 plusY (x) 함수에서) 결과 동작이 동일하지 않을 수 있습니다.이 경우 이는 참조 적으로 투명하지 않습니다. 표현.

참조 투명성은 무엇입니까? -techopedia에서 정의