- code generator: **컴파일러의 백엔드 단계 중 하나**로, 중간 표현(IR, Intermediate Representation)을 받아서 **타겟 아키텍처의 어셈블리 코드(또는 머신 코드)를 emit하는 컴포넌트**
- 이 부분은 code generator가 생성할 수 있는 instruction이 제한되어 있어서, 그 subset만 assembler에 전달되어 실제로 assembler가 사용하는 instruction 전부가 테스트되기 어려움.
- 예를 들어 intel CPU 아키텍쳐 매뉴얼에는 정말 많은 명령어가 정의되어 있는데, 컴파일러의 backend에서 그 모든 명령어를 전부 사용하지 않을 수 있고 (특히 최적화 옵션 등 여러 이유로 인해) 그러면 생성되지 않은 명령어들에 대한 assembling은 테스트 불가능.