프로그램이 실행되는 하드웨어, 소프트웨어 환경
플랫폼 의존성 때문에 프로그램을 만들 때는 플랫폼의 개수만큼 만들어줘야 함
사람들이 사용하는 플랫폼의 갯수가 10개면 프로그램10개를 이런식으로 만들어줘야 함
운영체제를 만들 때는 CPU 즉, 하드웨어에 고려에서 만들어야하며 애플리케이션은 운영체제를 고려해야함
여러 OS,CPU 등에서 동일하게 실행할 수 있는 환경
컴퓨터마다 프로그램의 실행방식이 다르기 때문에 항상 여러버전의 프로그램을 만들어 사용해야 했음
이 문제를 해결하기 위해 개발자들이 가상의 컴퓨터를 만듦
다양한 컴퓨터 위에 이 가상의 컴퓨터를 켜놓으면 동일한 컴퓨터에서 실행하는 것처럼 느껴짐
즉 애플리케이션 개발자는 가상의 컴퓨터만 생각하고 개발하면 됨
ex) java -> JavaVirtualMachine(가상머신)