Static Type Analysis for Python via Declarative Inference
동적 타입 언어는 널리 사용되고 있으나, 명시적인 타입 정보의 부재로 인해 코드 가독성이 저하되고 유지보수 비용이 증가하는 문제가 있다. 대표적인 동적 타입 언어인 Python은 타입 주석과 정적 타입 분석을 통해 프로그램의 안정성을 향상하고자 한다. 그러나 기존 정적 타입 분석기들은 낮은 분석 정밀도와 호출되지 않는 함수 내부에 대한 분석 불가능 등의 한계를 가진다. 본 논문에서는 이러한 문제를 해결하기 위해 타입 정보가 수렴하는 지점에서 교차 타입을 활용하여 공통된 연산만을 유지함으로써 분석 정밀도를 향상시키고, 선언적 추론 기반의 모듈화 분석을 통해 실행 여부와 관계없이 코드 전반을 분석할 수 있는 Python 정적 타입 분석 기법을 제안한다. 제안한 기법은 총 234개의 테스트 프로그램을 대상으로 한 실험에서 평균 F1-score 0.81을 달성하여 기존 정적 타입 분석기 4종보다 우수한 성능을 보였다. 또한 실제 Python 프로젝트인 PathPicker 대상으로 한 실험을 통해 큰 프로그램에 대해서도 합리적인 시간 내에 분석이 가능함을 확인하였다. 이러한 결과는 제안 기법이 높은 분석 정밀도와 분석 효율성을 동시에 확보하여 실제 Python 프로젝트에 효과적으로 적용될 수 있음을 보여준다.
Authors
- Min-Gyeong Jeong
- Sungho Lee
Publication Details
- Journal
- Journal of KIISE
- Published
- 2026-10-27
- DOI
- https://doi.org/10.5626/jok.2026.53.10.1041
- Primary Topic
- Logic, programming, and type systems
- Type
- article
- Field-Weighted Citation Impact
- 0.00