Defintion, Declaration, Initialization
Declaration (선언)
코드에 사용되는 어떤 대상의 이름과 타입을 컴파일러에게 알려주는 것을 의미합니다. 구체적인 세부사항은 선언에 들어있지 않습니다. 다음과 같은 것이 선언입니다.
int x;
Member getMember (int memberName);
Declaration은 프로그램에서 이름을 정의할 수 있는 부분(nameapce)에 새 identifier를 쓸 수 있도록 하는 것을 말합니다. 식별자는 변수, 함수, 타입, 클래스 또는 프로그래밍 언어가 허용하는 다른 구성을 참조할 수 있습니다.
Declaration을 위해서는 선언된 identifier가 무엇인지 알려주어야 합니다. 선언을 위한 문(statement)을 읽은 후 컴파일러 또는 인터프리터는 identifier가 제대로 정의되었는지 구별할 수 있습니다.
Java 또는 C와 같은 언어에서는 signature를 지정하여 함수를 선언하거나 타입을 지정하여 변수를 선언할 수 있습니다.
Definition (정의)
선언에서 빠진 구체적인 세부사항을 컴파일러에게 제공하는 것입니다. 객체의 경우에, Definition은 컴파일러가 그 객체에 대한 메모리를 마련해 놓는 부분이 됩니다. 함수나 메소드에 대한 정의는 그들에 대한 body를 제공하는 것이며, 클래스의 경우에는 클래스의 멤버를 넣어준 결과가 정의합니다. 다음과 같은 것이 정의입니다.
int x;
public Member getMember(int memberNo) {
return this.members.getMember(memberNo);
}
class Member {
int memberNo;
String name;
}
정적 언어에서는 변수를 정의하려면 해당 유형을 명시적으로 지정해야 합니다. (이는 Declaration과 거의 동일합니다)
Identifier (식별자)Identifier는 어떤 값(value)이나 다른 코드의 일부분을 담거나 참조할 수 있는 수단으로, variable(변수), constant(상수), function name(함수명) 또는 특정 코드 루프에 대한 레이블을 생성 및 지정하기 위하여 데이터 타입이나 자료 저장 메커니즘과 함께, 또는 독전적으로 사용하는 식별자 명 텍스트를 말한다.