이름의 설계
rose, Rose, ROSE는 같은 변수일까?
대소문자
철자가 같아도 다른 이름
이름(name)은 변수, 함수, 타입에 붙이는 식별자(identifier)입니다. C 계열 언어는 대소문자를 구분해서, 철자가 같아도 표기가 다르면 다른 이름입니다. 비슷해 보이는 이름이 서로 다른 변수를 가리키니 가독성이 떨어집니다.
교재가 드는 예입니다. C 계열은 C와 거기서 갈라져 나온 C++, Java, C# 같은 언어입니다.
대소문자
한 글자만 달라도 못 찾습니다
C++, Java, C#은 언어가 미리 정해 둔 이름에 대문자와 소문자를 섞어 씁니다. 한 글자만 달라도 다른 이름이 되므로 표기를 정확히 기억해야 합니다.
IndexOutOfBoundsException은 자바에서 번호가 범위를 벗어났을 때 생기는 예외의 이름입니다. 틀린 표기 둘은 예시입니다.
길이
긴 이름도 될까
이름이 길어야 뜻을 충분히 담을 수 있습니다. 얼마나 긴 이름까지 구분해 주는지는 언어마다 다릅니다. C99는 앞의 63자까지, 여러 파일이 함께 쓰는 외부 이름은 31자까지만 구분합니다. C#과 Java는 길이 제한이 없습니다.
C99는 C 언어의 1999년 표준입니다. 막대의 길이는 글자 수에 맞춰 그렸습니다.
특수 문자
기호가 종류를 알려 줍니다
이름에 특수 문자를 꼭 붙이게 하는 언어도 있습니다. PHP는 변수임을, Perl은 타입을, Ruby는 변수의 종류를 기호로 알립니다. 같은 기호라도 언어마다 뜻이 다릅니다.
인스턴스 변수와 클래스 변수는 객체지향 언어에서 쓰는 변수의 종류이고, 11강에서 다룹니다.
특수 단어
키워드와 예약어
언어가 특별한 뜻으로 쓰는 단어에는 두 가지가 있습니다. 키워드(keyword)는 정해진 자리에서만 특별한 뜻을 갖고, 다른 자리에서는 이름으로 쓸 수 있습니다. 예약어(reserved word)는 어디서도 이름으로 쓸 수 없습니다.
예시 코드입니다. Fortran의 첫 줄은 정수 변수 Apple을 만들고, 둘째 줄은 Integer라는 변수에 4를 넣습니다. Fortran은 예약어 없이 키워드만 씁니다.
예약어의 수
예약어가 많으면 이름이 모자랍니다
예약어는 문법을 분명하게 해 주지만, 많아지면 이름으로 쓸 수 있는 단어가 줄어듭니다. COBOL은 예약어가 약 300개여서 이름을 정하기가 어려웠습니다.
다음 편