Language Classification
타입 언어는 정적 타입 언어와 동적 타입 언어로 나뉜다.
정적 타입 언어
변수의 타입이 컴파일 시간에 결정되어 고정되는 언어이다. 보통 컴파일 시간에 타입 검사를 진행한다. 정적 타입 언어의 예시로는 Java, C/C++, FORTRAN, Pascal, Scala가 있다. Java로 예를 들어 알아본다
String 타입으로 선언된 변수 name은 한번 타입이 선언되면 그 타입이 변할 수 없다.
String name; // 변수는 선언된 타입을 가짐
name = "john"; // 값은 타입을 가짐
name = 32; // 변수는 타입이 변결될 수 없음
동적 타입 언어
변수의 타입이 저장되는 값에 따라 실행 중에 바뀔 수 있는 언어로, 보통 실행 시간에 타입 검사를 한다. 동적 타입 언어의 예시로는 Perl, Python, Scheme, JavaScript가 있다.
JavaScript로 예를 들어 알아본다.
변수 name은 선언된 타입이 없고 대입된 값에 따라 변수의 타입이 변경된다.
var name; // 변수는 선언된 타입이 없음
name = "john"; // 같은 타입을 가짐
name = 32; // 변수는 타입이 변경될 수 있음
타입 규칙
언어를 설계할 때 프로그램 구성요소의 타입 사용 규칙도 정한다. 타입 규칙의 엄격성에 따라 강한/약한 타입 언어로 분류한다.
강한 타입 언어
엄격한 타입 규칙을 적용하여 (모든) 타입 오류를 찾아 낼 수 있는 언어이다. 예를 들어 Java, C#, Python이 있다.
**프로그램 실행 전에 타입 검사를 엄격하게 하면 할수록 실행시간 타입 오류를 보다 확실하게 예방할 수 있다.**
약한 타입 언어
그렇지 않은 느슨한 타입 규칙을 적용한 언어이다. 예를 들어 C/C++, PHP, Perl, JavaScript가 있다.
언어 분류 예시
강한 정적 타입 언어 Java
Java는 변수의 타입이 컴파일 시간에 결정되는 정적 타입 언어이면서, 강한 타입 언어이다.
약한 정적 타입 언어 C
C언어는 변수의 타입이 컴파일 시간에 결정되는 정적 타입 언어이면서, 약한 타입 언어이다.
강한 동적 타입 언어 Python
Python은 변수의 타입이 저장되는 값에 따라 실행중에 바뀔 수 있는 동적 타입 언어이면서, 강한 타입 언어이다.
약한 동적 타입 언어 JavaScript
JavaScrpit는 변수의 타입이 저장되는 값에 따라 실행 중에 바뀔 수 있는 동적 타입 언어이면서, 약한 타입언어이다.
'Dev > Language' 카테고리의 다른 글
[Language] Type Conversion에 대한 개념 정리 (0) | 2022.01.05 |
---|---|
[Language] Data Type(자료형)에 대한 개념 정리 (0) | 2022.01.05 |