중간 표현(intermediate representation, IR)은 소스 코드를 표현하기 위해 컴파일러가상 머신에 의해 내부적으로 사용되는 데이터 구조 또는 코드이다. 중간 표현은 최적화, 변환 등 추가적인 처리를 위해 설계되어 있다.[1] 훌륭한 중간 표현은 "정확"해야 하는데, 즉 정보의 소실 없이 소스 코드를 표현할 수 있어야 하며[2] 특정 소스나 대상 언어와는 독립적이어야 한다.[1] 중간 표현은 여러 형태 중 하나를 취할 수 있다: 인 메모리 데이터 구조로서, 또는 프로그램이 읽을 수 있는 특수 튜플이나 스택 기반 코드로서.[3] 후자의 경우 중간 언어로도 부른다.

각주 편집

  1. Walker, David. “CS320: Compilers: Intermediate Representation” (Lecture slides). 2016년 2월 12일에 확인함. 
  2. Chow, Fred (2013년 11월 22일). “The Challenge of Cross-language Interoperability”. 《ACM Queue》 11 (10). 2016년 2월 12일에 확인함. 
  3. Toal, Ray. “Intermediate Representations”. 2016년 2월 12일에 확인함. 

외부 링크 편집