동시 로직 프로그래밍

Concurrent logic programming

동시 논리 프로그래밍은 프로그램이 다음과 같은 형식의 보호되는 혼 의 집합인 논리 프로그래밍의 변형이다.

B1, …, Bn.

접속사 G1, …, Gn 조항의 가드라고 하고, ǀ은 약속 운영자라고 한다.

선언적으로, 경비가 삼엄한 혼 절은 일반적인 논리적 함의로 읽힌다.

H if G1 및 …와 G 또는n B 그리고1 …과n B.

그러나 절차적으로, H 머리가 주어진 목표와 일치하는 몇 개의 조항이 있을 때, 모든 조항이 병렬로 실행되어 그들의 경비원1 G, … Gn 유지되는지 점검한다.둘 이상의 조항이 유지되는 경우, 해당 조항 중 하나에 대한 확약적 선택이 이루어지며, 실행은 선택된 조항의 하위1 골인 B, … Bn 진행된다.이러한 하위 목표는 또한 병렬로 실행될 수 있다.그러므로 동시 로직 프로그래밍은 "비영리주의를 모른다"가 아니라 "비영리주의를 신경쓰지 말라"라는 형태를 구현한다.

역사

첫 번째 동시 논리 프로그래밍 언어는 클라크와 그레고리의 관계 언어였으며, 이것은 IC-Prolog의 일부였다.동시 로직 프로그래밍의 후기 버전에는 샤피로의 Concurrent Prolog 언어와 우에다의 Guarded Horn Clause 언어가 포함된다.

동시 로직 프로그래밍의 발전은 일본 제5세대 프로젝트(FGCS)의 시스템 프로그래밍 언어인 KL1을 구현하기 위해 GHC를 사용하면서 추진력을 얻었다.FGCS 프로젝트는 1982년 시작된 일본 국제무역산업성이 인공지능 애플리케이션에 대규모 병렬 컴퓨팅/처리 방식을 사용하려는 4억 달러 규모의 이니셔티브였다.동시 로직 프로그래밍을 하드웨어와 애플리케이션 사이의 "연계 누락 링크"로 선택한 것은 1982년 Concurrent Prolog를 발명한 Ehud Shapiro의 FGCS 프로젝트 방문에 영향을 받았다.

참고 항목

참조