본문 바로가기

리뷰_철학.사회

[과학기술리뷰] C Programming Language 소개

C Programming Language 소개

 

 

 

조정현(수유너머104 세미나 회원)

 

 

 

 

개인용 컴퓨터를 켜보자. 노트북을 켜봐도 된다. 화면이 밝아지면서, 컴퓨터는 로그인 정보를 입력하라고 요구한다. 키보드를 통해 자판을 두드려, 로그인 정보를 입력하면 모니터에는 바탕화면이 뜬다. 바탕화면은 상징기호의 모임이다. 바탕화면에는 휴지통 아이콘이 있다. 이 아이콘은 우리가 업무를 볼 때 옆에 있는 휴지통을 상징화 한 것이다. 바탕화면에는 문서(document) 아이콘이 있다. 우리가 일하면서 작성하는 서류를 대표한다. 바탕화면에는 폴더 아이콘이 있다. 서류나, 문서를 넣는 폴더를 나타내는 기호이다. 컴퓨터 바탕화면이 보여주는 상징은 확실하다. 우리 책상 위(Desk Top)에 나오는 사물을 아이콘으로, 즉 상징기호로 화면에 보여 주는 것이다. 개인용 컴퓨터는 우리에게 책상 위에서 하는 작업을, 아이콘이라는 상징기호를 조작하여 처리하도록 도와주는 도구이다.

 

영화에는 나오지만, 실제 세상에는 보기 힘든 컴퓨터를 상상을 해 보자.
개인용 컴퓨터를 켠다. 화면은 밝아진다. 다음과 같은 문자가 화면에 뜬다.
안녕! 세상아!!”

 

 

 


컴퓨터가 안녕! 세상아!!” 라고 우리에게 말을 걸었다. 우리는 세상을 향해, 자신이 존립하고 있음을 선언하는 컴퓨터를 만난 것이다. 당신은 이 컴퓨터에 대해 어떻게 반응할 것인가. 새로운 종()인 독립된 개체를 만났다는 느낌을 받지 않겠는가?. 누구인가 컴퓨터를 이렇게 만들었다면, 그는 컴퓨터에게 생명을 부여하려 한 사람이다. 이 사람에게 컴퓨터는 인간에게 봉사하는 존재가 아니라 독립된 개체이다.

 

우리가 개인용 컴퓨터을 이용할 때 보이는 바탕화면 역시 프로그램이다. 이 프로그램은 인간이 수행하는 작업을 보조하는 도구로써, 상품으로 만들어진 대상이다. 이에 반해, 우리가 위에서 상상해 봤던, “안녕!! 세상아라 이야기하며, 세상에 자신이 있음을 선언한 프로그램은, 자신을 위해 존재하는 프로그램이다. 누구를 위하여 봉사하기 위해 존재하는, 그래서 상품으로 이용되기 위해 만들어진 프로그램과는 결이 다르다.

 

‘C Programming Language’는 데니스 리치와 브라이언 커닝햄이 쓴 프로그래밍 기술서적이다.이 책에 나오는 첫 번쨰 예제 프로그램이 화면에 “hello, world!”를 표시하는 프로그램이다. 세상에 안녕!! 세상아!!” 라고 외치는 바로 그 프로그램이다. 데니스 리치는 켄 톰슨이란 사람과 함께 C라는 프로그래밍 언어를 만든 사람이다.  

 

 

 

C언어를 만든 사람이 자신이 만든 프로그래밍 언어를 설명한 책이 ‘C Programming Language’ 란 책이다. 쉽게 말해 저자 직강이다. 나온지 50년 가까이 된 책이라, 이 책을 보면서 C프로그램밍을 공부하는 사람은 최근에는 거의 없을 것이다. 그러나, 이 책에 나오는 첫 번째 예제는 프로그래머에게 가장 유명한 프로그램으로, 이 예제로 인해 이 책은 지금까지 이야기 되고 있다.

 

프로그래머가 되고자 하는 사람이 보통 제일 처음 만드는 것이 “hello, world”를 화면에 출력하는 프로그램이다.  python이던, C++이던, Java 이던, 어떤 프로그래밍 언어를 배우던지, 대부분의 프로그래밍 책에서 첫 예제는 “hello world” 를 화면에 출력하는 프로그램을 든다. 모두 ‘C Programming Language’라는 책의 영향이다.

 

데니스 리치는 아마도 컴퓨터를 인간을 위해 봉사하는 도구로만 보지 않았을 것이다. 그에게 컴퓨터는 사고하는 기계였을 것이고, 사고한다는 점에서만 보면 인간과 다른 점이 없었을 것이다. 이런 생각이 있어 컴퓨터가 “hello, world!!”라고 선언하도록 프로그램을 만들었을 것이다.

 

프로그래머의 작업이 컴퓨터가 특정 동작을 수행하도록 명령어를 입력하는 것이라고 규정하면, 프로그래머는 주인이고, 컴퓨터는 하인이 된다. 그러나, 프로그래머는 컴퓨터를 인간과 같이 사고하는 개체로 만들어 내는 사람이라고 규정하면, 프로그래머와 컴퓨터는 주인과 하인 관계가 아닌, 동등한 관계가 되고, 프로그래머는 어느새 컴퓨터와 물아일체(物我一體)하는 경험을 하게 된다. 프로그래머가 곧 컴퓨터가 되는 과정, 주체인 나는 없어지고, 객체인 컴퓨터와 동일화 되는 과정을 경험한다. 이 단계에 이르면 프로그래머는 인간의 사고방식으로 생각하는 게 아니라 컴퓨터의 동작원리로 생각하게 된다. 난 이 단계를 문리(文理)가 트인다라고 표현한다.

 

컴퓨터와 일체화 되는 단계는 형이상학적 주체가 사라지는 경험을 하는 과정이다. 이 과정이 쉽다고는 할 수 없다. 어떤 사람에게는 상당히 지루한 과정이고, 어떤 사람에게는 도저히 도달할 수 없는 단계이다. 형이상학적 주체를 절대 포기할 수 없는 사람은 컴퓨터와 물아일체하는 프로그래머가 될 수 없다.

 

5.633 세계 속 어디에서 형이상학적 주체가 발견될 수 있는가?

 

비트겐슈타인의 논리-철학논고에 나오는 말이다. 이 언명을 실생활에서 느끼고 싶다면, 이 책 ‘C Programming Language’을 읽으면서, 프로그래밍의 세계로 들어오길 권한다. 미리 이야기 하지만, 처음에는 무척 지루하다. 그러나, 문리가 트이고 다시 보면, 감동하게 되는 책이다.