프로그래밍 언어는 5개로 나뉘어져있다고 한다.

키워드 ( 예약어 ) : 언어를 만드신 분이 미리 지정해둔 단어들 / ex. int, Main() 

식별자 : 내가 재사용하기 위해 특별히 지정해 둔 단어들  /  ex. 변수명

literal (리터럴 ) : 그냥 값

연산자 : + - 등등

punctuator ( 펑추에이터 ) : 세미콜론(:), 콤마, 대괄호 {} 등 위의 4가지 문법적 요소를 사이사이 구분해주는 기능을 함. 

punctual 은 시간을 엄수하다 등의 뜻을 가지고 있고 어원은 'point' 에서 나온말로 점찍어서 정확히하다 라는 뜻을 가지고 있다.

 

 

리터럴을 제외하고 나머지 4개는 모두 미리 지정해둔 기능을 가지고 있다.

int 는 글자그대로 int 가 아니라 뭔가 다른 것을 지정하거나 다른 쪽으로 흐르게 만든다.

 

하지만 '문자그대로의' 라는 뜻의 리터럴은 무언가를 내포하고 있지 않다.

 

컴파일러는 나머지 4개를 보고 "아! 이런뜻이구나. 알았어" 라고 그 뜻에 담긴 행동을 한다.

정보가 압축되어 있기에 그것을 풀어헤쳐 메모리 어딘가에 저장된 코드를 가져온다.

그와다르게 컴파일러는 리터럴을 보고는 아무것도 기억하거나 불러오거나 할 필요 없이 그냥 직선으로 그 코드 ( 0101010101 ) 을 사용한다.

한마디로 리터럴이라는 뜻은 컴파일러와 대화하는 상황에서의 뜻이 담겨있다.

"뭐가 문자그대로야? 전부다 문자인데?" 라고 생각할 수 있지만 내입장만 생각하는게 아니라 나와 컴파일러와의 관계라고 생각해보면 이해 할 수 있는 느낌이다.

" 내가 말해둔거 있지? A B D E F 순서로 해. 그리고 그다음엔 말은 안해뒀지만 <집에 가서 샤워하기> 행동을 하렴 "

 

정리해보면 리터럴은 상대방(컴파일러)에게 아무말 안해놓은 새로운 것이다.

변수나 상수, 메모리에 저장 이런 거랑 아무런 관련 없는 개념이라고 생각한다.

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 라이프코리아트위터 공유하기
  • shared
  • 카카오스토리 공유하기