0

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

  1. What are productions?
  2. What are nonterminal symbols?
  3. 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.

Sebastian Simon
  • 18,263
  • 7
  • 55
  • 75
Magnus
  • 6,791
  • 8
  • 53
  • 84
  • Terminal and nonterminal symbols are used in grammars, automatons and compilers theory to describe certain 'things'. If you really want to understand those, I would start there as explaining it here would take a really huge effort. – Matus Dubrava Apr 01 '18 at 10:09
  • 1
    [Wikipedia: Context-free grammar](https://en.wikipedia.org/wiki/Context-free_grammar). This is not specific to any of the tags you originally had, but this is about the [tag:terminology] of [tag:context-free-grammar]s. – Sebastian Simon Apr 01 '18 at 10:10

0 Answers0