어셈블러와 인터프리터의 차이점

Anonim

어셈블러와 인터프리터

일반적으로 컴파일러는 한 언어로 작성된 프로그램을 읽는 컴퓨터 프로그램입니다. 원어를 호출하고 대상 언어라고하는 다른 언어로 번역합니다. 전통적으로 소스 언어는 C ++와 같은 고급 언어이며 대상 언어는 어셈블리 언어와 같은 저급 언어입니다. 그러나 어셈블리 언어로 작성된 소스 프로그램을 변환하여 컴퓨터 코드 또는 개체 코드로 변환 할 수있는 컴파일러가 있습니다. 어셈블러는 그러한 도구입니다. 반면에, 인터프리터는 프로그래밍 언어로 작성된 지침을 실행하는 도구입니다. 인터프리터는 상위 수준의 소스 코드를 직접 실행하거나 중간 코드로 변환 한 다음 해석하거나 미리 컴파일 된 코드를 실행할 수 있습니다.

어셈블러 란 무엇입니까?

어셈블러는 어셈블리 언어를 기계어로 변환하는 소프트웨어 또는 도구입니다. 따라서 어셈블러는 컴파일러 유형이며 소스 코드는 어셈블리 언어로 작성됩니다. 어셈블리는 사람이 읽을 수있는 언어이지만 일반적으로 해당 컴퓨터 코드와 일대일 관계가 있습니다. 따라서 어셈블러는 동형 (1 대 1 매핑) 변환을 수행한다고합니다. 고급 어셈블러는 프로그램 개발 및 디버깅 프로세스를 지원하는 추가 기능을 제공합니다. 예를 들어, 매크로 어셈블러라고하는 어셈블러 유형은 매크로 기능을 제공합니다.

통역사 란 무엇입니까?

인터프리터는 프로그래밍 지침을 실행하는 컴퓨터 프로그램 또는 도구입니다. 인터프리터는 소스 코드를 직접 실행하거나 소스를 중간 코드로 변환하여 직접 실행하거나 컴파일러가 생성 한 미리 컴파일 된 코드를 실행할 수 있습니다 (일부 인터프리터 시스템에는이 작업을위한 컴파일러가 포함됨). Perl, Python, MATLAB 및 Ruby 같은 언어는 중간 코드를 사용하는 프로그래밍 언어의 예입니다. UCSD Pascal은 사전 컴파일 된 코드를 해석합니다. Java, BASIC 및 Samlltalk와 같은 언어는 먼저 소스 코드를 바이트 코드라는 중간 코드로 컴파일 한 다음 해석합니다.

어셈블러와 인터프리터의 차이점은 무엇입니까?

어셈블러는 어셈블리 언어를 기계어로만 변환하는 특수 유형의 컴파일러로 간주 될 수 있습니다. 해석기는 일부 언어로 작성된 명령어를 실행하는 도구입니다. 해석기 시스템은 해석 전에 코드를 사전 컴파일하는 컴파일러를 포함 할 수 있지만 인터프리터는 특수 유형의 컴파일러라고 할 수 없습니다. 어셈블러는 객체 코드를 생성합니다.이 코드는 컴퓨터에서 실행하기 위해 링커 프로그램을 사용하여 링크해야하지만 대부분의 인터프리터는 프로그램 실행을 스스로 완료 할 수 있습니다.어셈블러는 일반적으로 일대일 번역을 수행하지만 대부분의 인터프리터에는 해당되지 않습니다. 어셈블리 언어는 기계 코드와 일대일 매핑을하기 때문에 퍼포먼스가 매우 중요한 경우 (예: 그래픽 엔진, 개인용 컴퓨터에 비해 하드웨어 리소스가 제한적인 임베디드 시스템의 경우)에 매우 효율적으로 실행되는 코드를 생성하는 데 어셈블러를 사용할 수 있습니다 전자 레인지, 세탁기 등). 반면에 높은 통용성이 필요할 때 통역사가 사용됩니다. 예를 들어, 적절한 자바 스크립트 (Java 바이트 코드)는 적절한 인터프리터 (JVM)를 사용하여 다른 플랫폼에서 실행될 수 있습니다.