개요
Terminal 그리고 Nonterminal symbols는 formar grammar에서 production rule을 표현하기 위해서 사용하는 기호들의 분류이다. Terminal symbols는 불변의 값, 상수나 표현식을 의미하며, nonterminal symbol은 terminal symbol의 합으로 구성되는 기호들을 의미한다.
Terminal symbols
Terminal symbols(말단 기호)는 grammar을 사용하여 변화하지 않는 기호를 의미한다.
예를 들어서, 다음과 같은 상황에서:
기호A => B
기호A => C
B와 C는 더이상 바뀔 수 있는 규칙이 존재하지 않음으로 말단 기호이다. 그러나 A는 바뀔 수 있는 기호로서, 말단 기호가 아니다 (Nonterminal symbols)이다.
Nonterminal symbols
비말단 기호는 변화할 수 있는 기호를 말한다. 이 기호들은 주로 변수라고 불린다. Formal grammar은 start symbol즉 말단 기호부터 출발하여 여러 Production rule을 거쳐서 비말단 기호를 만들어 낸다. 위의 예시에서, 기호 A는 비 말단 기호로, 변수에 해당한다.
예시
다음과 같은 Backus-Naur form으로 나타낸 형태를 보자:
<digit> ::= '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9'
<integer> ::= ['-'] <digit> {<digit>}
다음과 같은 형태에서 기호 (-, 0, 1, ... 9)는 말단 기호이며 <digit>그리고 <integer>은 비말단 기호이다.
다음과 같은 표현식 에서:
- [math]\ce{S -> cAd}[/math]
- [math]\ce{A -> a | ab}[/math]
S와 A는 비말단 기호이며, a,b,c,d는 말단기호이다.