문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 프로그래밍 언어]] == 개요 == Identifier(식별자)는 프로그래임 언어의 특정 부분을 가르키는 이름(name)이다. 이러한 identifier가 가르키는 대상은 변수, 데이터 타입, 라벨, 서브 루틴,모듈과 같이 다양한 부분이 될 수 있다. 식별자는 값이나 다른 코드 부분을 참조하거나 닫을 수 있는 기호를 정의한다. 각 [[프로그래밍 언어]]는 식별자로 어떠한 값이 사용될 수 있는지를 정의한다. 예를 들어서 c에서는 A2와 같은 변수명 선언은 가능하지만 2A와 같은 숫자가 먼저오는 변수명, 즉 식별자, 는 선언할 수 없다. == [[Syntax]] == Identifier을 [[Syntax]]을 통하여 나타내면 다음과 같이 정의될 '''수도''' 있다. <syntaxhighlight lang="BNF"> expr ::= ... // Rules for expression | "{" "val" id "=" expr ";" expr "}" | id id ::= String </syntaxhighlight> 이 신택스는 <code>{ val x = "expression"; }</code>라는 코드 구문을 판단해 낸다. ==[[Semantics]]== *Identifier는 Expression에 이름을 부여하여, Expression에 이름을 가지고 접근할 수 있게 해준다. *Scope은 identifier가 local인지 아니면 global인지를 구분한다. global은 function외부에 위치함으로서, 어느 함수나 호출 할 수 있으며, local은 함수 내부에 존재함으로서, 그 함수만이 호출 할 수 있다. *Identifier은 프로그래밍 언어에 따라서 이름을 만들어 내는 방식은 바뀔 수 있다. 또한 컴파일러가 들어가는 언어는 특정 메모리의 주소를 특정 identifier와 매핑하는 방식을 취한다. 그러나 반드시 Identifier가 static time에 정해지는 것은 아니다. * binding occurrence란 변수를 선언하는 것을 말한다. 예를 들어서, <code>def f(x:Int, y: Int) = x + y + z</code>에서 def안의 x와 y는 함수 파라미터의 선언으로 binding occurrence이다. * bound occurrence란 function parameter나 local identifier을 사용하는 것을 말한다. free identifier란 function parameter나 local identifier가 아닌 것을 의미한다 (즉, 정의되지 않은 변수를 말한다). 예를 들어서, <code>def f(x:Int, y: Int) = x + y + z</code>에서 우항 x와 y는 bound identifier z는 free identifier이다. Indentifier 문서로 돌아갑니다.