1 What is logic programming?
: 논리형 프로그래밍이란 일종의 프로그래밍 패러다임이다. 컴퓨터 프로그램적 관점에서 프로그래밍 패러다임은 문제를 해결하기 위한 접근 방식을 말한다.
- 명령형: 문장을 통해 프로그램의 상태를 변경한다. 외부 효과가 발생한다.
- 함수형: 계산을 수학 함수에 대한 평가로 처리한다. 상태를 변경하지 않고 가변형 데이터도 사용하지 않는다.
- 선언형: 작업을 처리하는 방법이 아닌, 작업 자체를 직접 표현한다. 즉, 제어 흐름을 구체적으로 표현하지 않고 컴퓨테이션에 대한 논리만 표현한다.
- 객체지향형: 프로그램을 구성하는 코드를 오브젝트 단위로 표현한다. 각 오브젝트 나름대로의 역할을 맡으며, 데이터와 메소드로 구성된다.
- 절차형: 코드를 함수 단위로 구성한다. 각 함수마다 특정한 연산들을 수행한다.
- 기호형: 자체 컴포넌트를 일반 데이터를 다루듯이 수정하는 방식으로 프로그램을 작성한다.
- 논리형: 사실과 규칙으로 구성된 지식 데이터베이스에 대해 자동 추론을 적용하는 방식으로 컴퓨테이션을 처리한다.
2 Understanding the building blocks of logic programming
- 사실: 프로그램에서 참으로 여기는 문장으로서 연산을 수행할 대상이 되는 데이터
- 규칙: 문제를 풀 때 지켜야 할 제약 조건이자 문제 영역에서 어떠한 결론을 도출하는 수단
3 Solving problems using logic programming
: 논리형 프로그래밍은 사실과 규칙을 통해 결론을 도출하는 방식으로 문제를 처리한다.
4 Installing Python packages
$ pip3 install logpy
$ pip3 install sympy
5 Application of logic programming
- Matching mathematical expressions
- Validating primes
- Parsing a family tree
- Analyzing geography
- Building a puzzle solver