정적으로 입력 된 언어로만 존재합니까? 그리고 언어가 강하게 입력되지 않은 경우에만 존재합니까 (예 : 자바에 자바가 있습니까?)? 또한 컴파일 언어로 가정 할 때 컴파일 단계에 어디에 속합니까?유형 추정기 란 무엇입니까?
일반적으로 유형이 언어 사양에 따라 모호한 지 구현에 맡기지 않은 규칙이 있습니까?
정적으로 입력 된 언어로만 존재합니까? 그리고 언어가 강하게 입력되지 않은 경우에만 존재합니까 (예 : 자바에 자바가 있습니까?)? 또한 컴파일 언어로 가정 할 때 컴파일 단계에 어디에 속합니까?유형 추정기 란 무엇입니까?
일반적으로 유형이 언어 사양에 따라 모호한 지 구현에 맡기지 않은 규칙이 있습니까?
유형 추론은 일부 고정 유형 언어의 기능입니다. 컴파일러에서는 형식 주석이없는 엔터티에 형식을 할당하기 위해이 작업을 수행합니다. 컴파일러는 프로그래머를 대신하여 정적 유형 정보를 효과적으로 '채운다'.
형식 유추는 많은 암시 적 강제 변환 및 모호성과 언어에 더 제대로 작동하는 경향이있다, 그래서 대부분의 타입 유추 된 언어 등, 과부하, 강제 변환의 방법으로 약간의 기능적인 언어입니다
형식 유추가의 일부입니다 예를 들어, F # spec은 형식 추론 알고리즘과 규칙에 대해 자세히 설명합니다.이 규칙은 '합법적 인 프로그램'을 효과적으로 결정합니다.
대부분의 언어는 형식 유추의 일부 제한된 형식 (예 : C#의 'var')을 지원하지만 대부분의 사람들은 대다수 유형이 유추되는 언어를 참조하기 위해 '형식 유추'를 사용하기 때문에 명시적인 것보다 (예 : F #에서, 지역 변수뿐만 아니라 함수 및 메소드 시그니처가 일반적으로 추론됩니다. 'var'은 지역 변수의 추론을 허용하지만 메소드 선언은 전체 유형 정보를 필요로합니다).
형식 유추 기가는 컨텍스트의 변수 유형을 결정합니다. 그렇게하기 위해 강력한 타이핑에 의존합니다. 예를 들어, 함수형 언어는 매우 강력하고 정적으로 형식화되지만 형식 유추에만 의존합니다.
C# 및 VB.Net은 형식 유추를 사용하는 정적 형식 언어의 다른 예입니다.이 형식은 제네릭을 사용할 수 있도록 제공하며 LINQ의 쿼리, 특히 투영을 지원하는 데 필요합니다.
동적 언어는 유형을 유추하지 않으며 런타임에 검색됩니다.
유형 추론은 일부 정적 언어에서 발견되는 약간의 절충안입니다. 컴파일 타임에 일 때 유형을 으로 유추 할 수 있으면 유형을 지정하지 않고 변수를 선언 할 수 있습니다. 잠재적 인 타이핑의 융통성을 제공하지는 않지만 유형 안전성을 얻고 많은 양을 쓸 필요가 없습니다.
the Wikipedia article을 참조하십시오.
유형 유추 기는 형식 유추 알고리즘을 사용하여 유형을 정적으로 추론하는 모든 것입니다. 따라서 정적 언어의 기능 만이 아닙니다.
동적 언어 또는 안전하지 않거나 암시적인 형식 변환이있는 정적 분석 도구를 작성할 수 있으며 형식 유추가 작업의 주요 부분이됩니다. 그러나 안전하지 않거나 동적 인 유형의 시스템이나 암시 적 변환을 포함하는 언어에 대한 유형 유추는 일반적인 경우 프로그램의 유형 안전성을 증명하는 데 사용할 수 없습니다.이러한 형식 유추으로
이 사용됩니다