대학교에서 컴퓨터, 소프트웨어전공 학부생을 대상으로 하는 논리학 강의를 위해 읽었다. 다 읽진 않고 총 19개 챕터 중에서 술어논리(1차 논리)에 해당하는 13번 챕터까지 읽었다. 대학원 시절 수업 조교를 하며 지도교수님이 하시는 수업을 몇 년 간 들었기에 책에서 중요한 부분을 놓치지 않을 수 있었다.

 

이 책은 스탠포드 교수들이 주 저자기 때문인지 주로 드는 예시가 미국 문화권의 사람들이 익히 알법한, 하지만 Gen Z 한국 대학생들에게는 다소 생소한 사실들로 이루어져있는 편이다. 예를 들어 마크 트웨인이나 메릴 스트립, 해리슨 포드 등에 관한 이야기들 말이다.

 

그래도 이 책의 가장 좋은 점 중에 하나는 책에서 다루는 술어 논리 문제들을 풀이하고, 검증할 수 있는 소프트웨어를 제공한다는 점이다. 책에서 다루는 술어 논리 문법만 맞다면, 소프트웨어를 통해 여러 가지 논리적 명제를 만들어보고, 논리적 타당성을 검증해볼 수 있다. 이 소프트웨어들을 쓰다 보면 버그가 좀 있긴 하지만 참을 수 있는 정도다.

 

내 수업에서는 되도록 쉽게 가르치려고 노력했지만, 그렇다고 책에서 다루는 깊이 있는 내용들을 그냥 지나치기에 아까웠다. 나를 포함해서 인간의 언어 보다 컴퓨터 언어(추상적인)로 대화하는 것을 더 좋아하는 사람들이 있다. 내 수업에서도 술어 논리 공부에 크게 몰입하는 학생들의 있었다. 이들의 지식 습득에 대한 요구를 만족시키고자  책에서 읽은 챕터의 모든 문제를 풀이 후 수업 준비를 하였다. 책의 모든 예제를 풀어보고, 연습 문제 중에서는 논리적 타당성이 없는 증명 문제를 제외한 모든 문제를 풀었다. 그런 후 난이도 별로 쉬운 것 부터 지옥 같이 느껴질 내용 까지를 다루었다.

 

프로그래밍 언어 순위를 볼 수 있는 TIOBE 같은 곳을 보면, 논리적 프로그래밍(logic programming) 언어의 순위가 매우 낮다. 이걸 보면, 컴퓨터/소프트웨어 전공자가 굳이 이 책을 보면서 술어 논리를 배울 필요가 있을까 생각할 수도 있다. 그러나 술어 논리는 인간의 언어(자연어)나 사고 방식을 컴퓨터가 이해할 수 있는 방식으로 번역하는, 추상화를 연습할 수 있다는 점 때문에 매우 중요하다. 또한 컴퓨터 프로그램을 설계하는 사람이, 자신의 프로그램이 올바르게 설계되었다는 사실을 추론해내는 데 사용하는 Hoare logic의 기반이 되기에 또한 중요하다.

 

지금껏 술어 논리를 강의했지만, 안타깝게도 나 역시 논리적 프로그래밍 언어를 따로 공부할 일은 없었다. 그래서 다음으로 익힐 취미는 논리적 프로그래밍 언어인 Prolog로 정해두었다.

Posted by 공돌이pooh
,