2017-04-08 1 views
0

특히 컴파일 언어가 인터프리터 언어와 비교하여 하드웨어를 더 잘 최적화 할 수있는 방법은 무엇입니까? 내가 읽은 다른 온라인 소스는 대상 시스템의 원시 코드로 작성 되었기 때문에 막연한 설명을 주었지만 일부는 설명을 제공하지도 않는 등 모호한 설명을 제공했습니다. 만약 내가 방금 코딩을 시작했다는 것을 감안할 때 제공된 설명이 가능한 한 "평신도"가 될 수 있다면 감사 할 것입니다.하드웨어를 최적화 할 때 컴파일 된 언어가 해석 된 언어보다 나은 점은 무엇입니까?

+0

기계는 조립 지침 만 실행할 수 있습니다. 프로그램 실행은 컴파일되었을 때 나 인터프리터가 될 수 있습니다. 인터프리터는 코드를 실행합니다. 코드와 기계 사이에는 전체 레이어가있어 시간과 메모리가 제대로 작동합니다. 이러한 정보는 Google이나 Wikipedia에서 쉽게 찾을 수 있습니다. – paulotorrens

답변

0

하나의 주된 이유는 optimizing compilers입니다. "사전에"컴파일하면 특히 은 코드에 최적화를 적용하기가 더 쉽습니다. 특히 네이티브 어셈블리 코드로 컴파일하는 경우 (일반적으로 C 에서처럼). 실제로 배포 될 시스템에 대한 몇 가지 정보를 알고 있으므로 시스템 특정 최적화를 수행 할 수 있습니다. 이것은, 예를 들어, 펜티엄 기반 프로세서들에 대해 특히 중요하며, 이는 사용하기 위해 프로그램 구조에 대한 어느 정도의 지식 (예를 들어, MMX instruction set)을 요구하는 경향이있는 많은 복잡한 지시들을 갖는다.

컴파일러가 프로그램을 구조적으로 변경할 수있는 경우도 있습니다. 예를 들어, special circumstances 아래에서 일부 컴파일러는 반복을 재귀로 바꿀 수 있습니다. (나는 컴파일러가 최적화를 인식하고 자신의 재귀를 for 루프로 바꾼 것에 대한 공포만을 깨닫기 위해 어셈블리 언어로 재귀를 구현하는 법을 배우기 위해 C에서 재귀 Factorial 함수를 작성하는 사람에 대해 한 번 들었습니다.

관련 문제