Logic Programming

oyoi·2024년 4월 4일

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
profile
오이

0개의 댓글