영어 단어 brace. . .걸쇠, 버팀대라는 의미도 있지만 중괄호라는 의미도 있습니다.
"{}" 이게 중괄호라는 놈인데 C나 C++ 을 하는 사람들에게는 꽤 익숙한 기호입니다.
예전에 C를 처음 배울 당시 brace를 보고 나름대로는 꽤 재미있는 생각이 떠올랐습니다.
가만 보고 있으니 C code에서 중세 유럽의 봉건제도가 떠 올랐기 때문입니다.
길가메쉬 서사시를 읽고 있노라면 인간은 역사가 시작된 이래 변한 것이 하나도 없음을 느끼는데
20세기를 풍미하던 C에서 봉건제도가 보이는 것을 보면 이것 역시 마찬가지인 모양입니다.
다들 아시는 대로 중세 유럽에서는 특권층을 제외한 일반 사람들은 이름을 가지지 못했습니다.
직업이 이름을 대신하였고 그 흔적은 오늘날 영어에서 Last Name이라 하는 것에 남아 있습니다.
우리나 중국과 달리 '성'이 앞에 오지 않고 맨 뒤로 밀려난 것을 보면 . . .
그들의 머리 속에는 전체보다 개인을 앞세우는 경향이 있음을 확실히 보여주고 있는게 아닐런지.
암튼 그 수많은 사람들과 구별되기 위해서는 자신의 이름이 있어야 할 터인데 . . .
직업이 이름을 대신하였다는 것은 그만큼 개인이 몸담고 있는 사회가 작았다는 것을 의미합니다.
중세 유럽의 봉건 제도에서 영주는 자신의 땅에서만큼은 왕과 다름없는 존재였습니다.
자신의 영지에서 무슨 일이 벌어지건 다른 영주들이 뭐라 왈가왈부 할 수 없었다는 겁니다.
사람들은 이동의 자유가 없었으며 평생 그 영지에서만 먹고 살아야 했습니다.
영지 내의 사회가 농노나 일반인들이 접할 수 있는 사회의 전부였습니다.
작은 영지내에 동일한 직업을 가진 사람이 몇명씩 존재할 필요는 없었습니다.
자연스럽게 사람들은 고유한 직업을 가지게 되었고 직업이 이름을 대신하게 되었습니다.
너무나도 당연스럽게 생각하는 신체 및 이동의 자유는 겨우 근대에 와서야 부르짖게 된 것으로
이 시기에는 전혀 얼토당토 않은 것이였습니다.
그런데 C를 보고 있으니 Brace라는 넘이 이런 짓을 하고 있는겁니다.
C code는 Function라고 부르는 단위 Code 뭉치의 조합으로 작성되어 있습니다.
그리고 각 개별 Function의 Code영역은 brace로 구분되게 되어 있습니다.
마치 Function이라는 영주가 brace로 구분되는 영지를 가진 것 같은 모습입니다.
영주와 영주간의 의무 및 권리를 행사할 수만 있다면 . . .
어느 영지내에서 뭔 일이 벌어지든 다른 영지는 전혀 영향을 받지 않습니다.
Funcion도 Brace 내에서 뭔 짓을 하든 다른 Function의 Brace 내부에 영향을 미치지 못합니다.
Function은 input에 대해 정해진 Output을 잘 수행하기만 하면 됩니다.
Brace 내부에서 전봇대로 이를 쑤시든 말든 프로그램 전체에서는 상관할 바가 아닌겁니다.
영주가 자신의 부하에게 봉토를 떼어 주듯이 . . .
함수의 brace 내부에서 다른 brace가 새끼를 치고 있을 수도 있습니다.
if나 for, while 등이 가지는 brace가 바로 그것입니다.
C에서는 안 되지만 C++에서는 그런 새끼 brace 내에서도 변수를 선언하는 것을 허용합니다.
심지어 brace 바깥에 있는 변수와 똑같은 이름 및 데이터 Type을 가져도 상관이 없습니다.
Brace 내부는 외부와 단절되어 상호 연관이 없습니다.
C는 Brace로 단절된 Code의 집합체를 구성하도록 설계되어 입니다.
그렇게 상호간의 관계가 없어야만 이를 다루는 사람이 편하기 때문입니다.
오로지 표면적으로 보이는 함수들간의 관계들만 엮어 나가면 되거든요.
Language의 성장과정을 보면 공산주의에서 주장되었던 사회발전의 단계들이 생각납니다.
인간 공동체가 생겨나면서 구성원을 통제하기 위한 시스템이 생겨났고 . . .
그 공동체의 덩치가 커지다보니 시스템은 점점 복잡해져 갈 수 밖에 없었으며 . . .
서양에서는 이런 복잡도를 낮추기 위해 전통적으로 "Divide and Conquer"를 사용해 왔습니다.
컴퓨터 시스템도 결국 마찬가지 수순을 밟아가는 것이 아닌가 합니다.
초기 간단했던 요구사항과 시스템에서 점점 많은 것을 처리하기 위해 복잡해져 갔으며
그 복잡성을 인간이 통제할 수 있는 수준으로 떨어뜨리기 위한 노력들. . .
국가라는 거대한 시스템을 만들기 위한 수순과 비슷한 점이 있어 보이는군요.
만약 컴퓨터라는 것이 동양에서 발명되었으며 . . .
복잡성을 줄이기 위한 노력들의 패러다임이 동양적인 사고방식으로 이루어졌다면. . .
컴퓨터 시스템은 과연 어떤 모습이 되어 있었을까요?
'자작 > 내 생각' 카테고리의 다른 글
물거품 (0) | 2010.06.07 |
---|---|
21세기의 언어로 씌어진 신화 - 영화 Matrix (0) | 2010.06.07 |
나 . . . (0) | 2010.06.07 |
북유럽 신화 (0) | 2010.06.07 |
오이디푸스 컴플렉스 (0) | 2010.06.07 |