프로그래밍 언어는 보통 정적타입의 언어와 동적타입의 언어로 나뉘어진다.
이 두가지를 비교해서 정리하기 전에 먼저 언어에서의 타입은 무엇을 뜻하는지에 대해 알아보자.
프로그래밍 언어에서 타입은 곧 자료형이라는 말이다.
int형, short형, float형, bool형, 객체 등으로 나뉘어진 변수의 종류를 말한다.
타입은 그 변수가 어떠한 값을 가질 수 있는지와 그 자료에 어떤 연산을 할 수 있는지를 제한한다. 변수 선언시 항상 앞에 붙여서 사용한다.
컴파일시 변수 타입이 결정되는 언어이다.
정적타입 언어는 작성자가 소스 코드를 보고 변수 타입을 직접 작성하는 언어이다. 정적타입 언어에는 C, C#, C++, Java 등의 언어가 있고, 이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 한다. 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다.
런타임시 변수의 타입이 결정되는 언어이다.
동적타입 언어는 코드를 실행할 때 알아서 변수 타입을 판단해주는 언어이다.
동적타입 언어에는 요즘 많이 쓰이는 JavaScript, Ruby, Python 등의 언어가 있다. 이 언어들은 컴파일 시 자료형을 정하는 것이 아니고 실행 시에 작성자가 직접 결정하여 작성한다.