논리 프로그래밍에서 추론 규칙(Inference Rules)을 프로그램처럼 실행하기 위한 핵심 개념인 추상 머신(Abstract Machines)을 소개함.
덧셈 연산을 예시로, 입력/출력 모드(Mode)를 다르게 설정하여 다양한 추상 머신 구현 가능성을 제시하고, 뺄셈과 같은 연산에 적용하는 방법을 설명함.
추상 머신을 통해 부분성(Partiality)과 비결정성(Nondeterminism)과 같은 특징을 다룰 수 있음을 강조하며, 관련 연구들을 언급함.
본문은 추론 규칙(Inference Rules)을 프로그램처럼 실행하기 위해 추상 머신(Abstract Machines)을 활용하는 방법을 제시한다. 특히, 덧셈 연산을 예시로 들어, 추론 규칙을 상태 머신(State Machine)으로 변환하는 과정을 설명한다. 이러한 변환은 논리 프로그래밍 언어의 내부 표현으로 사용될 수 있으며, 런타임(Runtime) 환경에서 계산 과정(Computation Process)을 효과적으로 관리하는 데 기여한다.
글에서는 덧셈 연산의 입력/출력 모드(Mode)를 다르게 설정하여 다양한 추상 머신을 구현하는 방법을 보여준다. 예를 들어, i/i/o 모드에서는 덧셈, i/o/i 모드에서는 뺄셈을 구현할 수 있다. 이러한 모드 설정은 추상 머신의 동작 방식(Operation Method)을 결정하며, 논리 프로그래밍 언어의 유연성을 높이는 데 기여한다. 또한, 뺄셈과 같이 부분성(Partiality)을 갖는 연산의 경우, 추상 머신이 계산 실패(Calculation Failure)를 처리하는 방식을 보여준다.
본문은 추상 머신(Abstract Machine)을 통해 부분성(Partiality)과 비결정성(Nondeterminism)을 처리하는 방법을 설명한다. 뺄셈 연산의 경우, 추상 머신이 계산 실패(Calculation Failure)를 감지하고 처리하는 방식을 보여준다. 또한, o/o/i 모드에서는 비결정적인 연산을 구현하여, 다양한 해(Solution)를 찾는 과정을 보여준다. 이러한 특징은 논리 프로그래밍 언어가 다양한 문제 해결에 활용될 수 있도록 한다.
글에서는 Landin의 SECD 머신, Reynolds의 정의적 인터프리터(Definitional Interpreters)와 같은 관련 연구들을 언급하며, 추상 머신 구현의 역사적 배경을 설명한다. 특히, Hannan과 Miller의 연구를 통해 임의의 논리 프로그램에 대한 추상 머신 변환의 정확성(Correctness)을 검증하는 방법을 제시한다. 또한, Ager의 연구를 통해 자동화된 추상 머신 변환의 가능성을 보여주며, 논리 프로그래밍(Logic Programming) 분야의 발전을 조명한다.