문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [[분류: 프로그래밍 언어]] == 개요 == Terminal 그리고 Nonterminal symbols는 [[formar grammar]]에서 production rule을 표현하기 위해서 사용하는 기호들의 분류이다. Terminal symbols는 불변의 값, 상수나 표현식을 의미하며, nonterminal symbol은 terminal symbol의 합으로 구성되는 기호들을 의미한다. == Terminal symbols == Terminal symbols(말단 기호)는 grammar을 사용하여 변화하지 않는 기호를 의미한다. 예를 들어서, 다음과 같은 상황에서: 기호 <code>A => B</code> 기호 <code>A => C</code> B와 C는 더이상 바뀔 수 있는 규칙이 존재하지 않음으로 말단 기호이다. 그러나 A는 바뀔 수 있는 기호로서, 말단 기호가 아니다 (Nonterminal symbols)이다. == Nonterminal symbols == 비말단 기호는 변화할 수 있는 기호를 말한다. 이 기호들은 주로 변수라고 불린다. Formal grammar은 start symbol즉 말단 기호부터 출발하여 여러 Production rule을 거쳐서 비말단 기호를 만들어 낸다. 위의 예시에서, 기호 A는 비 말단 기호로, 변수에 해당한다. == 예시 == 다음과 같은 [[Backus-Naur form]]으로 나타낸 형태를 보자: <syntaxhighlight lang="bnf"> <digit> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' <integer> ::= ['-'] <digit> {<digit>} </syntaxhighlight> 다음과 같은 형태에서 기호 (-, 0, 1, ... 9)는 말단 기호이며 <digit>그리고 <integer>은 비말단 기호이다. 다음과 같은 표현식 에서: :<chem>S -> cAd</chem> <br> :<chem>A -> a | ab</chem> S와 A는 비말단 기호이며, a,b,c,d는 말단기호이다. Terminal and nonterminal symbols 문서로 돌아갑니다.