전략 기반 PRholog 논리 프로그래밍의 새로운 패러다임

PRholog은 Prolog와 Rholog 계산을 결합한 실험적 확장 언어로, 전략적 조건 변환 규칙을 통해 헤지(hedge)의 비결정적 변환을 수행한다. 전략 조합자를 이용해 규칙 적용 순서를 선언적으로 제어할 수 있으며, 네 종류의 변수 매칭 메커니즘으로 실행 시 서브터미 선택을 유연하게 지원한다.

전략 기반 PRholog 논리 프로그래밍의 새로운 패러다임

초록

PRholog은 Prolog와 Rholog 계산을 결합한 실험적 확장 언어로, 전략적 조건 변환 규칙을 통해 헤지(hedge)의 비결정적 변환을 수행한다. 전략 조합자를 이용해 규칙 적용 순서를 선언적으로 제어할 수 있으며, 네 종류의 변수 매칭 메커니즘으로 실행 시 서브터미 선택을 유연하게 지원한다.

상세 요약

본 논문은 PRholog이라는 새로운 논리 프로그래밍 프레임워크를 제시한다. PRholog은 전통적인 Prolog의 백트래킹 기반 탐색 메커니즘에 Rholog의 전략적 재작성(Rewrite) 개념을 도입함으로써, 규칙 적용 순서를 프로그래머가 명시적으로 제어할 수 있게 한다. 핵심 아이디어는 ‘전략(strategy)’이라는 일급 객체를 도입해, 단일 규칙 적용뿐 아니라 복합적인 규칙 조합을 선언적으로 기술한다는 점이다. 전략은 기본 전략(예: id, fail, try, repeat)과 전략 조합자(시퀀스, 선택, 반복, 조건부 등)로 구성되며, 이를 통해 복잡한 탐색 공간을 효율적으로 제한하거나 확장할 수 있다.

PRholog의 매칭 메커니즘은 네 종류의 변수—일반 변수, 함수 변수, 리스트 변수, 그리고 히든 변수—를 지원한다. 이러한 다중 변수 체계는 헤지 구조(리스트와 같은 연속된 항)의 부분 서브터미를 정밀하게 선택하고 바인딩할 수 있게 하며, 기존 Prolog에서 제공되는 단일 변수 매칭보다 훨씬 풍부한 패턴 매칭을 가능하게 한다. 특히 리스트 변수와 히든 변수는 헤지 내부의 연속된 구간을 캡처하거나 무시하는 데 유용하며, 전략적 변환 규칙에서 조건부 매칭을 구현할 때 핵심 역할을 한다.

전략적 규칙은 ‘조건 → 변환’ 형태로 정의되며, 조건부 매칭이 성공하면 지정된 변환을 수행한다. 변환은 헤지의 구조를 재구성하거나 새로운 서브골(goal)을 삽입하는 방식으로 이루어진다. 이러한 규칙은 비결정적이며, 백트래킹을 통해 여러 가능한 변환 경로를 탐색한다. 전략 조합자를 사용하면, 예를 들어 ‘first‑success’ 전략을 통해 가장 먼저 성공하는 규칙만 적용하거나, ‘all‑solutions’ 전략을 통해 모든 가능한 변환을 수집할 수 있다.

논문은 PRholog의 문법과 실행 모델을 상세히 기술하고, 전략 조합자의 형식적 정의와 연산적 의미를 제시한다. 또한, 전략이 어떻게 기존 Prolog 프로그램에 비침투적으로 삽입될 수 있는지를 보여주며, 전략을 이용한 재작성 시스템의 구현 예시를 통해 실용성을 검증한다. 마지막으로, PRholog이 제공하는 전략적 제어가 복잡한 탐색 문제(예: 그래프 변환, 문자열 패턴 매칭, 자동 증명)에서 어떻게 효율성을 향상시킬 수 있는지를 논의한다.


📜 논문 원문 (영문)

🚀 1TB 저장소에서 고화질 레이아웃을 불러오는 중입니다...