이러 한 특징 을 제공 하 는 임의 의 소프트웨어 를 구현 하 거나 사용 할 수 있 는 하나 이상 의 프로그램 은 바람직 하 게 는 컴퓨터 시스템 과 통신 할 수 있 는 하이 레벨 프로시 듀얼 또는 객체 지향 프로그래밍 언어 로 구현 된다 . 그러나 , 프로그램 ( 들 ) 은 원 하 는 경우 어셈블리 또는 기계어 로 구현 될 수 있 다 . 임의 의 경우 에 있 어서 , 언어 는 컴파일 링 되 거나 인터 프리 팅 된 언어 일 수 있 고 하드웨어 구현 과 결합 될 수 있 다 .