Prolog의 기본 요소
Prolog에서 bill과 Bill은 왜 전혀 다른 것일까?
Prolog의 탄생
두 대학의 연구에서 나왔습니다
Prolog는 논리 프로그래밍을 실제로 쓸 수 있게 만든 언어입니다. 엑스-마르세유 대학교의 콜메로어와 루셀은 자연어 처리를 위해, 에든버러 대학교의 코왈스키는 자동 정리 증명을 위해 연구했습니다.
영어로는 Colmerauer, Roussel, Kowalski입니다. 자연어 처리는 사람의 말을 컴퓨터로 다루는 일입니다.
항
Prolog의 재료는 세 가지입니다
Prolog에서 쓰는 것은 모두 항(term)입니다. 항은 상수(constant), 변수(variable), 구조(structure) 가운데 하나입니다. 상수는 다시 원자(atom)와 정수로 나뉩니다.
원자는 이름 그대로가 값인 기호입니다. 17은 예시입니다. 코드는 이 강의가 따르는 교재처럼 에든버러 문법의 Prolog로 적습니다.
원자와 변수
첫 글자로 가릅니다
원자는 소문자로 시작합니다. 작은따옴표로 감싼 글자도 원자입니다. 변수는 대문자로 시작합니다. 그래서 bill은 원자이고 Bill은 변수입니다.
첫 글자 뒤에는 글자, 숫자, 밑줄이 올 수 있습니다. 'Hello'는 예시입니다.
구조
2편의 복합 항과 같은 모양입니다
구조는 원자 명제를 나타냅니다. 2편에서 본 복합 항처럼 함수기호 뒤 괄호 안에 매개변수 목록을 적습니다. 매개변수 자리에는 원자도, 변수도 올 수 있습니다.
위는 'bill은 jake의 아버지다', 아래는 'mike의 아버지 X'입니다.
인스턴스화
변수의 값은 잠깐만 묶입니다
4편에서 본 인스턴스화는 변수를 값에 묶는 일입니다. 이 묶음은 질의 하나에 답할 때까지만 이어집니다. 값을 넣어 두고 덮어쓰는 명령형 언어의 대입과 다릅니다.
C 코드는 예시입니다. Prolog에서는 질의를 목표라고 부릅니다. 다음 편에서 봅니다.
다음 편