티스토리 뷰



이번 시간은 Recitation으로 조교가  간단한 python의 문법 및 variable에 관해서 설명합니다.

한가지 중요한 사항만 언급하자면 첫번째로 나오는게 interpreter와 compiler의 차이입니다. 네이버에도 인터프리터와 컴파일러를 검색해보면 정리가 잘되어 있습니다.

간단하게 말하자면 컴파일러는 통째로 코드를 읽고 기계가 읽을 수 있는 언어로 바꿔주는 통역기입니다. 사실 우리가 제일 많이 다루는 C/C++ 계열도 우리가 읽기 쉽게 문법화가 되어있는거지 실제로 컴퓨터가 그 코드를 이해하기 위해서는 중간에 통역기가 필요하겠지요. 그게 컴파일러고요. 여러분들도 VS상에서 디버깅 버튼을 누르게 되면 해당 코드에 대해서 문법 검증 및 빌드가 모두 이뤄집니다. 그래서 그러고 나서 실행 파일이 실행되는 과정을 거치게 되는거지요. 물론 코드가 복잡하지 않으면 금방금방 되겠지만 복잡하다면 이에 걸리는 시간이 많이 소비될 겁니다. 거기다가 이 프로그램이 제대로 동작하는지 안하는지의 여부는 이 검증 과정이 끝난 후에 이뤄지게 될겁니다. 지금 한 말에 컴파일러의 장점과 단점이 모두 나타납니다. 즉, 번역하고 object 파일이 생성되기까지의 시간이 많이 걸리지만, 한번 빌드된 파일은 obejct 파일이 생성되어 있기에 또 수행할 필요가 없습니다. 실행 속도가 빠른 이유겠지요.

 이와 반대로 인터프리터는 한줄한줄씩 번역되서 처리되는 통역기입니다. 바로 지금 이 강좌에서 다루고 있는 python의 경우가 그런 경우입니다. 변수를 한 줄에 입력하고 처리하면 바로 결과가 출력되듯이 인터프리터는 번역되는 속도가 빠릅니다. 하지만 결과물에 대한 object 파일이 없기 때문에 같은 결과에 대한 출력을 뽑아내기 위해서는 처음부터 한줄씩 처리되야 합니다. 물론 이에 따른 효율성은 컴파일러 언어에 비해서 부족하겠지요. 그런데 다르게 보면 특정 구문에 변화가 있을 때는 제일 먼저 감지되고 처리할 수 있다는게 장점일 수도 있겠습니다.    그래서 요새의 추세는 컴파일러 언어의 장점과 인터프리터 언어의 장점을 결합시킨 언어들이 등장하고 있습니다. 그게 바로 요즘 많이 사용하는 C#과 Java가 될 겁니다.엄연히 말하면 컴파일러 언어겠지만 다양한 시스템에서 실행되기 위해 실행과정에 인터프리터가 들어갔다는 점에서는 기존의 컴퍼일러언어와 차이가 있다는 거가 있겠네요.


댓글