중간 표현에서 기계 코드로
입력의 대상 정보를 바탕으로 코드를 생성하며 아키텍처와 CPU 설정을 지정할 수도 있다. 어셈블리 출력은 이후 어셈블러와 링커로 처리할 수 있다. 소스 언어의 문법을 해석하는 프런트엔드와는 담당하는 단계가 다르다.
대상 설정의 영향
같은 입력도 CPU 종류와 지원 명령 집합, 최적화 수준에 따라 다른 명령으로 변환될 수 있다. 실제 배포 대상이 제공하지 않는 기능을 켜면 생성된 코드가 맞지 않을 수 있다. 코드 비교 시에는 입력뿐 아니라 대상 설정도 동일하게 유지한다.
출력과 검사
어셈블리와 오브젝트 등 출력 종류를 선택할 수 있으나 모든 타깃이 모든 종류를 지원하는 것은 아니다. 생성된 텍스트를 검사하는 테스트와 실제 실행 검사는 서로 다른 문제를 확인한다. 코드 생성 오류를 조사할 때는 입력을 축소해 재현 조건을 정리한다.