Core Concepts
다형성 효과 계산법에서 불필요한 부-타입 강제 변환을 제거하여 효율적인 컴파일을 달성하는 알고리즘을 제안한다.
Abstract
이 논문은 다형성 효과 계산법에서 명시적 부-타입 강제 변환을 단순화하는 알고리즘을 제안한다.
다형성 효과 계산법 CoreEff를 소개하고, 이 언어에서 타입 및 효과 정보가 어떻게 표현되는지 설명한다. 특히 명시적 부-타입 강제 변환을 통해 효과 정보가 추적되는 방식을 보여준다.
다형성 함수에 대한 강제 변환 매개변수가 성능에 큰 영향을 미치는 문제를 지적한다. 이를 해결하기 위해 강제 변환을 단순화하는 일련의 단계를 제안한다.
각 단순화 단계가 타입 안전성을 보존함을 증명한다.
제안한 알고리즘을 Eff 언어에 구현하고, 다양한 벤치마크를 통해 성능 향상 효과를 평가한다. 결과적으로 모든 강제 변환이 제거되어 수동으로 단일화한 코드와 동일한 수준의 성능을 달성한다.
Stats
표준 unzip 함수에는 23개의 명시적 강제 변환이 필요하다.
간단한 quicksort 구현에서는 약 200개의 명시적 강제 변환 매개변수가 생성된다.
Quotes
"다형성 함수에 대한 명시적 강제 변환 매개변수는 성능에 큰 영향을 미친다."
"제안한 단순화 알고리즘은 모든 강제 변환을 제거하여 수동으로 단일화한 코드와 동일한 수준의 성능을 달성한다."