These symbols are terminals:
(a) Lowercase letters early in the alphabet, such as , , .
(b) Operator symbols such as , , and so on.
(c) Punctuation symbols such as parentheses, comma, and so on.
(d) The digits 0,1,...,9.
(e) Boldface strings such as id or if, each of which represents a single terminal symbol.
These symbols are nonterminals:
(a) Uppercase letters early in the alphabet, such as , , .
(b) The letter , which, when it appears, is usually the start symbol.
(c) Lowercase, italic names such as expr or stmt.
(d) When discussing programming constructs, uppercase letters may be used to represent nonterminals for the constructs. For example, non-terminals for expressions, terms, and factors are often represented by , , and , respectively.
Uppercase letters late in the alphabet, such as , , , represent ; that is, either nonterminals or terminals.
Lowercase letters late in the alphabet, chiefly represent (possibly empty) strings of terminals.
Lowercase Greek letters, for example, represent (possibly empty) strings of grammar symbols. Thus, a generic production can be written as , where is the head and the body.
A set of productions with a common head (call them -), may be written . Call the for .
Unless stated otherwise, the head of the first production is the start symbol.
예시를 통한 설명
General한 설명
: nonterminal, : arbitrary strings of grammar symbols
를 고려해 보자.
가 production이라면, 라고 쓸 수 있다.
symbol 는 "derives in one step"을 의미한다.
derivation이 반복되서 과 같이 쓰이면, 이라고 한다.
"derives in zero or more steps"인 경우, symbol 로 표현할 수 있다.
그러므로,
또한 는 "derives in one or more steps"를 의미함.
정의부분
- 가 grammar 의 start symbol이라고 했을 때,
만약 라면 를 G의 이라고 부른다.- 의 는 nonterminals를 갖고 있지 않은 의 sentential form이다.
- a grammar는 그것의 sentence들의 집합이다.
- string of terminals is a sentence of (or ).
- grammar로 부터 만들어질 수 있는 language : -
- 두 grammar가 같은 language를 만든다면, 둘은 하다고 한다.
derivation의 두 가지 방법
일반적인 경우, 는 terminal로만 구성되어 있고, 가 적용된 production이고, 가 grammar symbols의 string이라고 한다면, 모든 leftmost step은 로 표현할 수 있다.
가 를 leftmost로만 derive할 수 있다고 강조할 때 라고 쓴다.
만약 라면, 가 grammar의 - 라고 부른다.
rightmost의 경우에도 동일하게 정의한다. Rightmost derivation을 derivation이라고 부르기도 한다.