1127강의 - kyagrd/PL2018Fall GitHub Wiki
Prolog
논리는 전통적으로 전자공학에서 논리회로의 설계 등에 활용.
컴퓨터 과학에서 프로그래밍 언어의 의미를 기술하는 방식 중에 "공리적 의미론"(axiomatic semantics)에 활용. 참고로 프로그래밍 언어의 의미를 기술하는 방식에는 다음과 같은 것들이 있다.
- denotational semantics -- 프로그램의 의미를 집합 등의 수학적으로 잘 알려진 대상에 대응시키는 방식
- axiomatic semantics -- 프로그램이 실행되기 전, 실행 중, 실행 후에 만족해야 할 조건을 논리식으로 표현하는 방식
- operational semantics -- 주어진 프로그램을 단계를 밟아 가며 변형시키는 방식
70년대에 프랑스의 엑스-마르세유 대학과 영국 스코틀랜드의 에딘버러 대학 연구자들이 논리적 추론 과정을 프로그래밍에 도입하는 아이디어로 연구.
제 5세대 컴퓨팅
일본에서 80년대 초부터 10년간 진행되었던 연구 프로젝트이다. 이름이 5세대 뭐 이런 것은 제 4차 산업 혁명 이런 식으로 우리나라나 옆나라는 숫자 붙은 이름을 좋아해서 그런 것 같다. 제 5세대 컴퓨팅은 논리형 프로그래밍과 관련한 SW및 HW 아키텍처를 함께 구성하는 야심찬 프로젝트였다. 특히 논리 추론을 병렬 아키텍처를 이용해 효과적으로 구현해 보자는 점이 주목을 받았다. 30여년 전 우리나라 주요 언론에도 보도되었을 정도다. 전자제품 반도체 등과 같은 전자기기나 특정 HW관련 내용이 아닌 이상 지금보다 SW나 IT관련 기사가 아주 많지는 않던 것을 고려하면 이런 옆나라의 연구 프로젝트가 일반 지면 기사로 나왔다는 것은 얼마나 주목받던 프로젝트였나 짐작해 볼 수 있다.
- 5세대컴퓨터 | [중앙일보] 입력 1984.05.22 00:00 | 종합 12면
- 열기 시들해진 제5세대 컴퓨터 프로젝트 과학동아 1991년 09호
하지만 두번째 기사에서 볼 수 있듯이 10년 후 실용적 결과물을 도출해 내는 데는 실패했다. 사실 워낙 주목받던 프로젝트라서 실망도 컸지만 생각해 보면 이런 새로운 시도를 탐험해보는 연구 프로젝트가 당장 실용적 결과물을 도출해 내는 경우는 드물다.
업계에는 당장에 영향을 미치지 못했지만 학계에는 나름 큰 영향을 미쳤다. 개인적으로 학회에서 만나본 한 영국인 교수님은, 멀쩡하게 그당시 IT기업에 잘 다니며서 월급도 잘 받고 있다가 이 프로젝트에 영감을 받아 대학원에 진학해서 공부하게 되어 학계로 왔다는 분도 만나보았다.
Prolog
Prolog를 어려운 전문용어로 표현하자면 first-order Term에 대한 Horn clause를 추론해주는 언어, 또는 first-order Term에 대한 일차논리(의 일부)를 추론해주는 언어.
프롤로그와 같은 논리형 언어를 함수형 언어와 퓨전시킨 함수+논리형 언어인 Curry라는 언어가 있다 (데비안 패키지 중에 pakcs 컴파일러를 설치해 사용가능)
한편 논리형 프로그래밍의 표현력을 더욱 확장시킨 λProlog라는 언어는 higher-order Term에 대한 Harrop formula를 추론해 주는 언어, 또는 higher-order Term에 대한 고차논리(의 일부)를 추론해주는 언어.