Terminale en niet-terminale symbolen

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

In de informatica en taalkunde worden terminale en niet-terminale symbolen gebruikt in de productieregels van een formele grammatica. De terminale symbolen vormen de symbolen in de strings die gegenereerd worden door de grammatica. De niet-terminale symbolen worden gebruikt om strings te vervangen door andere strings die bestaan uit terminale of niet-terminale symbolen. Zinnen in een formele taal worden gegenereerd door productieregels toe te passen op niet-terminale symbolen totdat de geproduceerde string geen niet-terminale symbolen meer bevat.

Voorbeelden[bewerken]

Voorbeeld 1[bewerken]

Stel we hebben een alfabet met de letters a, b en c, het startsymbool S en de volgende productieregels:

  1. S \rightarrow aSb
  2. S \rightarrow bA
  3. A \rightarrow ba
  4. A \rightarrow c

In deze grammatica zijn S en A de niet-terminale symbolen en a, b en c de terminale symbolen.

Voorbeeld 2[bewerken]

Een ander voorbeeld, genoteerd in EBNF:

  1. Integer \rightarrow (-)? Digit+
  2. Digit \rightarrow 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

In deze grammatica zijn \{ -, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 \} de terminale symbolen en \{ Integer, Digit \} de niet-terminale symbolen.