일하기 싫어서 다른분들과의 공유를 위해 시작하는 연재입니다.
태클은 사절, 도움은 환영입니다.
아마도 목차는...
1. 프로그래밍 언어란
2. 프로그래밍 언어의 구성
3. 식별자
4. 변수
5. 제어문
6. 함수
정도로 간단하게 할 것으로 생각됩니다.
오늘은
프로그래밍 언어란
에 대해서 이야기 해보도록 하겠습니다.
프로그래밍 언어는 Programming Language 입니다.
말그대로 프로그래밍을 하기 위한 언어이고, 언어학적으로 따지면 "인공언어"에 속합니다.
우리 사용하는 한국어(한글이 아닙니다!)나 영어 처럼
가끔(?)은 비문법적이고 예외사항도 많은 역사와 전통의 인류와 함께한 언어가 아닌
어떤 목적을 가지고 만들어진 언어라는 의미이죠.
그리고 어떤 목적이란 "프로그래밍"을 위함입니다.
프로그램은 컴퓨터에서 실행되는 바이너리(binary)를 의미하고
일반적인 관점에서는 exe 파일로 축약이 됩니다.
프로그래밍은 이러한 컴퓨터에서 실행되는 실행물을 만드는 것이며
세부적으로는 사람이 원하는 작업을 컴퓨터에게 시키는 일종의 "작업 지시서" 라고 보시면 됩니다.
+
점점 드는 생각입니다만...
프로그래밍을 잘 한다는건 내 실력이 늘어나는게 아니라 컴퓨터의 사용법을 잘 알아 간다는 것 같습니다.
어떻게 작동이 가능한지 파악할 수록 구현 가능한 경우의 수도 늘어가고. 내가 원하는 것에 더욱 근접하게 구현할 수 있기 때문이 아닐까 합니다.
+
바이너리는 2진수 입니다.
물론 단순하게 2진수를 의미하는게 아닌 그 이상의 데이터 혹은 실행가능한 데이터 라는 의미를 지닙니다. (컴퓨터 공학만 그래요)
+
컴퓨터에게 작업을 지시하는 건데 컴퓨터는 지능이 없어서
5살 아이에게 지시하는 것 보다 훨씬 많은 것을 지시해주어야 시키는 대로 일 할 수 있습니다.
지갑에서 돈을 가져와 라고 엄마가 아이에게 말하면
숨겨진 데이터인 "엄마의 지갑" "문맥상에서 이야기 했을 금액"이 있겠습니다만
컴퓨터는 이러한 문맥이나 생략된 데이터를 유추할 수 없습니다. 그렇기에
큰방에서 빨간색의 옆으로 매는 지갑을 찾아 그 안에 검은색 손바닥 만한 지갑을 찾고
똑딱이를 땡겨 열고는 배추잎 색의 종이를 3장 꺼내서 엄마에게 돌아오렴
라고 최대한 자세히 이야기 해주어야 합니다. 그렇기에 프로그래밍은 표현의 문제이고 얼마나 수준을 낮출수 있냐의 문제가 됩니다.