I have recently been diving into the ECMAScript specification (v. 2017). To understand the various parts, it is key to fully grasp section 5, Notational Conventions
.
Questions
- What are
productions
? - What are
nonterminal symbols
? - What are
terminal symbols
?
The first mention of these concepts are in "5.1.1 Context-Free Grammars":
A context-free grammar consists of a number of productions. Each production has an abstract symbol called a nonterminal as its left-hand side, and a sequence of zero or more nonterminal and terminal symbols as its right-hand side. For each grammar, the terminal symbols are drawn from a specified alphabet.
Yet, I could not find an explanation of what is meant by the term production
. Similarly, I was not able to figure out what terminal
and nonterminal
symbols are, and what the difference between the two is.