기능적 중간 형태의 단점 기능을 수행하는 것을 의미하는 기능적 중간 형식에

JavaScript와 유사한 언어에 대한 최적화 프로그램을 작성 중이며 중간 코드 표현을 선택해야합니다. 요즘 명백하고 전형적인 선택은 정적 단일 할당 (SSA)입니다.

그러나 C에서 Modern Compiler Implementation은 기본적으로 중간 표현을 위해 순수한 기능을 수행하는 것을 의미하는 기능적 중간 형식에 대해 논의합니다 (로컬 변수 측면에서 순수하고 힙 데이터는 여전히 변경 가능하며 CPS가 아닌 단순한 let블록 및 테일 호출). 추론하기 쉬운 측면에서 몇 가지 장점이 있습니다.

아마도 그것은 쉬운 일이 아니거나 모든 사람들이 이미 그러한 표현을 사용하고있을 것이므로 내 질문은 기능적 중간 형태가 SSA와 비교했을 때 어떤 단점이 있습니까?



답변

SSA는 데드 코드 제거, 지속적인 전파, 부분 특수화 등에 적합합니다. 이런 종류의 물건이 메뉴에 없으면 SSA를 건너 뛰고 더 간단한 표현을 위해 더 편안한 표현을 사용할 수 있습니다


답변