리타겟팅
Retargeting소프트웨어 엔지니어링에서 리타겟팅은 둘 이상의 컴퓨팅 플랫폼에 대한 코드를 생성하도록 특별히 설계된 소프트웨어 개발 도구의 속성이다.
컴파일러스
리타겟형 컴파일러는 서로 다른 CPU 명령 집합 아키텍처에 대한 코드를 생성하기 위해 상대적으로 쉽게 수정할 수 있도록 설계된 컴파일러다.이 사상의 역사는 UNCOL이 보편적인 중간 언어로 제안되었던 1950년대로 거슬러 올라간다.파스칼 P-컴파일러는 초기에 널리 사용되는 리타겟형 컴파일러의 예다.
비재구매형 컴파일러(즉, 단일 프로세서에 대해서만 코드를 생성하도록 설계된 컴파일러)와 유사한 품질의 코드를 생성하는 리타겟형 컴파일러의 생산원가는 컴파일러의 모든 단계에서 CPU별 세부사항을 사용할 수 없기 때문에 더 높다.리타겟형 컴파일러의 이점은 여러 CPU에 대한 총 비용이 다수의 개별 비타겟 컴파일러의 총 비용보다 훨씬 낮다는 것이다.
일부 리타겟 컴파일러(예: GCC)는 매우 광범위하게 포팅되고 개발되어 이제는 많은 최적화 및 기계별 세부 사항에 대한 지원을 포함시켜 코드 품질이 많은 CPU의 비재구매 컴파일러 품질을 능가하는 경우가 많다.
기계별 핍홀 최적화에 따른 범용 글로벌 최적화기는 일반적으로 사용되는 구현 기법이다.[1]일부 고성능 프로세서에 대한 코드의 최적화는 아키텍처와 지침이 실행되는 방법에 대한 상세하고 구체적인 지식이 필요하다.개발자들이 특정 아키텍처에 대한 코드 생성기를 작성하는 데 필요한 많은 시간을 투자하지 않는 한, 리타겟팅 가능한 컴파일러가 수행하는 최적화는 일반 프로세서 특성에만 적용할 수 있는 최적화가 될 것이다.
리타겟 컴파일러는 크로스 컴파일러의 일종이다.리타겟 가능 컴파일러는 휴대용(컴파일러 자체는 여러 개의 다른 CPU에서 실행될 수 있음) 및 자체 호스팅이 가능한 경우가 많다.
리타겟 가능 컴파일러의 예:
디컴파일러
retdec("Retargetable Decompiler")은 LLVM을 기반으로 한 오픈 소스 리타겟 가능 머신 코드 디컴파일러다.[citation needed]
- 디컴파일러는 특정 대상 아키텍처, 운영 체제 또는 실행 파일 형식으로 제한되지 않는다.
- 지원되는 파일 형식: ELF, PE, Mach-O, COP, AR(아카이브), Intel HEX 및 원시 머신 코드.
- 지원되는 아키텍처(현재 32비트만):Intel x86, ARM, MIPS, PIC32 및 PowerPC.
조립자
반대로, 리타겟팅 가능한 조립자는 다른 형식의 객체 파일을 생성할 수 있으며, 이는 동일한 CPU 아키텍처에서 실행되는 다양한 운영 체제(x86 플랫폼의 Windows 및 Linux 등)에 어셈블리 언어 프로그램을 포팅하는 데 유용하다.NASM은 그러한 조립자 중 하나이다.
추가 읽기
- 재포장 가능한 C 컴파일러: 설계 및 구현( ISBN0-8053-1670-1)
참조
- ^ 데이비드슨과 프레이저;리타겟형 Peephole Optimizer의 설계 및 적용; ToPLAS v2(2) 191-202(1980년 4월)
- ^ 레이너 르우퍼스, 피터 마르웨델"Embedded Systems를 위한 재생 가능한 컴파일러 기술".2001. (ISBN 0-7923-7578-5) 페이지 63.