Terminale en niet-terminale symbolen

Uit testwiki
Naar navigatie springen Naar zoeken springen

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

Voorbeeld 1

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

  1. SaSb
  2. SbA
  3. Aba
  4. Ac

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

Voorbeeld 2

Een ander voorbeeld, genoteerd in EBNF:

  1. Integer (-)? Digit+
  2. Digit 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 {𝐼𝑛𝑡𝑒𝑔𝑒𝑟,𝐷𝑖𝑔𝑖𝑡} de niet-terminale symbolen.