어셈블러와 컴파일러의 차이점

Anonim

어셈블러와 컴파일러

일반적으로 컴파일러는 한 언어로 작성된 프로그램을 읽는 컴퓨터 프로그램입니다. 원어를 호출하고 대상 언어라고하는 다른 언어로 번역합니다. 전통적으로 소스 언어는 C ++와 같은 고급 언어 였고 대상 언어는 어셈블리 언어와 같은 저급 언어였습니다. 그러나 어셈블리 언어로 작성된 소스 프로그램을 변환하여 컴퓨터 코드 또는 개체 코드로 변환 할 수있는 컴파일러가 있습니다. 어셈블러는 그러한 도구입니다. 따라서 어셈블러와 컴파일러 모두 궁극적으로 컴퓨터에서 직접 실행할 수있는 코드를 생성합니다.

컴파일러 란 무엇입니까?

컴파일러는 소스 언어라고하는 한 언어로 작성된 프로그램을 읽고 대상 언어라고하는 다른 언어로 번역하는 컴퓨터 프로그램입니다. 대개 소스 언어는 고급 언어이고 대상 언어는 저급 언어입니다. 그래서, 일반적으로 컴파일러는 한 언어에서 다른 언어로 번역하는 번역자로 볼 수 있습니다. 또한 컴파일러는 코드를 최적화합니다. 일반적인 컴파일러는 몇 가지 주요 구성 요소로 이루어져 있습니다. 첫 번째 구성 요소는 스캐너 (어휘 분석기라고도 함)입니다. 스캐너는 프로그램을 읽고이를 토큰 문자열로 변환합니다. 두 번째 구성 요소는 파서입니다. 토큰 문자열을 구문 분석 트리 (또는 구문 트리)로 변환하여 구문 구조를 캡처합니다. 다음 구성 요소는 구문 구조의 의미를 해석하는 의미 론적 루틴입니다. 코드 최적화 및 최종 코드 생성은이 작업을 수행합니다.

어셈블러 란 무엇입니까?

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

-> ->

어셈블러와 컴파일러의 차이점은 무엇입니까?

컴파일러는 한 언어로 작성된 프로그램을 읽고 다른 언어로 번역하는 컴퓨터 프로그램이며 어셈블러는 어셈블리 언어 만 기계어로 번역하는 특수 유형의 컴파일러로 간주 될 수 있습니다. 컴파일러는 대개 상위 레벨 언어에서 기계 실행 가능 코드를 직접 생성하지만 어셈블러는 기계에서 실행하기 위해 링커 프로그램을 사용하여 링크해야하는 객체 코드를 생성합니다.어셈블리 언어는 기계 코드와 일대일 매핑을하기 때문에 퍼포먼스가 매우 중요한 경우 (예: 그래픽 엔진, 개인용 컴퓨터에 비해 하드웨어 리소스가 제한적인 임베디드 시스템의 경우)에 매우 효율적으로 실행되는 코드를 생성하는 데 어셈블러를 사용할 수 있습니다 전자 레인지, 세탁기 등).