WAMpy: Python에서 Prolog 프로그램 효율적으로 합성하기
요약
WAMpy는 Prolog 프로그램 합성을 위해 최적화된 Python 프레임워크입니다. 이 도구는 후보 프로그램을 반복적으로 생성하고 평가하는 워크로드를 목표로 하며, Prolog 절을 NumPy 기반 WAM 명령어로 컴파일합니다. Numba JIT를 활용하여 성능이 중요한 루틴을 가속화함으로써 기존 시스템 대비 높은 효율성을 보여줍니다.
핵심 포인트
- Prolog 프로그램 합성에 특화된 Python 프레임워크입니다.
- 후보 프로그램의 반복적 생성 및 평가에 최적화되었습니다.
- Prolog 절을 NumPy 기반 WAM 명령어로 컴파일합니다.
- Numba JIT를 사용하여 성능 병목 구간을 가속화했습니다.
우리는 Prolog 프로그램을 합성하는 데 최적화된 Python 프레임워크인 WAMpy를 소개합니다. 일반적인 목적의 Prolog 시스템과 달리, WAMpy는 작은 후보 프로그램을 반복적으로 생성하고 평가하는 워크로드를 목표로 합니다. WAMpy는 Prolog 절(clause)을 NumPy 배열 기반의 WAM 명령어(instruction)로 컴파일하며, 고정된 배경 지식에 대한 가설의 부분 재컴파일을 지원합니다. 성능이 중요한 루틴은 Numba Just-In-Time (JIT) 컴파일을 사용하여 가속화됩니다. 반복적인 컴파일 및 평가 워크로드 벤치마크에서, WAMpy는 Python에서 Janus를 통해 접근하는 SWI-Prolog 대비 엔드투엔드 성능을 개선합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 arXiv cs.PL (Programming Languages)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기