"weak typed"은 상당히 주관적인 용어입니다. 나는 이 및 "정적으로 입력 된" 대 "엄격한 타입"용어들이 단어를 더 객관적이고 더 정확하기 때문에 및 이, "동적으로 입력" "느슨한 타입"선호합니다.
내가 알 수있는 것에서 사람들은 일반적으로 "weakly typed"를 "이 언어의 유형 개념을 좋아하지 않는다"는 작은 의미의 용어로 사용합니다. 특정 언어에 대한 전문적 또는 기술적 논쟁을 제기 할 수없는 사람들을위한 일종의 논쟁 광고 hominem (또는 오히려, 인자 광고 linguam)입니다.
"엄격하게 형식화 된"이라는 용어도 약간 다른 해석을 사용합니다. 내 경험상 일반적으로 받아 들여지는 의미는 "유형이 일치하지 않으면 컴파일러에서 오류가 발생합니다"입니다. 또 다른 해석은 "암시 적 변환이 없거나 거의 없습니다"입니다. 이것에 기반하여 C++은 실제로 엄격하게 유형화 된 언어로 간주 될 수 있으며 대부분의 경우 해당 언어로 간주됩니다. 나는 C++에 관한 일반적인 합의가 이이라는 것이 엄격히 유형화 된 언어라고 말하고 싶습니다.
물론 우리는 질문에 대한보다 뉘앙스가있는 접근 방식을 시도 할 수 있으며 언어의 일부가 엄격하게 입력되고 (대다수의 경우) 나머지 부분은 느슨하게 입력됩니다 (암시 적 변환, 예 : 산술 변환 네 가지 유형의 명시 적 변환).
또한 몇 가지 언어에 익숙하지 않은 프로그래머, "엄격한"과 "정적", "느슨한"및 "느슨한"을 구분할 수 없거나 만들 수없는 초보자도 있습니다. "역동적 인"두 가지 - 그렇지 않으면 직각 - 개념 제한된 경험을 기반으로 (일반적으로 예를 들어, 인기있는 스크립트 언어에서 역 동성과 느슨한 타이핑의 상관 관계)를 기반으로합니다.
실제로 C++ (가상 호출) 부분은 유형 시스템이 부분적으로 동적이어야한다는 요구 사항을 부과하지만 표준의 다른 것들은 엄격해야합니다. 이것도 직각 개념이므로 문제는 아닙니다.
요약 : 아마도 언어가 이고 어떤 언어 나 다른 언어로 완벽하게 일 수는 있지만 특정 언어의 특정 속성이 지배적이라고 말할 수 있습니다. C++에서는 엄격함이 확실히 독점합니다.
혹시 하스켈에서 프로그래밍을한다면, C++가 실제로 약하게 입력 된 방법을 배우게됩니다! ;-) – Claudix
C++은 약하게 타입이 지정되어 있지 않지만 원하는 경우 타입 시스템을 파괴 할 수 있습니다. 그래서 완전히 강하게 타이핑되지는 않았다고 주장 할 수 있습니다. – juanchopanza
.. 그리고 당신이 허용한다면 (형벌은 까다 롭습니다) –