에릭 리퍼 (Eric Lippert)의 기사 에서 헝가리 표기법은 어떻게 되나요? 그는 헝가리 표기법 (좋은 종류)의 목적이
스토리지 표현 정보 외에 시맨틱 정보를 포괄하도록 "유형"개념을 확장한다.
간단한 예로는 X 좌표를 나타내는 "x"를 나타내는 변수와 "y"를 나타내는 Y 좌표를 나타내는 변수를 접두사로 쓸 수 있습니다. xFoo + yBar
코드가 분명히 잘못 보입니다.
그러나 나는 Haskell의 타입 시스템에 대해서도 읽었으며, Haskell에서 실제 타입을 사용하여 동일한 의미를 달성 할 수있는 것 같습니다 (즉 "시맨틱 정보를 포함하도록 타입 개념을 확장"). 컴파일러가 확인할 을 . 따라서 위의 예 xFoo + yBar
에서 Haskell 에서는 프로그램이 올바르게 호환되지 않는 유형으로 선언되어 있기 때문에 프로그램을 올바르게 설계하면 실제로 컴파일에 실패합니다. 즉, Haskell의 형식 시스템이 헝가리어 표기법과 동등한 컴파일 타임 검사를 효과적으로 지원하는 것처럼 보입니다.
헝가리 표기법은 타입 시스템이 의미 정보를 인코딩 할 수없는 프로그래밍 언어에 대한 반창고 일 뿐입니 까? 또는 헝가리 표기법은 Haskell과 같은 정적 유형 시스템이 제공 할 수있는 것 이상의 것을 제공합니까?
(물론, 저는 하스켈을 예로 사용하고 있습니다. 비슷한 표현형 (풍부한? 강력한) 유형 시스템을 가진 다른 언어가 있지만 확실하지는 않습니다.)
명확하게하기 위해, 난 하지 에 변수 이름을 주석에 대해 얘기 데이터 유형, 오히려에 대한 정보를 의미 프로그램의 맥락에서 변수. 예를 들어, 변수는 정수 또는 float 또는 double 또는 long 또는 기타가 될 수 있지만 변수의 의미 는 인치 단위로 측정 된 상대적인 x 좌표 라는 의미 일 수 있습니다. 이것은 헝가리 표기법 (및 Haskell 유형)을 통한 인코딩에 대해 말하는 일종의 정보입니다.